关闭订单
应用场景
什么时候会关闭订单?
1、看支付宝的文档说明
用于交易创建后,用户在一定时间内未进行支付,可调用该接口直接将未付款的交易进行关闭。
opendocs.alipay.com/open/02o6e8
2、微信文档
以下情况需要调用关单接口:
1、商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付;
2、系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。
注意:
• 关单没有时间限制,建议在订单生成后间隔几分钟(最短5分钟)再调用关单接口,避免出现订单状态同步不及时导致关单失败。
pay.weixin.qq.com/wiki/doc/ap…
什么意思呢?就是消费者提交了订单,但是没有输入支付密码支付。
说白了,就是该笔订单,虽然创建了,但是没有被真正支付。
这个时候就可以关闭订单。
具体怎么关闭呢?调用支付宝的关闭订单接口,即可关闭。
谁来触发关闭订单?
- 系统自动关闭
如果订单过期了,消费者仍然没有支付,系统的job就会轮询过期订单,然后进行关闭。
- 商家主动关闭
消费者提交了订单,但是没有支付。商家也可以主动点击关闭订单,这个时候也会调用支付宝关闭订单接口关闭订单。
关闭之后,消费者可以重新支付。这个时候,创建的是新的订单,而不是之前的已经关闭的订单重试支付。
撤销订单
应用场景
什么时候会撤销订单?
1、看支付宝的文档
支付交易返回失败或支付系统超时,调用该接口撤销交易。
如果此订单用户支付失败,支付宝系统会将此订单关闭;如果用户支付成功,支付宝系统会将此订单资金退还给用户。
注意:只有发生支付系统超时或者支付结果未知时可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款API。
提交支付交易后调用【查询订单API】,没有明确的支付结果再调用【撤销订单API】。
opendocs.alipay.com/open/02ekfr
2、微信文档
支付交易返回失败或支付系统超时,调用该接口撤销交易。
如果此订单用户支付失败,微信支付系统会将此订单关闭;如果用户支付成功,微信支付系统会将此订单资金退还给用户。
注意:7天以内的交易单可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款API。
提交支付交易后调用【[查询订单API](https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_2)】,没有明确的支付结果再调用【撤销订单API】。
调用支付接口后请勿立即调用撤销订单API,建议支付后至少15s后再调用撤销订单接口。
pay.weixin.qq.com/wiki/doc/ap…
所以,什么情况下会撤销?就是在支付之后,返回非成功,非成功分两种情况:
- 返回失败
如果消费者支付失败,支付宝就会直接关闭订单。
- 返回超时
如果消费者支付成功,支付宝会退款给消费者。
谁来触发?
根据支付宝返回状态,商家调用支付宝撤销接口触发。