获取 getsignkey 地址 https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey
可以使用工具postman或者postman的浏览器插件进行调试
postman请求可以参考:https://www.hehuapei.com/wxpay-shabox-apikey/index.html
签名参数: mch_id :商户号, nonce_str:随机字符串 ,key:支付密钥
按签名生成算法生成sign签名,生成XML数据如下,POST到上面的网址:
<xml>
<mch_id>1360000000</mch_id>
<nonce_str>bcdefghij</nonce_str>
<sign>86C722734C38BF200EFEB40A48185FD2</sign>
</xml>
正常过返回数据:
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[ok]]></return_msg>
<sandbox_signkey><![CDATA[30224720be75183d6d7a62d779****f]]></sandbox_signkey>
</xml>
沙箱提交地址(微信API文档更新了,但是页面未更新,次为坑一)在跟微信支付客服交流后得到如下沙箱数据
坑一:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=23_1的测试用例内提示的API地址是错误的,获取signkey和提交地址都是错的
新的用例文档和沙箱说明http://pay.weixin.qq.com/wiki/doc/api/download/mczyscsyl.pdf
正确如下
( 1) 调用刷卡支付 api( https://api.mch.weixin.qq.com/sandboxnew/pay/micropay),
( 2)根据商户内部单号( out_trade_no),调查单 api
( https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery)查询订单状态;
( 3)根据商户内部单号( out_trade_no),调用退款 api
( https://api.mch.weixin.qq.com/sandboxnew/pay/refund)进行退款;
( 4)根据商户内部单号( out_trade_no),调用退款查询 api
( https://api.mch.weixin.qq.com/sandboxnew/pay/refundquery)查询退款结果。
测试用例
测试时不能随意指定金额,只能使用指定的金额
正常用例:
订单金额0.01元
订单金额0.02元,含0.01元代金券
订单金额0.03元,含0.01元代金券和0.02元免充值现金券
异常用例:
订单金额0.3元,返回USERPAYING
订单金额0.31元,用户支付成功,微信返回超时
订单金额0.32元,用户支付失败,微信返回超时
订单金额0.33元,微信支付超时,且查单失败
订单金额0.34元,含0.01元代金券,微信支付返回超时
订单查询的坑:
return_code:通信标识
result_code:业务结果
这两个都返回SUCCESS,订单也不一定成功,在查询接口中还有一个trade_state字段,表示真正的结果