1. 接入指引
Dispute Service API
  • Dispute API
    • 版本记录
    • 接入指引
      • 安全要求及报文格式
      • Dispute Service 服务使用指引
      • 特殊规则说明
    • 接口
      • Notification
      • Dispute
      • Dispute
  1. 接入指引

安全要求及报文格式

本节旨在解释开始 API 对接时接入方系统与 EVO Cloud 之间使用的签名机制和消息内容。

消息协议#

通信需要遵循 HTTP 协议。

报文内容#

根据 HTTP 协议,报文内容应分为两个独立的部分:HTTP 请求/响应 Header 和 HTTP 请求/响应 Body。

请求/响应 Header#

请求/响应 Header 的内容应包含以下参数:
Header ParametersDescription
Content-Type指定“application/json; charset=utf-8”,请求和响应的消息正文必须是JSON格式,并且字符编码为UTF-8。响应中也会回复该字段。
DateTime请求发送的时间,格式遵循ISO8601:YYYY-MM-DDThh:mm:ssTZD,响应中也会回复该字段。
KeyID由EVO Cloud分配的签名密钥的唯一标识符。在响应和请求中,这个标识符应该是相同的,并且可以作为可选项发送。
MsgID这是一个用于追踪商家的每一个API请求的ID。建议使用UUID(通用唯一识别码)或GUID(全局唯一标识符),例如2d21a5715c034efb7e0aa383b885fc7a。建议将此值的长度控制在不超过32个字符。EVO Cloud不会验证这个值,而会在响应消息中将其原样返回。使用说明:字段类型为字符串(最大长度1024)。
SignType加密方式,如:SHA256、SHA512、HMAC-SHA256、HMAC-SHA512
Authorization消息签名,详情请参阅消息签名部分。

签名方法#

每个API请求和响应消息都包含需要验证的消息签名。消息发送方在发送消息之前必须生成签名,消息接收方在应用业务逻辑之前必须验证签名。为了生成/验证消息签名,需要执行以下步骤。

获取签名密钥#

商户需要从收单方或EVO Cloud客户经理处申请由EVO Cloud分配的签名密钥。该密钥是一个32位字符的字符串,每个sid会分配一个密钥。例如,64b59e70e15445196b1b5d2935f4e1bc。商户应在服务器端妥善保管该密钥,如果密钥存在被泄露的风险,需要及时联系收单方或EVO Cloud客户经理进行重置。

生成签名#

在向EVO Cloud发送请求消息之前,商家需要生成消息签名,并将其放入请求消息中。
1.构建待签名的字符串
在使用特定的签名算法之前,商家需要构建一个待签名的字符串。构建方法如下:
根据以下方法生成待签名的字符串。待签名的字符串包含6行。每一行包含一个参数,并以换行符结尾,最后一行除外。如果一行为空,则该行不会存在。换行符是 \n(ASCII 码值为 0x0A)。
1.HTTP method: POST/GET/PUT/DELETE.
2.Request URL: Request path + query string. Remember to remove the domain part of the URL.
3.DateTime in HTTP header: The time of the message being sent.
4.Signature key: The key assigned by EVO Cloud.
5.MsgID in HTTP header: The ID for the merchant to trace every API request.
6.HTTP body: All the data submitted in the HTTP body.
下面是一个待签名的样例:
2.计算签名值
使用SHA256、SHA512、HMAC-SHA256或HMAC-SHA512算法来计算待签名字符串的哈希值。商家将得到的哈希值作为签名值。对于HMAC签名类型,签名密钥与EVO Cloud分配的签名密钥相同。
样例:用SHA256计算出的签名值:
e9ce1bfb697c272fa75848ef0a7eb7c4f8019e5f46dc3141fe936830c32f397c
3.将计算好的签名放入HTTP的Header中
商户可以得到一个带有签名的HTTP请求信息,并可以将其发送至EVO Cloud:

验证从EVO Cloud接收的消息的签名#

1.构建待签名的字符串
根据收到的EVO Cloud请求,用和上述构建签名的字符串相同的字段构建一个字符串(同上述代码块)
2.用相同的签名方法计算签名
用和EVO Cloud相同的方法计算签名
3.验证签名
获取HTTP请求头中的Authorization值,并将其与上面计算出的签名值相比较,以查看他们是否匹配。如果匹配,则继续在商户端进行业务逻辑处理。如果不匹配,则应停止商户端的处理,检查密钥是否正确,如有需要,请联系EVO Cloud客户经理寻求帮助
上一页
版本记录
下一页
Dispute Service 服务使用指引
Built with