争议概述
端到端争议流程
端到端争议流程概述如下:
- Afterpay 收到客户的争议。
- Afterpay 以程序化方式通知商户,并提供明确的争议原因代码。
- 商户通过不同方法(可能包括 API、电子邮件、Business Hub 等)收到争议已开启的通知。
- 商户通过 API 或 Business Hub 接受争议或提交证据。
- Afterpay 评估证据,并通过 webhook 通知商户争议是胜诉或败诉。
- Afterpay 通过消费者门户、电子邮件等方式通知客户争议已解决。
商户端争议生命周期图

商户端争议 API 集成图

API 端点概述
下表列出了提供给商户的 API。
Afterpay 争议 API 使用基本 HTTP 认证,与其他 Afterpay 在线 API 端点相同。商户可以使用与其他端点相同的凭证。
争议通知
当创建争议以及每次更新时,Afterpay 都会通过 webhook 通知商户。Afterpay 期望收到带有 200 响应的 ACK(确认)。如果确认失败,Afterpay 将以指数退避方式重试几次发送 webhook。
下表概述了 webhook 调用的内容:
webhook 调用中会传递 dispute_id。商户可以使用获取争议端点获取争议的详细信息。
通知设置
商户必须向 Afterpay 商户服务/争议团队提供 webhook URL 和商户 ID,以获取 HMAC 密钥并启用通知。
webhook 端点应由商户或合作伙伴维护,它应允许 content-type = application/json 的 POST 请求。
负载格式在前面的表格中定义。
通知认证
- (选项 1)密钥交换 Wiki:通过 Openssl 的 Diffie-Hellman 密钥交换:快速指南
- (选项 2)从 https://squareup.sendsafely.com/ 安全获取 HMAC 密钥
HMAC 签名
Afterpay 建议您使用 HMAC 进行 webhook 通知的认证。 考虑以下原始 HTTP 消息的结构。
将有两个额外的字段用于认证。
-
X-Afterpay-Request-Date记录 webhook 请求的发送时间。我们建议在固定时间后中止过期通知(如果您收到 webhook 且当前时间戳 -${X-Afterpay-Request-Date}大于 5 分钟)。 -
X-Afterpay-Request-Signature记录 HMAC 密钥的签名。通常我们使用以下步骤生成签名:
当商户或商户代理收到 webhook 通知时,我们建议按以下步骤生成验证签名。
如果 HMAC == X-Afterpay-Request-Signature,则继续处理通知,否则商户应中止请求。
争议决定和结束
争议取消
取消的争议(例如,可能因错误而开启并必须撤回的争议)可以以 customer_cancelled 作为 closing_reason 结束。
所有争议记录都保存在 Afterpay 系统中,并可通过争议 API 访问,我们不会删除任何争议记录。
结算和报告
在财务报告中,争议将有单独的记录。记录中包括订单 ID、争议 ID、财务变化(+/-)。