支付成功通知
当订单支付成功后,微卡收付通平台会将结果通知给接入方。
对后台通知交互时,如果收付通收到应答不是成功或超时,收付通认为通知失败,收付通会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但收付通不保证通知最终能成功
-
同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。 推荐的做法是,当商户系统收到通知进行处理时,先检查对应业务数据的状态,并判断该通知是否已经处理。如果未处理,则再进行处理;如果已处理,则直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。
-
如果在一定时间内(推荐60s)或所有通知频率后没有收到收付通侧回调。商户应调用查询订单接口确认订单状态。
特别提醒: 商户系统对于开启结果通知的内容一定要做签名验证,并校验通知的信息是否与商户侧的信息一致,防止数据泄露导致出现“假通知”,造成资金损失。
通知规则
用户在支付成功后,微卡收付通平台将通知商户系统支付结果,商户系统接收处理,并返回应答。
商户系统对收付通的回调通知进行验签,在处理成功后需要响应 200 HTTP 状态码。验签方式见:回调请求验签
对后台通知交互时,如果收付通收到应答不是成功或超时,收付通认为通知失败,收付通会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但收付通不保证通知最终能成功。(通知频率为 5/5/10/30/60/60/60/60/60/60,单位:秒)
接口说明
请求参数
微卡收付通平台商户编号(管理控制台→商户管理→商户ID)
外部订单号,即业务系统侧订单
微卡收付通订单号
支付通道订单号
实际支付渠道订单号,如微信、支付宝订单号
实际支付渠道用户id(微信openid或支付宝的userid)
订单金额,单位:分
实际支付金额,单位:分
手续费,单位:分
订单状态,SUCCESS:支付成功
支付通道
支付渠道;实际支付渠道,根据具体接入的通道传值:如:
ALIPAY: 支付宝;
WXPAY:微信支付;
UNIONPAY:银联支付
优惠信息。使用优惠券时返回
附加信息,在查询API和支付通知中原样返回,可作为自定义参数使用,实际情况下只有支付完成状态才会返回该字段
交易完成时间,格式: 2023-03-05 11:54:20
用户信息
{
"OutOrderId": "202304121646124637132255232",
"ThirdPayOrderId": "23416faa317623454vcb",
"PayChlOrderId": "wx1113082743789885ecb4303dcafdca0000",
"PayChlPayerId": "oXLUp5Kuxxxxxyto2s",
"OrderStatus": "SUCCESS",
"TotalAmount": 100,
"PayAmount": 100,
"ChannelSubMerchantId": "CM706508459301933056",
"ChannelName": "CCBPAY",
"PayChannel": "WXPAY",
"MerchantFeeAmount": 0,
"TimeFinish": "2023-04-12 20:14:41",
"ExternalPaymentData": "{\"ThirdAppId\":\"wx0f8d47beb2ea88e7\"}",
"Attachment": ""
}
返回数据
商户系统如果接受并处理回调通知成功,需要返回 200 HTTP 状态码,否则需要返回 5xx 或 4xx 的 HTTP 状态码。
如果接受失败,可以返回 message 字段表述处理失败原因。