一、交易创建的时间
不同的支付接口交易的创建时间也不同,以下是详细的支付接口创建时间:
1、当面付
条码支付接口(alipay.trade.pay(统一收单交易支付接口)):商家扫用户支付条码,接口调用成功后创建交易
扫码支付接口(alipay.trade.precreate(统一收单线下交易预创建)):用户扫商家收款二维码,唤起收银台成功后,创建交易
统一收单交易创建接口(alipay.trade.create):调用接口成功后订单创建;
2、APP支付接口(alipay.trade.app.pay):
支付宝钱包支付:用户点击支付,唤起支付宝收银台后,输入正确完整的支付密码后创建交易;
H5页面登录支付:用户点击支付,输入账户与密码登录成功后,创建交易;
3、手机网站支付接口(alipay.trade.wap.pay):
支付宝钱包支付:用户点击支付,唤起支付宝收银台后,输入正确完整的支付密码后创建交易;
H5页面登录支付:用户点击支付,输入账户与密码登录成功后,创建交易;
4、电脑网站支付接口(alipay.trade.page.pay):
支付宝钱包扫码支付:电脑网站生成二维码,用户使用支付宝钱包扫码唤起收银台后创建交易;
PC端登录支付:用户成功输入登录密码成功登录后创建交易;
注:请求参数中传入订单超时时间timeout_express 参数,这个时间一般是在交易创建成功后才开始计时的,但是电脑网站支付接口如果传入了订单超时时间,是从生成二维码展示页面开始计时的不是按照交易创建的时间开始计算的
二、交易状态的迁移
交易状态迁移图:
1、交易创建成功后,用户支付成功,交易状态转为TRADE_SUCCESS(交易成功)
2、交易创建成功后,用户未付款交易超时关闭交易状态转为TRADE_CLOSED(交易关闭)
3、交易成功后,交易全额退款交易状态转为TRADE_CLOSED(交易关闭)
4、交易创建成功后,用户支付成功后,若用户商品不支持退款,交易状态直接转为TRADE_FINISHED(交易完成)
5、交易成功后,默认退款时间三个月内没有退款,交易状态转为TRADE_FINISHED(交易完成)不可退款
注:交易成功后部分退款,交易状态仍为TRADE_SUCCESS(交易成功),如果一直部分退款退完所有交易金额则交易状态转为TRADE_CLOSED(交易关闭),如果未退完所有交易金额,三个月后交易状态转为TRADE_FINISHED(交易完成)不可退款
三、交易状态与异步通知
异步通知的触发是依据交易的状态来触发的,不同的支付接口触发条件也不相同,新版本的支付接口触发条件如下:
1、当面付的支付接口
默认TRADE_SUCCESS(交易成功)触发,其余交易状态均不触发异步通知
2、APP支付接口
默认TRADE_SUCCESS(交易成功),TRADE_CLOSED(交易关闭),TRADE_FINISHED(交易完成)三种状态均会触发异步通知,WAIT_BUYER_PAY(交易创建)不触发异步通知
3、手机网站支付接口
默认TRADE_SUCCESS(交易成功),TRADE_CLOSED(交易关闭)两种状态触发异步通知,WAIT_BUYER_PAY(交易创建)和TRADE_FINISHED(交易完成)不触发异步通知
4、电脑网站支付接口
默认TRADE_SUCCESS(交易成功)状态触发异步通知,TRADE_CLOSED(交易关闭),TRADE_FINISHED(交易完成),WAIT_BUYER_PAY(交易创建)不触发异步通知
5、alipay.trade.refund(交易退款接口)异步触发
退款的异步通知是依据支付接口的触发条件来触发的,异步通知也是发送到支付接口传入的异步地址上。
(1)部分退款:部分退款交易状态是处于TRADE_SUCCESS(交易成功),此时因部分退款导致交易金额变动,会触发异步通知
(2)全额退款:交易成功后全额退款,交易状态会转为TRADE_CLOSED(交易关闭),此时根据不同的支付接口触发条件也不同,例如APP支付接口TRADE_CLOSED(交易关闭)状态触发异步,此时就会收到全额退款的异步通知。而电脑网站支付TRADE_CLOSED(交易关闭)状态不会触发异步,就不会有全额退款的异步通知
注:退款的异步信息和正常支付的异步信息的返回信息是不一样的,退款的信息中会有refund_fee 退款总金额参数,在正常支付成功的异步信息中是没有的
四、与交易状态有关的常见的报错
1、Q:调用交易查询或是关闭接口报错:交易不存在
A:这个报错一般就是交易没有创建所以调用查询接口报错:交易不存在,建议参考本帖第一点排查支付接口是否成功创建订单
2、Q:支付成功后多次收到异步通知,但是已经成功返回了success,还是重复通知
A:支付成功多次触发异步建议参考第三点是否是其他交易状态触发的,所有交易状态触发的异步通知都必须返回success才不会多次通知
3、Q:支付接口报错:交易买家不匹配
A:一般这个报错是用户使用自己的账号支付创建了订单,以电脑网站支付为例:用户扫码成功交易创建,但是未支付,在订单超时时间内,商户使用相同的外部订单号再次生成二维码,由另一位用户扫码支付就会出现这个报错,即该订单已与第一位扫码支付的用户绑定,只能有该商户发起支付,出现这个报错商户更改外部订单号重新创建交易即可
如有其它疑问,欢迎大家在帖子后面追问!