调取沙箱的getsignkey接口,提示我:获取沙箱密匙失败,确认交易密匙是否正确
于是我把沙箱去掉,用正式的支付,就能支付成功
说明我的交易密匙是正确的
这我就很谜了........
如果说是沙箱现在不稳定,要我多试几次,我也试了,十几次,getsignkey接口都是告诉我:获取沙箱密匙失败,确认交易密匙是否正确
然后我又切换到正式环境,又能支付成功......
如此循环N次,我已经迷茫了.....
请求的方法是post,内容如下(是我的内容不对么?我看好像还有什么[CDATA的字符)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xml>
<mch_id>15695*****</mch_id>
<nonce_str>4f7d53cbb1484f57b75e9c04519ca04d</nonce_str>
<sign_type>MD5</sign_type>
<sign>AB8FD8014EFEE76DD5DB808158E9FAB0</sign>
</xml>
已经自己解决,记录一下,也帮别人解答:
JSAPI这种支付调用要签两次名sign:
1.统一下单
2.生成预支付prepay_id
如果要调用沙箱密匙要签三次名sign:
1.统一下单
2.沙箱密匙(就是用mch_id和nonce_str,最后加上商户密匙key,再签一次名)这就是文档坑人的点,不说清楚,还以为是用统一下单那次生成的sign继续在这一次用呢。
3.生成预支付prepay_id
最后,虽然我也成功的用上沙箱测试了,但是!!!
还是坑人不浅!
为什么?
这么久了,还以为可以自定义支付金额了!没想到,还是必须按他们的测试用例传total_fee!!!
我就不明白了,既然都用沙箱了,不久是为了模拟实际业务金额流水么?如果都按你的1.01元,1.02元来支付!
我干嘛还在正式支付环境调通的情况下,不去用1分钱来交易?!
怕没办法收回调?我不会挂个花生壳或者nat123什么的外网穿透么?!
沙箱环境不好用,不怪你们,哪个产品是一次到位,一帆风顺的?
但是你们到处的文档坑人,还不明白告诉大家,一会appid,一会appId(这个梗到现在都没改,我看也不敢改了)!
还有很多,不想说了,时间都成功的被你们坑没了,我还得加班!
要删要封就随便你们吧!!
添加一下WePayTS8(备注:微信社区XXX问题),对于文档以及沙箱还有哪些更多的建议。可以提出来。我这边记录一下,方便进行改进。