签名校验是通过的但是到了小程序里就报签名错误
这是小程序的代码
<send-coupon
bindcustomevent="getcoupon"
send_coupon_params="{{send_coupon_params}}"
sign="{{sign}}"
send_coupon_merchant="{{send_coupon_merchant}}"
>
<!-- 内部为自定义代码,按钮点击部分的代码写在这里 -->
<!-- [[以下为示例代码 -->
<view class="text">领取</view>
<!-- 以上为示例代码 ]] -->
</send-coupon>
data: {
send_coupon_params:[
{"out_request_no":"123456","stock_id":"12xxxxxxxx00239"},
],
sign:"A63BD1C722F29680xxxxxxxxxxxxxxxxE71945C326CE56ED77CC",
send_coupon_merchant: "898xxxxxxx71430",
},
getcoupon: function(params) {
// 插件返回信息在params.detail
debugger
console.log('getcoupon', params)
//console.log('detail', params.detail)
}
值也能传过去,而且秘钥是我刚重置的还是不行
而且下面都进行排查了
1、签名用的是HMAC-SHA256,而且用微信自带的校验工具验签成功
2、秘钥是我重置的不会有问题的
3、签名顺序我是复制文档里的发一张商户券的。后标为0
4、签名如果有问题验签也不会过呀
5、如果你用的是服务商下的子商户创建的商家券的话,签名的商户id必须是服务商的才行,因为秘钥在服务商下,而非子商户。
这些也进行严格意义都排查,就是说sign 错误
请按照以下几点进行排查:
1、使用签名检查工具(https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1)选自定义参数校验签名算法是否有误
2、确认秘钥是否有误,要使用发券商户号的秘钥,秘钥是在商户平台配置,如果不确定密钥是否正确,可以尝试设置与原先设置的一样的密钥。密钥设置指引请参考: https://kf.qq.com/faq/180830UVRZR7180830Ij6ZZz.html
3、确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查)
4、确认参数的大小写,参数名与接口文档一致
5、签名原串的参数值使用原始值,不需要encode
6、接口需要使用UTF-8编码
请问解决了?
大佬,你那个签名方法是怎么写的,我想看看