微信支付填坑笔记

前端之家收集整理的这篇文章主要介绍了微信支付填坑笔记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<table class="text"><tr class="li1">
<td class="ln"><pre class="de1">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

后台下载的代码中MyConfig中getKey()是在商户平台下的API KEY,而不是应用的AppSecret!!! 2、微信通过 wxpay.unifiedOrder(data);下单之后要进行二次签名,文档写得跟屎一样,不仔细看根本发现不了要进行这一步!!!    long timestamp = Calendar.getInstance().getTimeInMillis() / 1000; SortedMap parameters = new TreeMap<>();             parameters.put("appid",appid);             parameters.put("partnerid",mchId);             parameters.put("prepayid",prepayId);             parameters.put("noncestr",nonceStr);             parameters.put("timestamp",String.valueOf(timestamp));             parameters.put("package","Sign=WXPay");               // 二次签名             sign = createSign("UTF-8",parameters); ============================================================================================ public String createSign(String characterEncoding,SortedMap parameters) {           StringBuffer sb = new StringBuffer();         Set es = parameters.entrySet();// 所有参与传参的参数按照accsii排序(升序)         Iterator it = es.iterator();         while (it.hasNext()) {             @SuppressWarnings("rawtypes")             Map.Entry entry = (Map.Entry) it.next();             String k = (String) entry.getKey();             Object v = entry.getValue();             if (null != v && !"".equals(v) && !"sign".equals(k) && !"key".equals(k)) {                 sb.append(k + "=" + v + "&");             }         }         sb.append("key=" + weixinPayKey); //KEY是商户秘钥         String sign = MD5Util.MD5Encode(sb.toString(),characterEncoding)                 .toUpperCase();         return sign; // D3A5D13E7838E1D453F4F2EA526C4766         // D3A5D13E7838E1D453F4F2EA526C4766     }         ======================================================================================     public class MD5Util {     private static String byteArrayToHexString(byte b[]) {         StringBuffer resultSb = new StringBuffer();         for (int i = 0; i < b.length; i++)             resultSb.append(byteToHexString(b[i]));           return resultSb.toString();     }       private static String byteToHexString(byte b) {         int n = b;         if (n < 0)             n += 256;         int d1 = n / 16;         int d2 = n % 16;         return hexDigits[d1] + hexDigits[d2];     }       public static String MD5Encode(String origin,String charsetname) {         String resultString = null;         try {             resultString = new String(origin);             MessageDigest md = MessageDigest.getInstance("MD5");             if (charsetname == null || "".equals(charsetname))                 resultString = byteArrayToHexString(md.digest(resultString                         .getBytes()));             else                 resultString = byteArrayToHexString(md.digest(resultString                         .getBytes(charsetname)));         } catch (Exception exception) {         }         return resultString;     }       private static final String hexDigits[] = {"0","1","2","3","4","5",            "6","7","8","9","a","b","c","d","e","f"}; } 参考地址: http://blog.csdn.net/sinat_17820239/article/details/51334181 http://blog.csdn.net/zhou114108/article/details/52438846 https://pay.weixin.qq.com/wiki/doc/api/app/app.PHP?chapter=4_3 http://blog.csdn.net/xb12369/article/details/45716665 原文链接:https://www.f2er.com/weapp/416623.html

猜你在找的微信小程序相关文章