如题,诸多尝试最终还是一个结果:
{"code":"SIGN_ERROR","detail":{"detail":{"issue":"sign not match"},"field":"signature","location":"authorization","sign_information":{"method":"POST","sign_message_length":319,"truncated_sign_message":"POST\n/v3/pay/transactions/app\n1614080488\n6bab83b6d93cce8d73ab3eac6626110c\n{\"attach\n","url":"/v3/pay/transactions/app"}},"message":"错误的签名,验签失败"}
官方下载的证书签名/验签工具跟我跑出来的结果完全一样,长度也都固定344字节。用https://github.com/wechatpay-apiv3/wechatpay-postman-script这个配置发,结果仍一样:
这个配置都是自动生成的,我就把3个参数按照说明格式加进去了。。
有哪路大神支支招么?
已解决:原因1:商号ID被负责人修改而没有被告知。。。(建议出此问题的朋友也仔细核对一遍参数,可能主管这个的人做了某些操作,参数都变了,却没有通知你,这个浪费了不少时间,自己对着拿到的数据看了一遍又一遍,多次check之后,才开始怀疑是不是拿到的参数有误,果不其然,坑爹。)
原因2:随机参数,这个也是一大坑,完全是自己琢磨出来的。微信自己例子用的随机参数是32位的,我也是用的32位的,谁能想到32位的随机数,他不能用(可能是被他自己截断了)
上图官方自己的例子,32位随机参数,不能用!然后改成了一个较短的,可以参考用时间戳(毫秒)做为随机参数。
这两个位置一改,立马就OK了,真尼玛无语。