这是第一次支付成功截图,之后就一直提示fail:{"errMsg":"requestPayment:fail [payment微信:-1]General errors","errCode":-100,"code":-100}
MchID=1549587351 AppID=wxee620b0657d3452e
能否帮忙查一下原因,开发平台uniapp,能获取prepayId说明配置,签名正常,支付成功过说明接口也没问题,真不知道原因了
14:03:22.817 wxpay at pages/personal/purse/money/money.vue:239
14:03:22.837 wxpay, [Object] {"package":"Sign=WXPay","appid":"wxee620b0657d3452e","sign":"Y2TrNcmiEkfeYj1qkqIncGE5XCF072bXSvrK9LDUV9hdK...} at pages/personal/purse/money/money.vue:316
14:03:23.145 fail:{"errMsg":"requestPayment:fail [payment微信:-1]General errors","errCode":-100,"code":-100} at pages/personal/purse/money/money.vue:334
14:03:23.166 [Object] {"name":"微信","payType":"wx","amount":"0.12"} at pages/personal/purse/money/money.vue:107
一、为什么第一次成功了,第二次却返回-1?
这是因为接口的校验规则问题,第一次请求没有对包名、签名进行验证
二、返回-1代表什么意思?
1、返回-1可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
2、确认manifest文件里面声明,应用使用的注册appid的包名是否与开放平台一致。
3、appid关联的包名和签名需要商户自己登陆商户后台系统查看。
自查地址:OpenSdk包名签名校验失败说明
可以按照以下几点进行排查:
1、使用签名检查工具(https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1)校验签名算法是否有误
2、确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题)
3、确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查)
4、确认参数的大小写,参数名与接口文档一致
5、签名原串的参数值使用原始值,不需要encode
6、接口需要使用UTF-8编码
7、IOS正常,安卓异常的情况下,请排查包名与包签名
8、未注册APPID
9、项目设置APPID不正确
10、注册的APPID与设置的不匹配
11、服务商模式下,统一下单中的sub_appid是否有传入
12、“唤起支付接口”中的签名类型是否与“统一下单接口”的类型一致