认证
Merchant API 和 Partner API 使用 Merchant Credential 或 Partner Credential 以及 ES256 请求签名完成身份认证、报文完整性校验与防重放校验,不使用 JWT 登录态。
接入凭证
| 凭证 | 用途 |
|---|---|
| 商户号 | Adopay 分配的商户标识,请求时通过 X-Merchant-Id 传递。 |
| P-256 私钥 | 由商户自行生成并保管,用于生成 ES256 请求签名。 |
| P-256 公钥 | 商户接入时提交给 Adopay,用于 Adopay 校验请求签名。 |
| 密钥版本 | 通过 Authorization 中的 keyId 标识,用于密钥轮换。 |
私钥只能在服务端使用,应存放在密钥管理系统或受控环境变量中,不得写入客户端代码、日志或公开仓库。
认证请求头
调用 Merchant API 或 Partner API 时,以下请求头均为必填:
| 请求头 | 说明 |
|---|---|
X-Merchant-Id | Adopay 分配的商户号。 |
X-Timestamp | Unix 秒级时间戳;服务端默认允许与当前时间相差 300 秒。 |
X-Nonce | 防重放随机字符串;同一商户在有效期内不得重复。 |
Digest | 原始请求体的 SHA-256 摘要;无请求体时对空字节串计算。 |
Authorization | ES256 签名信息,包含密钥版本、算法、参与签名的请求头和签名值。 |
完整签名串、Digest 算法、代码示例和响应验签规则见 请求签名。各接口的业务字段以对应接口页面为准。
认证流程
text
取得商户号(Partner 使用一级商户号)并向 Adopay 登记 P-256 公钥
↓
基于最终请求报文计算 Digest 和 ES256 签名
↓
携带 X-Merchant-Id、X-Timestamp、X-Nonce、Digest、Authorization 调用接口
↓
校验 Adopay 返回的 Digest 和 Authorization 响应签名网关通信层 HTTP 状态码固定为 200,业务成败以响应体中的 status 为准。常见网关响应码见 响应状态码。