欺诈和拒付通知
本参考资料描述了 Coda 发送的 webhook 通知,以便让您的后端了解拒付生命周期的变化以及交易中的早期欺诈警告。
注意:要启用拒付和欺诈更新功能,您的账户需要启用 POST 通知。请联系您的 Codapay 客户经理启用此功能。
概述
Codapay 使用 webhook 来通知您的“完整通知 URL”,每当拒付事件在其生命周期中进展到一定阶段,或者您的某笔交易收到早期欺诈警告时,都会收到通知。
请确保已在发布商门户中配置“完整通知 URL”。有关详细说明,请参阅“设置付款”指南。
事件类型
拒付事件
对于拒付生命周期事件,您的端点应准备好处理以下eventType值:
chargeback_created
已对某笔交易提出拒付申请
dispute_sent
拒付事件已升级,争议已提交至支付网关。
dispute_lost
争议最终以客户胜诉告终。
dispute_won
纠纷最终以商家的胜诉告终。
欺诈事件
对于欺诈事件,您的端点应准备好处理以下eventType值:
fraud_notification
已收到一笔交易的早期欺诈预警。
通知请求体结构
通知以请求的形式发送,POST请求体为 JSON 格式。
eventType
string
所报告的具体事件类型(例如,chargeback_created)
timestamp
string
通知时间戳
data.chargebackId
string
Coda 的内部拒付标识符
data.txnId
string
Coda 的内部交易 ID
data.reason
string
发卡行提供的拒付原因(例如:其他欺诈 - 卡片不在场环境)
data.outcome
string | null
争议的最终结果:胜诉、败诉或因尚未解决而无效。
data.amountValue
decimal
交易金额
data.amountCurrency
string
ISO 4217 货币代码(例如 CHF、USD)
阶段值
拒付通知示例
chargeback_created
dispute_sent
dispute_lost
dispute_won
欺诈通知示例
fraud_notification
通知签名验证
每个 POST 通知都包含两个标头,使您可以验证请求是否来自 Codapay 且未被篡改:
X-Request-Time
请求的时间戳,以时间戳毫秒表示(数字字符串)
X-Signature
Codapay 使用您的商户密钥计算的 HMAC-SHA512 十六进制摘要
工作原理
Codapay 和您的服务器都同意使用同一个 UTF-8 字符串进行签名:
使用您的商户密钥(API key)对该字符串应用 HMAC-SHA512 算法,生成128 个字符的小写十六进制摘要。
Codapay 会将此摘要放在X-Signature邮件头中发送。您的服务器必须重新计算相同的十六进制摘要,并将其与接收到的值进行比较。
验证步骤
读取传入请求中的请求头
X-Request-Time和响应头。X-Signature读取请求的原始字节。
构建签名字符串:(
requestTime + "." + body解释为 UTF-8)。计算预期签名:
HMAC-SHA512(secretKey, signedString)→ 小写十六进制。使用恒定时间
expectedHex比较与头部值进行比较,以防止计时攻击。比较不区分大小写。X-Signature
如果值不匹配,则拒绝请求。
示例 — Java
回复通知
为确认收到通知,您的服务器必须响应一个包含200 OK以下 JSON 正文的响应:
重试策略:如果未收到有效响应,Codapay 将每隔 5 分钟重新发送一次通知,共发送 3 次。如果所有尝试均失败,系统将向您的技术联系人发送电子邮件提醒。
最后更新于
这有帮助吗?