java微信公众平台支付jsApi开发,支付验证签名失败问题

ForHeartOnly 2015-12-24 07:55:18
finalpackage.put("appId", appid);
finalpackage.put("timeStamp", "'"+timestamp.toString()+"'");
finalpackage.put("nonceStr", nonce_str);
finalpackage.put("package", packages);
finalpackage.put("signType", "MD5");
finalpackage.put("key",key);
String finalsign = reqHandler.createSign(finalpackage);
这个是获取预支付有返回到页面的数据,我再发起支付请求的时候总是抱支付验证失败的问题
下面是js :
WeixinJSBridge.invoke('getBrandWCPayRequest',
{
"appId" : appId,
"timeStamp" : timestamp,
"nonceStr" : nonceStr,
"package" : packages,
"signType" : signType,
"paySign" : finalsign
},function(res) {
WeixinJSBridge.log(res.err_msg);
if (res.err_msg == "get_brand_wcpay_request:ok") {
alert("支付成功!");
WeixinJSBridge.call('closeWindow');
} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
alert("用户取消支付!");
} else {
alert("支付失败!");
WeixinJSBridge.call('closeWindow');
}
});
在我请求后就抱错,能出现一个微信支付的弹框,可是后面就出现支付验证签名失败,求指教
...全文
12173 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
ming604445318 2019-03-18
  • 打赏
  • 举报
回复
给17楼个赞,我之前也调过MD5,不是在这调的没通就放弃了,试了试你这个,可以,微信真坑
mashroomxl 2019-01-08
  • 打赏
  • 举报
回复
啊,17楼正解!
u010831872 2018-01-10
  • 打赏
  • 举报
回复
17楼正解!!!
huafenghuang 2017-12-04
  • 打赏
  • 举报
回复
17楼正解,楼主不地道,别人回复请正视别人的付出
云森 2017-10-20
  • 打赏
  • 举报
回复
修改WXPay.java ,注意如果是正式环境也用md5 public WXPay(final WXPayConfig config, final String notifyUrl, final boolean autoReport, final boolean useSandbox) throws Exception { this.config = config; this.notifyUrl = notifyUrl; this.autoReport = autoReport; this.useSandbox = useSandbox; if (useSandbox) { this.signType = SignType.MD5; // 沙箱环境 } else { this.signType = SignType.MD5; } this.wxPayRequest = new WXPayRequest(config); }
云森 2017-10-20
  • 打赏
  • 举报
回复
这个问题确实坑,从另外一个帖子看到是官方的sdk有问题,已解决。
qq_21741507 2017-10-06
  • 打赏
  • 举报
回复
我是微信公众号支付,数据在调试工具里面验证我的签名是正确的,但是WeixinJSBridge调用的时候签名错误
暮色微凉-wqq 2017-09-20
  • 打赏
  • 举报
回复
同问 怎么解决 所有的和微信提供的一样 签名也是和验证工具一样 就是拉起不了支付
Du_XiaoHong 2017-09-13
  • 打赏
  • 举报
回复
楼主 这问题 怎么解决的 ?我也遇到了
  • 打赏
  • 举报
回复
引用 9 楼 fuck_yousb 的回复:
我也越到这样的问题,原因是:签名数据字段也要区分大小写
Map<String, String> payParam = new TreeMap<String, String>();
		payParam.put("appId", this.appid);
		payParam.put("nonceStr", WXUtil.getNonceStr());
		payParam.put("package", "prepay_id="+prepayid);
		payParam.put("signType", "MD5");
		payParam.put("timeStamp", WXUtil.getTimeStamp());
		String secondSign = createSign(payParam);
		payParam.put("paySign", secondSign);
意思是和APP支付不一样吗,APP支付是不区分大小写的
xiaozhaoq1 2016-11-18
  • 打赏
  • 举报
回复
我也遇到支付验证签名失败的问题了,在点击按钮开始输入密码时反馈的这个提示,经检查是自己马虎了。 它的签名生成规则是: 一、实例化一个要赋值各种数据的对象,在这个对象中有一个values属性是一个数组。 二、为这个数组进行需要的各种赋值。 三、对这个数组中的键进行从小到大排序。 四、将排序好的键值对拼接成url参数效果的字符串。 五、对拼接好的字符串进行加密,这时就生成了签名字符串。 在输入密码后在腾讯服务器会根据传递过去的参数进行同样的计算生成签名,然后与传递过去的签名做对比,签名不同就会产生支付验证签名失败的提示,这时就要检测整个签名生成的过程是否符合要求,在生成签名前传递的数组及数据是否正确,我是在生成签名前的数组传递的有问题才出现这个错误的。
xiaozhaoq1 2016-11-18
  • 打赏
  • 举报
回复
我也遇到支付签名验证失败的问题了,在点击按钮输入密码的时候反馈的错误原因是支付签名验证失败,经过仔细检查发现是自己马虎了, 它的签名生成规则是: 先为对象的values属性赋值,然后将里面的键根据从小到达顺序排序,再然后将这些排序好的键值对拼接成url的参数字符串,最后根据这个字符串进行加密生成签名。
微生物 2016-09-01
  • 打赏
  • 举报
回复
我也越到这样的问题,原因是:签名数据字段也要区分大小写
Map<String, String> payParam = new TreeMap<String, String>();
		payParam.put("appId", this.appid);
		payParam.put("nonceStr", WXUtil.getNonceStr());
		payParam.put("package", "prepay_id="+prepayid);
		payParam.put("signType", "MD5");
		payParam.put("timeStamp", WXUtil.getTimeStamp());
		String secondSign = createSign(payParam);
		payParam.put("paySign", secondSign);
chen_3010 2016-08-04
  • 打赏
  • 举报
回复
最讨厌这种问了问题,自己解决了不知道把解决方法共享出来的人。 我也遇到这种 , 支付验证签名失败的问题 。
  • 打赏
  • 举报
回复
$key0$问题是由于时间戳不对导致的,规定的时间戳是长度为10的字符串格式。 支付验证签名失败这个问题,我还没解决
Android小闹 2016-05-08
  • 打赏
  • 举报
回复
楼主怎么解决的这个问题啊
qq_33384208 2016-04-05
  • 打赏
  • 举报
回复
楼主 怎么解决的
爆发吧大大 2016-03-04
  • 打赏
  • 举报
回复
你好 你这个问题解决了吗
晨晓溪风丶 2016-01-29
  • 打赏
  • 举报
回复
楼主怎么解决的?我也是那个问题
ForHeartOnly 2016-01-04
  • 打赏
  • 举报
回复
已解决问题!谢谢额
加载更多回复(1)

3,143

社区成员

发帖
与我相关
我的任务
社区描述
微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。
社区管理员
  • 微信开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