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);
|
}
|
}
|
}
|