微信支付签名算法的一些坑……
来源:互联网 发布:外交部段子 知乎 编辑:程序博客网 时间:2024/05/21 22:48
微信支付签名算法的一些坑……
今天做微信支付的时候遇到了一件很郁闷的事……怎么检查代码都没发现问题……然而微信支付界面就是“千呼万唤不出来”……直到检查了一遍sign算法……才发现问题……(sign这种参数讲道理应该是由服务器返回吧……)
- 微信支付签名算法的一些坑
- 我的sign算法
- sign 算法注意事项
我的sign算法
private String getWXSign(JSONObject json, String appKey) { List<String> signList = new ArrayList<String>(); Iterator<String> keys = json.keys(); while (keys.hasNext()) { String key = (String) keys.next(); signList.add(key); } Collections.sort(signList); String sign = ""; for (int i = 0; i < signList.size(); i++) { String key = signList.get(i); String value = json.optString(key); sign = sign + key + "=" + value + "&"; } sign = sign + "key=" + appKey; sign = MD5.MD5Encode(sign, "UTF-8").toUpperCase(); // sign = MD5.getMessageDigest(sign.getBytes()).toUpperCase(); return sign; }
sign 算法注意事项
下面就是重点了:getWXSign算法传入的json应该如下构造:
JSONObject signParams = new JSONObject(); signParams.put("appid", req.appId); signParams.put("noncestr", req.nonceStr); signParams.put("package", req.packageValue); signParams.put("partnerid", req.partnerId); signParams.put("prepayid", req.prepayId); signParams.put("timestamp", req.timeStamp);
注意一点……Key值是一定要小写……这坑爹玩意跟PayReq的参数不一样的……PayReq中Appid是这样的PayReq.appId
下面就是参数说明表格:
具体说明可以参考如下链接:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12
只要严格按照说明做就没问题了
0 0
- 微信支付签名算法的一些坑……
- 微信支付签名算法
- 微信支付签名算法
- 微信支付签名遇到的坑
- 微信支付---签名
- 微信支付签名
- 微信小程序支付中的prepay_id获取方法,以及微信支付统一签名算法闭坑
- 微信支付—关于sgin签名的坑
- 支付宝和微信的签名
- 微信支付的一些坑
- 微信支付开发的一些坑
- 微信支付上的一些坑
- 微信支付的一些坑
- 微信支付开发教程JAVA编[005]-签名算法
- 微信支付签名错误
- 微信支付签名方法
- 微信支付生成签名
- 微信支付签名错误
- pentaho文档URL
- 单链表遍历一次求倒数第k个结点和中间结点
- oracle的分析函数 over()
- Python学习--23 内建模块及第三方库
- MyHandler对消息"conn"的处理
- 微信支付签名算法的一些坑……
- svn详细说明
- NC portal获取当前登录者vo数据
- Android 颜色
- storyboard的连线
- iOS中数据请求
- 设计模式——策略模式
- 安装VC++ 2015 redistributable遇到的错误
- 3 linux下jni的使用