商户通过调用确认订单接口打开微信支付分小程序,引导用户确认订单一共有三种方式(APP、JSAPI、小程序)
APP相关资源:
App跳转支付分需要引用新的openSDK
- Android(版本>=5.3.1) (Android资源下载、openSDK说明文档)
- iOS (版本>=1.8.4)(iOS资源下载、openSDK说明文档)
JSAPI相关资源:
在JSAPI调起支付分相关接口前,需详细阅读JS-SDK说明文档并进行相应配置。
小程序相关资源:
商户小程序跳转微信侧小程序建议使用两种方式:调用wx.openBusinessView或者wx.navigateToMiniProgram。其中wx.openBusinessView不占用小程序跳转其他小程序的数量名额。
本文章主要协助开发者定位调起支付分小程序(确认)返回商户签名校验失败的问题,大家可根据以下步骤逐步排查。
步骤一、使用的签名方式不正确
检查使用的签名方式是否为HMAC-SHA256。
支付分只有调起支付分小程序-订单详情,调起支付分小程序-确认订单的签名类型是HMAC-SHA256,剩下的接口签名方式都是SHA256-RSA,所以这里导致很多商户都搞错了
步骤二、使用的密钥和商户号不正确
1.1.检查使用的密钥是不是APIv2密钥,有很多人都用的是APIv3密钥从而导致出现签名校验失败的问题
1.2.检查商户号与APIv2密钥是否匹配,服务商模式需要用服务商的APIv2密钥,如怀疑密钥错误,又担心影响其他接口,有以下两种方式处理:
- 看看能否用同样的商户号和APIv2密钥测试V2版本任意接口或检查线上已有相关V2的业务在正常运行,则代表APIv2密钥没问题
- 可以尝试设置与原先设置的一样的密钥,重置密钥之前建议严格按照APIv2密钥更换指引进行处理,避免线上业务受影响
步骤三、生成签名原串的参数和实际请求参数不一致
检查生成签名时的参数与客户端实际发起请求的参数是否一致