设置WEBHOOK身份验证

WEBHOOK 回调接口描述

WEBHOOK 是一种让服务器能够主动向客户端发送实时事件通知的机制。当某个事件发生时,服务器会通过 POST 请求将事件数据发送到您预先配置的回调 URL(即 WEBHOOK 接口)。

如何配置 WEBHOOK 回调

1.配置回调 URL:

在您的商户管理平台上的开发者菜单,您需要提供一个可接收回调数据的 URL。这是您的服务器端接收 WEBHOOK 请求的地址。

2.接收事件通知:

每当触发某个事件时(如支付成功、支付失败等),我们的系统会向您提供的回调 URL 发送一个 HTTP POST 请求。请求的主体将包含事件的详细信息,通常为 JSON 格式。

3.请求头信息:

在接收到的 POST 请求中,您需要验证请求的有效性。您可以使用以下信息来校验请求:

Content-Type: application/json Authorization: 24be30a26b05f284a3a838abcaabcfc44fd7d02c2622a9d0d7efcaa2b21f12f2 --这是用于验证请求来源和完整性的签名,确保回调请求的安全性。 merchantId: 11122333 --户的唯一标识符 appId: 1 --应用的唯一标识符 curTime: 1735279386000 --回调请求的时间戳

说明:
Content-Type: application/json 表示请求体是 JSON 格式。
Authorization: 是一个签名字符串,用于验证请求的合法性。
merchantId: 表示商户的唯一标识。
appId: 表示应用的唯一标识。
curTime: 表示当前时间戳。

4.回调数据格式

接收到的回调请求主体通常会包括以下字段:

{ "live":null, "notificationItems": [ { "eventCode": "TRANSACTION", "amount": { "currency": "USD", "value": 1000 }, "resultCode": "PENDING", "paymentMethod": "CreditCard", "merchantReference": "123456", "pspReference": "789101", "eventDate": 1735279386000 } ], "appId": "yourAppId", "merchantId": "yourMerchantId" }

您需要对 notificationItems 部分进行加密验签,确保其数据的完整性和安全性。如果签名匹配,说明数据是有效且未被篡改,您可以继续处理这个回调请求。

加密内容为:

{ "appId": "yourAppId", "merchantId": "yourMerchantId", "notificationItems": [ { "eventCode": "TRANSACTION", "amount": { "currency": "三字符的[ISO4217货币代码", "value": 1000 }, "resultCode": "PENDING", "paymentMethod": "支付方式", "merchantReference": "商户订单号", "pspReference": "支付服务提供商订单号", "eventDate": 1735279386000 } ] }

将加密后的签名与请求头中的 Authorization 字段值进行比对,确认是否一致。