向个人收银 (C2B 支付)
接口列表
合单支付-支付成功通知

合单支付-支付成功通知

当订单支付成功后,微卡收付通平台会将结果通知给接入方。

合单支付以母单维度通知客户。

⚠️

对后台通知交互时,如果收付通收到应答不是成功或超时,收付通认为通知失败,收付通会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但收付通不保证通知最终能成功

  • 同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。 推荐的做法是,当商户系统收到通知进行处理时,先检查对应业务数据的状态,并判断该通知是否已经处理。如果未处理,则再进行处理;如果已处理,则直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

  • 如果在一定时间内(推荐60s)或所有通知频率后没有收到收付通侧回调。商户应调用查询订单接口确认订单状态。

特别提醒: 商户系统对于开启结果通知的内容一定要做签名验证,并校验通知的信息是否与商户侧的信息一致,防止数据泄露导致出现“假通知”,造成资金损失。

通知规则

用户在支付成功后,微卡收付通平台将通知商户系统支付结果,商户系统接收处理,并返回应答。

商户系统对收付通的回调通知进行验签,在处理成功后需要响应 200 HTTP 状态码。验签方式见:回调请求验签

对后台通知交互时,如果收付通收到应答不是成功或超时,收付通认为通知失败,收付通会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但收付通不保证通知最终能成功。(通知频率为 5/5/10/30/60/60/60/60/60/60,单位:秒)

接口说明

请求方式:
post
接入方支付成功回调地址

请求参数

Request
Body 包体
CombineOrderId必填
string

母单ID


ChannelName选填
string

收单通道


PayChannel选填
string

支付渠道


PayInfo必填
string

返回支付参数。扫码支付则返回二维码串,js支付则返回json字符串;云闪付的JS支付返回支付的链接,商户只需跳转到此链接即可完成支付;支付宝App支付返回支付信息串


PayInfoType必填
string

支付参数类型。APP、JSAPI、SCAN、SWIPE等


OrderStatus必填
string

订单状态,枚举值


TotalAmount必填
string

母单金额,单位:分


FailReason选填
string

失败原因,支付失败则返回


TimeFinish选填
string

交易完成时间,格式: 2023-03-05 11:54:20


OrderTime选填
string

订单交易时间,秒级时间戳,如:1702982291


WaitUserConfirm选填
boolean

是否等待用户确认支付(等待输入密码),true:是,false:否;目前适用于被扫场景


Attachment选填
string

附加信息,在查询API和支付通知中原样返回,可作为自定义参数使用,实际情况下只有支付完成状态才会返回该字段


SubOrders必填
array

子单列表

数组子类型:object

请求示例

{
  "CombineOrderId": "unittest1601940939456770",
  "ChannelName": "WECHATECPAY",
  "PayChannel": "WXPAY",
  "PayType": "PUBLIC",
  "PayChlPayerId": "oXLUp5Kursw0GMH8zA_Cd9Ayto2s",
  "OrderStatus": "SUCCESS",
  "PayInfoType": "APP",
  "PayInfo": "{\"appId\":\"wxad53ca7fbb5gg5f2\",\"timeStamp\":\"1681867396\",\"nonceStr\":\"94981e22ac0b4663949a442f31739b53\",\"package\":\"prepay_id=wx190923168532565900979a7da2170000000\",\"signType\":\"RSA\",\"paySign\":\"rhOR5lnhv6w2asdMiqRHU/aEZjhk1J4fGT2/Z5vxqtNcaLyHYmqDiIZZqxlSgSibWb/Z1a8SJdzLH9u0nnBKa0u0wtVaXgB6WKUahYtwQZC2ZadaYj6AkAeKLRIUHObVgAClbiiaiUjiaC9JUhj11m7JkClwpRvJkXQi4QzTdjA+kYv+32cgUido8SWIt6WZZXyH1qJTG1rYJC8IeUMgktH8oOoGzlxpaJbgB41j+pBd10b4R4DExlJ+KWP7N8iPj5YrbIzGJ2MsZ8L2U0jKLjpfKF/3d4hsc4or7EKIXdffgsreedaW6JzZ77gyb5ounChaea6CEP1UpUUAvgrkJwgw==\"}",
  "SubOrders": [
    {
      "OutOrderId": "unittest1601940939456776",
      "ThirdPayOrderId": "wx1234567890",
      "PayChlOrderId": "4000002025041411571",
      "PayChlPayerId": "oXLUp5Kursw0GMH8zA_Cd9Ayto2s",
      "OrderStatus": "SUCCESS",
      "TotalAmount": 20,
      "PayAmount": 16,
      "ChannelName": "WECHATECPAY",
      "PayChannel": "WXPAY",
      "MerchantFeeAmount": 2,
      "TimeFinish": "2024-09-13 22:34:42",
      "ExternalPaymentData": "{\"WxAppId\": \"wx43f1e0956821a03e\", \"WxOpenId\": \"oXLUp5Kursw0GMH8zA_Cd9Ayto2s\"}",
      "CouponAmount": 1,
      "PromotionInfos": [
        {
          "PromotionType": "COUPON",
          "PromotionAmount": 1,
          "OtherContributeAmount": 1
        }
      ],
      "ChannelOrderId": "6831200562079122025689777"
    },
    {
      "OutOrderId": "unittest1601940939456777",
      "ThirdPayOrderId": "wx1234567891",
      "PayChlOrderId": "4000002025041411572",
      "PayChlPayerId": "oXLUp5Kursw0GMH8zA_Cd9Ayto2s",
      "OrderStatus": "SUCCESS",
      "TotalAmount": 30,
      "PayAmount": 24,
      "ChannelName": "WECHATECPAY",
      "PayChannel": "WXPAY",
      "MerchantFeeAmount": 3,
      "TimeFinish": "2024-09-13 22:34:42",
      "ExternalPaymentData": "{\"WxAppId\": \"wx43f1e0956821a03e\", \"WxOpenId\": \"oXLUp5Kursw0GMH8zA_Cd9Ayto2s\"}",
      "ChannelOrderId": "6831200562079122025755313"
    }
  ]
}

返回数据

商户系统如果接受并处理回调通知成功,需要返回 200 HTTP 状态码,否则需要返回 5xx 或 4xx 的 HTTP 状态码。
如果接受失败,可以返回 message 字段表述处理失败原因。


腾讯微卡收付通接口文档