zj
2024-06-03 4afe73cb84c5a609662b8b4ee20693de9b86b9a3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package com.nq.pay;
 
import cn.hutool.core.map.MapUtil;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import org.apache.commons.codec.binary.Hex;
 
 
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;
 
public class PayUtil {
 
    public static String url = "https://www.pickpay.info";
 
    public static String appid = "A10000106";
 
    public static String Token = "MIICdAIBADANBgkqhkiG9w0BAQEFAASCAl4wggJaAgEAAoGBAJrEE5Uxkxv3LKfXrrqzqyJU1qm/M+/MlCK0C29fP5Poiz+cx+9buw+obrYejcAeGhT65wge1jaBoeNo0+iXjuFDICm210pOLNIScPvcukLKP3c4IFmlk/qhNiOzYgua+6M7SndkzsAY19SzeIH+U8K+UCnSotGs/qhD8e8JJeKpAgMBAAECfx4tR/mPRl/tkjIn8VSg3n2TN/K2lX9Bz0tKT/B8t1OKbvG4YEO2Xy3DvyfuTTVoqS1DaZ5BD65mbb/UcNKpZUe5aOJlbkhWufyOyZzRxIJ4YApq/vh72/FNTnZUq8Uq7zw+vPO+OjUEavEUUs0twoofyJv57gut4YmhhJ66N6ECQQDMMGhfqxiWpaNrzkzAmg64XAJj7PhEBmrYtQlFBe6wIbrLbP7hGpmU+nXdQu2SiN20yllPJgSEA73DI6JGy/pxAkEAwglEr7u7O4qkboZ1SuWspzUHoEy9XwHCPgnKqYJ8n2/84on5rfLNpdeY+Zqf8vTwvlspW4pde2nG+C+8wXnXuQJAKdCb/0N9lJQ1JEWqKCMkcpK9FpOXv+6EgP6J+G2flMhDhZc7lwOogf7MllQ3bLPEm1p48aF6eUJ+4PByMgdhsQJAeKSinFExPPga/M2FKChdjSkfsL+GDwhc6Y3VAEgtjERpC8GWCF2rF65RYwCM6tb4yKKNuGjzbsR5/d5QkktboQJBAI6uX8KDFsLdpe9sJ4pcv41mFgZwfmwNUvRt4gSOkOQsHieBMOho203lAMhof+r2t+PhBLXY5U52usrxCVpnpzc=";
 
 
    public static String TXToken = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMZLxTr3rl9Ry3Z/hhTxd4cZ0vv2gpRbmSlMyVcLs9CqkRXgux2eXt7l80Rjh4fT48L+irSNPpTE7HURYnnD2Yg+YqQdHbnAQs5JD5ZlN2NCAcqLmlkAuAOLBrM9dI9huHYVgAxGPNiLUn8ueP5nxEPcW5vivC6ZzDxZYKwaNRAFAgMBAAECgYBRmbKjDnOSRB2fOOEbUzalwOnCx/F6TatchH3CNU2cy+QChcVabeaKgUQ3W2HVckui3Y6EuC8Nl2/ayPmmNAMaxPxLXp27ZNYWnBnWDrBAV6/n+9bF8Gb9XldrU+2k06aTl4svX/b6rxxvZ34/aAfOHEOcbzgRsteoqWNv9NrpTQJBAPEnzba/q6Eo+ODoc1YlrT6Qodzi/hnbjHEFazmOhyR0TpqDGSfD+g/JNAQnk7bopv481+Fh7fBK77QmUEJjVSMCQQDSgJMb9xTsELd5v11gBGveefFHIz9huMQ+NgFQC/Thrg7zctE9QxatNXO3qbJkxkDqEHHLG7ogoYy6YESfNTy3AkEA4nC/p1P+8ssoNvfOJRwnutHQSzsR4nHXQ+EUt+zvVPmpPUjQfBh3XA9Pun73Iw7+j0fOZiGwbKvQvNYlEtF3BQJBAIOrzVk2yq2HH11WaHABFABLwrK+x4y26HoJifSqJflsyQlbDqsFZg/eWY3O5jnHER/YPXXQ2DJFGyQRx5rW0C0CQAZKqXDXvETa5B5rmbQId23LBAOQtfpcsOgAFN2TVWgsoAGGUIYCf6QBgadjrB0VjUn3PA42oiy08Op9aU4zNA8=";
 
 
    public static String DOWN_ORDER = "https://www.joypay.info/gold-pay/portal/payment";
 
