iOS 微信支付报错 支付验证签名失败

可能的原因有两个:
一、传给微信sdk的参数中时间戳的格式错误。
iOS中时间戳的格式要求是32位的int类型


image.png

一般服务器返回的是字符串需要强制转换成32位int类型的值

二、服务器的签名方式错误

微信支付:服务器(Java)统一下单获取prepay_id成功,iOS调用微信sdk提示支付验证签名失败。

原因如下:
微信支付:服务器统一下单获取prepay_id成功,前端公众号里调用jsapi提示支付验证签名失败(签名工具测试签名正确)

先说出问题原因:统一下单使用的微信支付官方下载的demo的Java版,https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1

这个demo里统一下单使用的签名方式是HMAC-SHA256,而页面签名方式用的https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6

这里默认的是签名方式是MD5,前后两个签名方式不一至导致的“支付验证签名失败”。

解决方法:前后两个签名方式调成一致,同时用MD5或同时用HMAC-SHA256。

注意事项:回调的时候也用一致的签名方法!!

我的项目出现的微信“支付验证签名失败”原因就是后端服务器用的demo的加密方式和后面的md5的方式不是一种导致给我参数,我再去调微信sdk的时候出现签名失败。

后来java的后端服务器改成一样的就好了,就可以成功调起微信支付。

稍后会补上我的微信支付测试demo的github地址

https://github.com/YO-huang/weixinpay-ios

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 该文仅对于中间这种支付方式有参考价值哟 一、开发背景 在微信公众号中,需要进行微信支付且为微信公众号网页支付。 二...
    英文名叫夏天阅读 2,067评论 0赞 7
  • 关于微信支付 生活中的微信支付 目前我们日常生活中接触得比较多的线上电子支付方式主要有两种,一种是支付宝,另一种就...
    积_渐阅读 4,049评论 3赞 26
  • 5感喟道:“这是什么世道啊!” 小梅心里思忖:哥哥究竟是怎么想的呢? 池塘里波光潋滟,在夕阳的照射下美极了。 奶奶...
    寒霜公子阅读 731评论 0赞 0
  • 你是那一朵微开的莲花, 似笑非笑, 看着你, 我是幸福的, 我以为, 在你的身上,会永远散发那一缕幽香。 借一曲梵...
    吾乐乐阅读 342评论 0赞 0
  • 我发现男人婚姻幸福感的程度决定于:其妻子是否成熟到知道她自己想要的生活,而男人能不能给其妻子想要的生活? 这个平衡...
    董小厨阅读 371评论 0赞 0

友情链接更多精彩内容