评论

个人总结:APP唤起支付失败返回-1的原因及排查方法

app-1排查

造成app唤起支付失败返回-1的个人总结的原因分为三类:参数、前后端操作、打包工具

经典报错:

{“errMsg”: “requestPayment:fail [payment微信:-1]General errors”,“errCode”: -100,“code”: -100}

1:参数

检查app支付统一下单的appid唤起的appid是否一致,以及当前唤起支付的移动应用本身的appid在开放平台查看,)必须跟前面一致(统一下单的appid和唤起的appid)。

2:前后端操作

2.1:签名(前后端签名使用的参数不一样)

统一下单的签名和唤起支付的签名,一般统一下单成功返回了正确的预支付id代表后端签名是没有问题(确定appid没有使用错误的情况下),主要是前端的签名检查签名类型是否跟后端统一下单的一致,使用验签工具按照对应的文档的明文格式检修验签是否通过v2验签工具
v3验签工具
注意
v2签名目前支持HMAC-SHA256和MD5的数字签名算法,默认为MD5(假如下单时,使用的是MD5签名方式,则调起支付也必须是MD5的签名方式)参考链接
v3签名目前支持SHA256-RSA的数字签名算法(前后端签名都必须是SHA256-RSA的签名方式)参考链接

前后端签名格式不一致也会导致该报错

2.2:操作

前端唤起支付的是使用的预支付id一定要使用当前appid和商户号对应生成的,是否严格按照文档的的方式是配置相关包签名等,v2配置
v3配置

2.3:打包工具

每种打包工具打包的方式不一样,有些打包方式在一些配置文件里面有些默认的包签名,这个包签名需要更改(本人不是前端开发,也没有开发过app,所以不是很清楚,这些都是在咨询技术的时候得知的)

3:排查的操作

3.1:验签

上面已经说了验签的,这个是必须的(建议前后端一起验签)

3.2:检查参数

查看参数,尤其是appid看看三者是否一致,眼见为实,最好自己各个平台打开,ctrl+c 和ctrl+v(我自己就是因为是公司替他人提供的,问他是否有问题就说没问题,自己去检查才发现根本就是不到当前唤起支付的移动应用的appid)

3.3:前端把参数写死

后端生成参数后,让前端直接把参数写成常数,就不要通过后端传递了(这个坑我自己也踩过,前端接收的跟我后端的不一样,咨询技术才这样操作发现这个问题)

3.4:包签名(可测试app分享功能,如果是包签名的问题就会直接报错包签名的问题)

这个开发过app的应该都知道包签名了吧,不知道的自己去查找对应的资料学习学习(我本人不是开发app的,所以这个我只能说各位自己检查了),上述3点没问题那就一定是包签名的问题

4:特点

一般包签名包名的问题在第一次的是都能唤起支付,后面就会报-1,这种情况一般都是包签名的问题,每次测试建议卸载重新安装app和微信,保证没有缓存

最后一次编辑于  2022-04-02  
点赞 3
收藏
评论

2 个评论

  • 璟尧
    璟尧
    2022-10-24

    包名和开放平台上一致 但还是会返回 负1 和包名与开放平台上填写不一致

    2022-10-24
    赞同
    回复 2
    • HOPE
      HOPE
      2022-10-24
      注意还有包签名,还有就是微信可能带有缓存,所以要清除微信的缓存
      2022-10-24
      回复
    • 〇O0o-·-o0O〇
      〇O0o-·-o0O〇
      2023-08-14
      要卸载的,清除缓存没有用的,
      2023-08-14
      回复
  • hu
    hu
    2022-07-07

    我这边接入微信支付功能,由服务器负责订单签名。

    每次只有清除微信数据,重新登录微信后,第一次请求才能拉起微信支付,第二次就会返回-1。

    知道这个是为什么吗?

    2022-07-07
    赞同
    回复 4
    • HOPE
      HOPE
      2022-07-11
      你看一下第四点,这种情况就是包签名的问题
      2022-07-11
      回复
    • 弓长
      弓长
      2023-04-13回复支付社区运营
      我在一台手机设备上回来切换微信账号,提示我支付失败,参数什么的都正常,只有在来回切换微信号的时候才会提示我支付失败,我想问下这是什么原因?
      2023-04-13
      回复
    • 尛隆女滴隆粑粑
      尛隆女滴隆粑粑
      2023-09-05回复支付社区运营
      我这边有和楼主有同样问题,另外我这边找贵公司微信支付技术沟通两天了,都没有一个结论,贵方提供的这些我都校验过没有问题,现在在app里面调用微信支付,同一个appid在某些手机存在无法调起微信支付问题,想咨询一下,是否可以提供一个可以快捷沟通的渠道,目前我们公司这个问题已经存在三天了,谢谢!
      2023-09-05
      回复
    • lj
      lj
      2023-09-21回复支付社区运营
      app通过webview嵌套h5,安卓和ios测试版都能正常唤起微信支付,但是正式版却唤不起微信支付,想问下这是什么原因?
      2023-09-21
      回复
登录 后发表内容