最近在做微信APP支付 遇到一个问题 请求预下单时,接口返回签名错误
由于之前没有成功的交互,刚开始检查程序的错误,经过多次修改,发现依然是签名错误,可能出现的问题如下:
1.该签名密钥不是AppSecret(由于应用不是本人设置,参数由其他人申请,我一直以为签名密钥是APPSECRET,后来在网上查询发现该密钥是API密钥),需要在商户后台手动设置, key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置
(发现一个巨坑的问题:第一次设置的API密钥貌似不生效,经多次发现,第二次设置的API密钥才生效。。。。。)
2.可以使用微信的在线签名工具检查签名是否和程序中一致(https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=20_1),选择自定义,然后填写参数和密钥,如果微信签名工具和程序生成的签名一直,那说明程序没有问题,仔细检查参数字段以及应用的参数是否错误
3.为了证明程序没有错误,我换了一套其他应用的参数(应用编号APPID,商户号MCH_ID,签名密钥APIKEY),预订单请求成功
4.已经确定为微信后台申请的应用参数有问题,重新设置了一次1问题的APIKEY(大多数原因出在了这,设置一次失败,多设置几次试试)问题已解决。