1. 争议管理
TrustPay
zh
  • en
  • zh
  • 接入说明
  • 签名计算
  • 支付风控接口 - 商户接入指南
  • 支付网关
    • 枚举类型说明
    • 支付回调说明
    • C21 支持区域
      • TrustPay API 与 Checkout 支持的国家和 US/CA 州省
    • 白名单管理
      • 添加卡白名单
      • 导入任务查询
      • 查询卡白名单
    • 卡直付
      POST
    • 收银台
      POST
    • 订单退款
      POST
    • 支付回调通知
      POST
    • 订单查询
      POST
    • 余额查询
      POST
    • 费率查询
      POST
    • 退款查询
      POST
  • 争议管理
    • 争议枚举
    • 争议预警
    • 争议预警回调
    • 争议预防(RDR)
    • 争议管理(Chargeback)
    • Chargeback 回调
  • 信用卡开卡
    • 查询可用卡类型
      POST
    • 开通虚拟卡
      POST
    • 开卡/充值回调通知
      POST
    • 获取虚拟卡详情
      POST
    • 虚拟卡充值
      POST
    • 订单列表查询
      POST
    • 虚拟卡列表查询
      POST
    • 卡片列表
      POST
    • 流水查询
      POST
    • 费率查询
      POST
  • 实体卡
    • 创建持卡人
    • 持卡人列表
    • 绑定持卡人
    • 持卡人绑定列表
    • 查询实体卡余额
    • 查询交易记录
    • 查询账户
    • 实体卡充值
  • Payment Gateway
  • Schemas
    • VCardDetail
    • VOrderDetail
  1. 争议管理

Chargeback 回调

文档目的#

正式争议进入以下客户资金状态时,TrustPay 向原支付订单的 notify_url 发送带签名的 JSON 回调:
案件已创建并暂扣资金;
客户败诉;
客户胜诉。
正式争议回调与 type = 7 争议预警回调相互独立。

请求#

请求方法: POST
Content-Type: application/json
请求地址: 原订单提交的 notify_url
通知类型: type = 4

投递与幂等#

TrustPay 仅将 HTTP 200 视为投递成功。
网络错误、超时和非 200 响应可能触发重试。
更新业务状态前必须验证签名。
可靠接收事件后再返回 HTTP 200。
使用 dispute_id 与 dispute_status 组合对重复事件做幂等处理。

字段#

字段类型必填说明
typeinteger是固定为 4
merchant_idinteger是TrustPay 客户 ID
order_nostring是原客户订单号
order_amountnumber是正式争议本金
balance_amountnumber是本次生命周期事件对应的客户余额变动
reasonstring是TrustPay 生命周期说明
dispute_statusstring是chargeback_pending、chargeback_lost 或 chargeback_won
dispute_idstring否有值时为 TrustPay 正式争议 ID
response_statusstring否当前客户响应状态
dispute_feenumber是本次事件收取的处理费;败诉/胜诉确认时为零
expiration_datestring否响应截止日期,格式为 YYYY-MM-DD
signstring是MD5 小写十六进制签名
正式争议回调不包含仅用于支付或退款的 status、paid_amount、refund_amount、merchant_refund_no、fee 和 pay_time。

资金语义#

dispute_statusbalance_amountdispute_fee含义
chargeback_pending负数配置的处理费案件创建时暂扣本金并收取处理费
chargeback_lost00创建阶段已完成暂扣,败诉确认时不重复扣款
chargeback_won正数本金0返还此前暂扣的本金,处理费不返还

待裁决示例#

{
  "type": 4,
  "merchant_id": 1001,
  "order_no": "ORDER_123456",
  "order_amount": 100,
  "balance_amount": -115,
  "reason": "Chargeback opened: funds held pending dispute decision",
  "dispute_status": "chargeback_pending",
  "dispute_id": "dsp_example_001",
  "response_status": "needs_response",
  "dispute_fee": 15,
  "expiration_date": "2026-08-15",
  "sign": "SIGNATURE_VALUE"
}

败诉示例#

{
  "type": 4,
  "merchant_id": 1001,
  "order_no": "ORDER_123456",
  "order_amount": 100,
  "balance_amount": 0,
  "reason": "Chargeback lost: dispute refund confirmed",
  "dispute_status": "chargeback_lost",
  "dispute_id": "dsp_example_001",
  "response_status": "no_response_allowed",
  "dispute_fee": 0,
  "sign": "SIGNATURE_VALUE"
}

胜诉示例#

{
  "type": 4,
  "merchant_id": 1001,
  "order_no": "ORDER_123456",
  "order_amount": 100,
  "balance_amount": 100,
  "reason": "Chargeback won: held funds released",
  "dispute_status": "chargeback_won",
  "dispute_id": "dsp_example_001",
  "response_status": "responded",
  "dispute_fee": 0,
  "sign": "SIGNATURE_VALUE"
}
chargeback_* 和当前英文 reason 文本是现有机器契约值,客户可见文档统一称为正式争议。

验签#

除 sign 外,回调中的所有非空字段都参与签名。
1.
移除 sign。
2.
移除空值字段。
3.
按字段名进行字典序排序。
4.
拼接为 key1=value1&key2=value2。
5.
追加 &secret=YOUR_SECRET。
6.
计算 MD5 小写十六进制值。
验签前不要对金额做舍入或重新格式化。

推荐处理流程#

1.
解析 JSON 请求体。
2.
验证 sign。
3.
校验 type = 4、merchant_id、dispute_id 和 dispute_status。
4.
使用 dispute_id 与 dispute_status 组合幂等保存事件。
5.
确保 balance_amount 表示的资金变动只应用一次。
6.
返回 HTTP 200。

相关文档#

《争议管理》
《争议枚举》
《签名计算》
Modified at 2026-07-30 13:34:10
Previous
争议管理(Chargeback)
Next
查询可用卡类型
Built with