APP调起支付返回:-1

829 阅读2分钟

错误信息

UNIAPP错误提示信息如下

  "errMsg": "requestPayment:fail [payment微信:-1]General errors",
  "errCode": -100,
  "code": -100

由错误信息可以看到微信返回的错误码是-1,查询微信的官方文档得知可能的原因:

  1. 签名错误。
  2. 未注册APPID。
  3. 项目设置APPID不正确。
  4. 注册的APPID与设置的不匹配。
  5. 其他异常等。

排查思路

  1. 检查menifest.json中配置的微信appid是否和微信开放平台应用的appid、服务端使用的appid一致。
  2. android版云打包,数字签名,与微信开放平台配置一致,开放平台填写的应用签名要去掉冒号,要小写。改完应用签名要过一段时间才生效。
  3. 服务端的返回数据格式,注意字段名字或大小写。
{
    "appid": "",
    "partnerid": "", // 商户ID
    "prepayid": "", // 预支付id
    "noncestr": "", // 这个参数有些资料说要和唤起支付接口时使用的值一致,经测试无需一致也可以
    "timestamp": ,
    "package": "Sign=WXPay", // 固定值
    "sign": "" // 这个签名是 用上面的参数二次签名得到的,和下单接口的签名不一致
}
  1. “唤起支付接口”中的签名类型是否与“统一下单接口”的类型一致,密钥为32位时,签名一般是MD5。
  2. 微信退出重启一下。这里先尝试了清除缓存,测试无效后,退出账号重新登录后可以了。

问题

1、申请微信开放平台时,应用签名和应用包名都填写成了包名,根据排查2步处理解决。 image.png 2、签名修改正确后,测试还是不行,一直在排查各种可疑问题,最后还是微信退出账号重新登录解决了

参考

微信开放社区知识库