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. 争议管理

争议预警回调

文档目的#

争议预警唯一匹配到客户订单,并且客户预警费成功记录后,TrustPay 向原订单的 notify_url 发送带签名的 JSON 回调。
争议预警属于正式争议前的风险提醒,不等同于正式争议,不会修改支付订单状态,也不表示已经完成退款或正式争议处理。

请求#

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

投递语义#

回调异步投递,采用至少一次语义。
TrustPay 仅将 HTTP 200 视为投递成功。
网络错误、超时和非 200 响应可能触发重试。
客户必须使用 alert_id 对重复回调做幂等处理。
完成验签并可靠接收事件后再返回 HTTP 200。
回调失败不会冲正已经成功记录的预警费。

机器字段兼容性#

客户可见名称统一使用“争议预警”。当前实现仍保留以下历史 JSON 标识:
event_type = chargeback_alert.created
chargeback_alert_fee
接收方不得自行重命名。修改这些标识需要版本化 API 和代码变更。

字段#

字段类型必填说明
typeinteger是固定为 7
merchant_idinteger是TrustPay 客户 ID
order_nostring是原客户订单号
order_amountnumber是原订单金额
paid_amountnumber是原实付金额
reasonstring是服务商提供的原因码,可能为空
event_typestring是当前兼容值:chargeback_alert.created
alert_idstring是TrustPay 争议预警 ID 和客户侧幂等键
provider_alert_idstring是服务商提供的预警编号
platform_order_nostring否TrustPay 平台订单号
warning_typestring是ethoca、rdr 或 cdrn
alert_typestring是fraud 或 dispute
match_methodstring是arn 或 card_amount_time
currencystring是原订单币种,大写 ISO 4217 代码
chargeback_amountnumber是服务商争议金额;缺失或为零时回退为 paid_amount
chargeback_currencystring是服务商争议币种;缺失时回退为订单币种
chargeback_alert_feenumber是兼容字段,表示客户争议预警费
masked_card_numberstring否脱敏卡号,不包含完整 PAN
arnstring否Acquirer Reference Number
chargeback_reason_codestring否服务商争议原因码
sourcestring否服务商事件来源
alert_timestampstring否预警时间,UTC RFC 3339 格式
transaction_timestampstring否原交易时间,UTC RFC 3339 格式
received_atstring是TrustPay 接收时间,UTC RFC 3339 格式
signstring是MD5 小写十六进制签名
可选字段在无法取得值时可能省略。金额使用 JSON number,最多可能包含四位小数,不要假设固定尾零。
回调不会包含:
完整 PAN 或 CVV;
服务商账号凭据;
原始服务商负载;
渠道成本或平台利润;
内部错误或重试次数。

示例#

{
  "type": 7,
  "merchant_id": 1001,
  "order_no": "ORDER_123456",
  "order_amount": 352.99,
  "paid_amount": 352.99,
  "reason": "10.4",
  "event_type": "chargeback_alert.created",
  "alert_id": "cba_example_001",
  "provider_alert_id": "2L07DBRFGBDLIW7SH59V969JG",
  "platform_order_no": "TP202607270001",
  "warning_type": "ethoca",
  "alert_type": "fraud",
  "match_method": "arn",
  "currency": "USD",
  "chargeback_amount": 352.99,
  "chargeback_currency": "USD",
  "chargeback_alert_fee": 4.5299,
  "masked_card_number": "800012******6824",
  "arn": "12345678901234567890123",
  "chargeback_reason_code": "10.4",
  "source": "ethoca",
  "alert_timestamp": "2026-07-27T12:00:00Z",
  "transaction_timestamp": "2026-07-26T12:00:00Z",
  "received_at": "2026-07-27T12:00:01Z",
  "sign": "SIGNATURE_VALUE"
}

验签#

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

推荐处理流程#

1.
解析 JSON 请求体。
2.
验证 sign。
3.
校验 type = 7、event_type、merchant_id 和预期币种。
4.
使用 alert_id 作为唯一键保存事件。
5.
在幂等事务中执行内部预警处理。
6.
返回 HTTP 200。
不要将该回调自动视为退款授权。

相关文档#

《争议预警》
《争议预防(RDR)》
《争议枚举》
《签名计算》
Modified at 2026-07-30 04:29:58
Previous
争议预警
Next
争议预防(RDR)
Built with