    public static String DF_ORDER = "https://www.joypay.info/gold-pay/portal/payout";
 
    public static String ascii(Map<String, String> param, String token, String separator, Boolean empty,String tokenType) {
        StringBuffer sb = new StringBuffer();
        List<String> keys = keyAscii(param);
        for (String key : keys) {
            if (empty) {
                sb.append(key).append("=").append(param.get(key)).append(separator);
            } else {
                if (!ObjectUtils.isEmpty(param.get(key))) {
                    sb.append(key).append("=").append(param.get(key)).append(separator);
                }
            }
        }
        if (!ObjectUtils.isEmpty(tokenType)) {
            sb.append(tokenType).append("=").append(token);
        } else {
            sb = sb.deleteCharAt(sb.length() - 1);
            sb.append(token);
        }
        return sb.toString();
    }
 
 
    public static List<String> keyAscii(Map<String, String> parm) {
        Collection<String> keySet = parm.keySet();
        List<String> list = new ArrayList<>(keySet);
        Collections.sort(list);
        return list;
    }
 
 
    public static String sha256(String str) {
        MessageDigest messageDigest;
        String encdeStr = "";
        try {
            messageDigest = MessageDigest.getInstance("SHA-256");
            byte[] hash = messageDigest.digest(str.getBytes("UTF-8"));
            encdeStr = Hex.encodeHexString(hash);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return encdeStr;
    }
 
//    public static String getMd5Spring(String key) {
//        return md5DigestAsHex(key.getBytes());
//    }
//
//    private static String md5DigestAsHex(byte[] bytes) {
//        char[] hexDigest = digestAsHexChars("MD5", bytes);
//        return new String(hexDigest);
//    }
//
//    private static char[] digestAsHexChars(String algorithm, byte[] bytes) {
//        byte[] digest = digest(algorithm, bytes);
//        return encodeHex(digest);
//    }
//
//    private static char[] encodeHex(byte[] bytes) {
//        char[] chars = new char[32];
//        for (int i = 0; i < chars.length; i = i + 2) {
//            byte b = bytes[i / 2];
//            chars[i] = HEX_CHARS[(b >>> 0x4) & 0xf];
//            chars[i + 1] = HEX_CHARS[b & 0xf];
//        }
//        return chars;
//    }
 
    public static String createLinkStringVMePay(Map<String, Object> params) {
        List<String> keys = new ArrayList<String>(params.keySet());
        Collections.sort(keys);
        String prestr = "";
        for (int i = 0; i < keys.size(); i++) {
            String key = keys.get(i);
                String value = MapUtil.getStr(params, key);
                if (i == keys.size() - 1) {//拼接时,不包括最后一个&字符
                    prestr = prestr + key + "=" + value;
                } else {
                    prestr = prestr + key + "=" + value + "&";
                }
        }
        if ((prestr.lastIndexOf("&") + 1) == prestr.length()) {
            prestr = prestr.substring(0, prestr.length() - 1);
        }
        return prestr;
    }
 
 
    private static byte[] digest(String algorithm, byte[] bytes) {
        return getDigest(algorithm).digest(bytes);
    }
 
    private static MessageDigest getDigest(String algorithm) {
        try {
            return MessageDigest.getInstance(algorithm);
        } catch (NoSuchAlgorithmException ex) {
            throw new IllegalStateException("Could not find MessageDigest with algorithm \"" + algorithm + "\"", ex);
        }
    }
}