网页下的微信支付过程中的订单状态循环查询
微信支付有时候可能不调用你的回调地址。
你可以通过curl来简单测试你的url地址,比如:
你可以通过curl来简单测试你的url地址,比如:
curl -H 'Content-Type: application/json' -X POST http://***/wechat/pay/notify
https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_3_2.shtml
商户可以通过查询订单接口主动查询订单状态,完成下一步的业务逻辑。
查询订单状态可通过微信支付订单号或商户订单号两种方式查询
两种查询方式返回结果相同
需要调用查询接口的情况:
• 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知。
• 调用支付接口后,返回系统错误或未知交易状态情况。
• 调用付款码支付API,返回USERPAYING的状态。
• 调用关单或撤销接口API之前,需确认支付状态。
微信支付订单号怎么获取的到呢?
支付后返回的数据里面才有这个transaction_id : 420000216120240514676******
那么没支付前只有平台生产的order_trade_no,加上这个mchid = WxPay.mch_id
https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/1217752501201407033233368018?mchid=1230000109
curl -i https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/h17157791861df843866400?mchid=1230000109
HTTP/1.1 401 Unauthorized Server: nginx Date: Wed, 15 May 2024 13:45:44 GMT Content-Type: application/json; charset=utf-8 Content-Length: 125 Connection: keep-alive Keep-Alive: timeout=8 Cache-Control: no-cache, must-revalidate X-Content-Type-Options: nosniff Request-ID: 0888F992B20610C00518B4C18C5820B7A51A28D09606-270924346 Content-Language: zh-CN {"code":"SIGN_ERROR","message":"Http头Authorization值格式错误,请参考《微信支付商户REST API签名规则》"}
https://pay.weixin.qq.com/docs/merchant/development/interface-rules/signature-generation.html
https://developers.weixin.qq.com/community/develop/article/doc/000ca44ae3cff894e9fbb46ba5b413
通过Gem包ruby版本的 wechat-pay.git 实现支付订单查询:
response = WechatPay::Direct.query_order(out_trade_no: 'N202104302474') # by out_trade_no a = JSON.parse(response.body) render json: {msg: a['trade_state_desc']}
大致如此,返回支付状态给前端。
阅读量: 802
发布于:
修改于:
发布于:
修改于: