1. 前置必读
ORIXA-API文档
  • 默认模块
    • 前置必读
      • 请求签名算法说明
      • Webhook 签名校验文档
      • 端点响应状态码
      • WebHook通知事件
    • 持卡人
      • 修改持卡人
      • 持卡人列表-分页查询
      • 创建持卡人
    • 卡片操作
      • 卡片敏感信息-Iframe版
      • 卡片列表(分页查询)
      • 获取卡产品列表
      • 实体卡绑定
      • 激活实体卡
      • 卡片激活码(回调异常情况下主动获取)
      • 卡片详情
      • 卡片充值
      • 卡片敏感信息(卡片三要素)
      • 设置卡片状态
      • 卡片刷新
      • 设置PIN
      • 卡卡转账
      • 虚拟卡创建
    • WebHook
      • 获取WebHook信息
      • 设置WebHook
      • 通知记录
    • 模拟测试
      • API请求头模拟
      • 卡片授权交易--仅沙箱环境可用
    • 商户信息
      • 商户可用余额
      • 商户账单
    • 供应链
      • 供应商目录
      • 供应商资质披露
      • 产品类目
      • 产品列表
      • 获取指定产品规格
      • 查询某产品规格库存信息
      • 计算运费
      • 订单记录
      • 取消订单-仅待发货可申请
      • 确认收货
      • 创建订单
      • 获取支持快递列表
    • 全球付
      • 支持国家列表
      • 汇款通道
      • 获取汇款/创建受益人参数说明
      • 创建受益人
      • 受益人列表
      • 获取货币汇率
      • 更新受益人
      • 汇款
      • 汇款订单
  1. 前置必读

Webhook 签名校验文档

指导代理商验证 ORIXA 平台发送的 Webhook 回调请求,确保数据来源可信、内容未被篡改。

1. Webhook 安全机制概述#

ORIXA 平台每次推送 Webhook 时,都会在 HTTP Header 中携带安全字段:
Header说明
X-Webhook-Signature使用 webhook_secret 对 payload 进行 HMAC-SHA256 签名
X-Payload-Sha256payload 原始内容的 SHA256 指纹
Content-Type固定为 application/json
代理商必须验证两项内容:
1.
payload 未被篡改
2.
回调确实来源于 ORIXA(签名验证)

2. Webhook 请求示例#

请求头:#

X-Webhook-Signature: 9c0a55be63df...c92a
X-Payload-Sha256: 2cd52a741c49c9...93cd
Content-Type: application/json

请求 Body:#

{
  "event": "card.created",
  "card_id": "c_1298123",
  "cardholder_id": 12345,
  "status": "active",
  "timestamp": 1736501235
}

3. 验证步骤#

步骤 1:验证 Payload 完整性#

计算原始字符串的 SHA256:
local_sha256 = sha256(raw_body)
对比:
local_sha256 == X-Payload-SSha256

步骤 2:验证签名#

expected_signature = HMAC_SHA256(raw_body, webhook_secret)
对比:
expected_signature == X-Webhook-Signature

4. 获取 Webhook Secret#

通过 API 设置 webhook:
POST /agent/v1/webhook/set
返回示例:
{
  "webhook_url": "https://api.xxx.com/hook",
  "secret": "whsec_ab12cd34ef56..."
}

5. 代码示例#

PHP#

Node.js(Express)#

Python(Flask)#


6. 验签失败的常见原因#

JSON 被格式化或压缩,导致 SHA256 不一致
代理商中间层修改了 body
使用错误的 webhook_secret
未使用原始 body 进行签名

7. 回调响应要求#

返回 200 + 字符串 "ok":
HTTP/1.1 200 OK
ok
否则平台会自动重试(指数退避):
次数延迟
1立即
230s
360s
4120s
5240s
6480s
7960s

8. 安全最佳实践#

强制使用 HTTPS
验证签名后再处理业务
不要泄露 webhook_secret
如被泄露,请重新生成
上一页
请求签名算法说明
下一页
端点响应状态码
Built with