请求方式#
通用请求头#
| 字段 | 类型 | 是否必填 | 描述 |
|---|
| Content-type | string | 是 | application/json |
| Authorization | string | 是 | 通过App ID 和 App Secret获取的AccessToken,格式 Bearer+空格+AccessToken |
| X-EasyLink-AppKey | string | 是 | Easylink提供的App Key |
| X-EasyLink-Nonce | string | 是 | 唯一请求编号 |
| X-EasyLink-Timestamp | int | 是 | 当前时间的毫秒级时间戳(5分钟之内有效) |
| X-EasyLink-Sign | string | 是 | 生成的签名字符串 |
通用响应结构#
{
"code": 0,
"message": "",
"data": {}
}
| 参数名 | 类型 | 说明 |
|---|
| code | int | 响应码,0 为成功 |
| message | strting | 响应消息 |
| data | object | 响应数据 |
注意code为0时,才代表请求成功,其他情况均为请求失败。
密钥对使用#
原则:谁请求谁加签,谁响应谁验签。
商户生成一对密钥,用来请求Easylink.
Easylink生成一对密钥,用来回调商户。签名机制#
为保证交易安全和API调用安全,Easylink会对所有接口的请求进行签名验证,您需要对所有的的请求进行签名,以供Easylink确认您的身份。在接入前,Easylink 会为接入商户分配商户沙盒环境的物料,具体获取方式参考环境信息,App Key用于签名,App ID和App Secret用于获取Easylink的AccessToken。商户在请求Easylink的API接口时,应通过请求头Authorization字段传递AccessToken,格式:Bearer+空格+AccessToken
商户在请求Easylink的API接口时,应通过请求头X-EasyLink-AppKey字段传递App Key
1.
获取待签名的参数集合:公共参数(来自Header)+业务参数(来自Body)。公共参数包含X-EasyLink-AppKey、X-EasyLink-Nonce、X-EasyLink-Timestamp,业务参数则根据具体的接口而定,例如订单号、金额、币种等。
2.
排序所有请求参数:按照第一个字符的键值 ASCII 码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值 ASCII 码递增排序,以此类推。
3.
拼接:将排序后的参数与其对应值,组合成 参数=参数值 的格式,并且把这些参数用 & 字符连接起来,连接好的字符串称为原始字符串。然后将App Key拼接到字符串的头尾,此时生成的字符串为待签名字符串。
4.
使用SHA-256 算法和 RSA 私钥计算签名,对计算完成的签名进行Base64编码,生成需要在Header里面传 输的签名。
5.
通过请求头X-EasyLink-Sign传递签名。
签名代码示例#
验签代码示例#
验签需要使用Easylink为您提供的公钥,如果未提供,请联系我们
(与签名有区别,EasyLink回调商户,Header中没有X-EasyLink-Nonce,所以签名中也没有X-EasyLink-Nonce)