Webhook 事件对于确保 Cobo 支付服务与您的 App 之间的无缝数据集成和通信至关重要。本指南介绍如何搭建一个用于接收和处理 Webhook 事件的 Endpoint。Documentation Index
Fetch the complete documentation index at: https://cobo.com/payments/llms.txt
Use this file to discover all available pages before exploring further.
创建 Endpoint
首先,选择一个支持接收和处理 Webhook 事件的服务器环境,例如 AWS、Google Cloud 或自托管服务器。然后,在您的服务器上定义一个 Endpoint URL,以便接收 Webhook 事件。实现处理逻辑
创建 Endpoint 后,您需要在服务器上实现逻辑以处理 Webhook 事件,包括解析 API 请求、验证签名、响应请求以及在必要时添加其他处理逻辑。验证签名
为了防止未经授权的访问,当您收到 Webhook 事件时,您需要通过验证签名来验证 API 请求的真实性。 验证步骤如下:-
获取请求包体的原始数据和时间戳。
从请求 Payload 中提取包体的原始字符串,并从请求头中提取时间戳。
-
获取签名。
从请求头中获取签名值。
-
拼接消息并对其进行哈希处理。
-
选择 Cobo 的公钥。
根据您使用的环境,选择相应的公钥进行验证:
- 开发环境:
a04ea1d5fa8da71f1dcfccf972b9c4eba0a2d8aba1f6da26f49977b08a0d2718 - 生产环境:
8d4a482641adb2a34b726f05827dba9a9653e5857469b8749052bf4458a86729
- 开发环境:
-
使用 Ed25519 算法验证签名。
响应 API 请求
当您的 Webhook Endpoint 收到 Webhook 事件时,它应该响应状态码200 或 201 以指示事件已成功接收和处理。一旦发送此响应,Cobo 支付服务将停止重试发送事件,事件状态将变为已送达。
默认情况下,每个 Webhook 事件的超时时间为 2 秒。如果 Webhook Endpoint 没有响应或响应状态码不是 200 或 201,Cobo 支付服务将继续重试发送事件。如果重试次数达到 10 次,Cobo 支付服务将停止发送事件,事件状态将变为发送失败。您可以通过单击 Cobo Portal > 开发者 > Webhook 事件上的重新发送来重新发送事件。
Cobo 不保证事件将按生成顺序交付。例如,创建转账将生成以下事件:
wallets.transaction.createdwallets.transaction.updatedwallets.transaction.succeeded
代码示例
要查看如何实现处理逻辑的示例,请参阅 GitHub 库中的如下文件:- Python:server_demo.py(基于 FastAPI 框架实现)
- Java:DemoController.java(基于 SpringBoot 框架实现)
- JavaScript:ServerDemo.js
- Go:server_demo.go
