微信支付JSAPI是否需要查询订单、关闭订单

我们首先看整个交易流程:

微信支付JSAPI是否需要查询订单、关闭订单

看「15、异步通知支付结果」,这个结果是来自微信支付系统,商户在需要做16.17这两步。

也就是需要保存微信发过来的$massage,并且返回成功给微信。

而微信官方对比关闭订单,是这样说的。

微信支付JSAPI是否需要查询订单、关闭订单

什么时候需要关闭订单?

微信支付在2020.10.10的文档中提到,以下情况需要调用关单接口:

  1. 商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付
  2. 系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。

也就是正常情况下,是不需要进行关闭订单操作,我们可以在页面上进行限制,以防用户多次刷新页面创建多个订单,或者在逻辑上进行优化。

比如上面,如果收到微信的错误返回,那么读取这个错误描述,并且前端提示。。

如果连数据中有appid,一般来说流程就是正常的,正常返回数据给前端发起微信支付即可。

什么时候需要查询订单

微信官方的描述是这样的:

该接口提供所有微信支付订单的查询,商户可以通过查询订单接口主动查询订单状态,完成下一步的业务逻辑。

需要调用查询接口的情况:

  1. 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知;
  2. 调用支付接口后,返回系统错误或未知交易状态情况;
  3. 调用被扫支付 API,返回 USERPAYING 的状态;
  4. 调用关单或撤销接口 API 之前,需确认支付状态。

结论

所以,在正常的流程中,我们收到微信的回调,正确储存并返回即可,不需要特意去操作查询及关闭订单。

原创文章,作者:蓝洛水深,如若转载,请注明出处:https://blog.lanluo.cn/10056

发表评论

登录后才能评论