1. 接入指南
Linkpay API
  • 接入指南
    • LinkPay 概述
    • LinkPay 工作原理
    • 商户入网
    • 如何接入 LinkPay
    • 签名与报文头
    • 定制化服务
    • 支付方式列表
    • 支付方式细分类型列表
    • 响应码
    • 版本记录
    • Agent Toolkit 概述
    • Agent Toolkit 快速入门
  • API
    • 下载 OpenAPI 规范文件
    • LinkPay
      • 响应码
      • LinkPay
    • 查询 LinkPay 订单
      • 响应码
      • 查询 LinkPay 订单
    • 退款
      • 响应码
      • 退款
    • 查询 LinkPay 退款
      • 响应码
      • 查询 LinkPay 退款
    • 异步通知
      • 响应码
      • LinkPay 支付结果通知
      • 退款结果通知
      • 撤销结果通知
    • 关单
      • 关单
  1. 接入指南

签名与报文头

为验证报文交互的完整性,每个 API 请求和应答均包含必须验证的消息签名。报文发送方必须在发送报文前生成签名,接收方必须在处理报文前验证签名。生成/验证消息签名的过程包括以下步骤。

签名算法说明#

步骤 1:生成待签名字符串
按固定顺序使用换行符(\n)拼接 HTTP 方法、URL 字符串、DateTime、Key、msgID 和 HTTP 请求体,得到待签名字符串。
HTTP 方法:POST/GET/PUT/DELETE。
URL 字符串:URL 路径 + URL 参数。
DateTime:请求发送时间。格式为
YYYY-MM-DDThh:mm:ss+hh:00。例如 2020-03-04T15:39:40+08:00。
Key:EVO Cloud 分配的用于签名/验签的密钥。
MsgID:建议使用 UUID 或 GUID 标识本次请求,例如 2d21a5715c034efb7e0aa383b885fc7a。长度不得超过 32 个字符。
HTTP 请求体:要在请求体中发送的所有参数。(GET 类型请求不包含此参数)
步骤 2:计算签名密文
使用 SHA256、SHA512、HMAC-SHA256 或 HMAC-SHA512 对待签名字符串进行签名。
步骤 3:将签名放入 HTTP 请求头
将 HTTP 请求头中的 Authorization 设置为 sign。

HTTP 请求头#

以下参数必须在 HTTP 请求头中发送。
Authorization:签名值。
Content-type:application/json。
DateTime:请求时间。格式为
YYYY-MM-DDThh:mm:ss+hh:00。例如 2020-03-04T15:39:40+08:00。
MsgID:建议使用 UUID 或 GUID 标识本次请求,例如 2d21a5715c034efb7e0aa383b885fc7a。长度不得超过 32 个字符。
SignType:用于计算签名的算法。SHA256、SHA512、HMAC-SHA256 或 HMAC-SHA512。

签名示例#

例如,要发送的 JSON 报文如下:
第一步是生成待签名字符串 stringSign(使用换行符(\n)连接),假设 signing key = hJ2uGZX2fadzOaYIQifxYVgcIxd60y5C0HlNIRyL2tc。
*如果从 PDF 复制以下示例来验证签名,请注意其中的空格。
• 第二步是计算签名值。
SignType 为 SHA256
SignType 为 HMAC-SHA256
• 第三步是将 sign 放入请求头。
• 最终发送的数据(CURL 版本):

验证从 EVO Cloud 接收的报文签名#

强烈建议商户验证来自 EVO Cloud 的报文签名,包括 API 应答报文和通知报文。
以下是 EVO Cloud 针对上述请求示例返回的应答报文示例。验签步骤如下:
步骤 1:构造待签名字符串
获取应答体,并按照 4.1 中所述的相同规则构造待签名字符串。(GET 类型请求的应答体需要加入待签名字符串)
待签名字符串示例如下:
重要提示: 对于通知,待签名字符串中的请求 URL是请求报文中的 webhook,且 webhook 由商户定义。如果 webhook 不包含路径部分,则待签名字符串中不存在该行。例如:
步骤 2:计算签名值
获取 HTTP 请求头中的 SignType,并使用 SignType 指定的算法计算待签名字符串的哈希值。
在上述示例中,使用 SHA256 计算上述字符串的哈希值,得到的签名值为 55b6209adf43213fbacdbc618f34f63a3cf3d1cb670aba86a8bd43bf29f3d9d9。
步骤 3:验证签名值
获取 HTTP 请求头中的 Authorization,并将其值与上述计算出的签名值进行比较,确认二者是否匹配。如果匹配,商户侧可继续执行业务逻辑处理。如果不匹配,商户侧不得继续执行业务逻辑处理;请检查签名密钥是否正确,并在需要时联系 EVO Cloud 客户经理寻求帮助。
上一页
如何接入 LinkPay
下一页
定制化服务
Built with