已经自己解决,记录一下,也帮别人解答: 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(这个梗到现在都没改,我看也不敢改了)! 还有很多,不想说了,时间都成功的被你们坑没了,我还得加班! 要删要封就随便你们吧!!
微信支付沙箱环境怎么了?调取沙箱的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>
2020-03-07