XPay 使用 HMAC-SHA256 结合商户公钥对API调用、回调信息进行签名。
以下为数据签名业务描述,以及验证签名的示例。
02d82ba350d6f95e4a6005f9c17d5c0a7dc4c013ed09c4fd04971660f1d0d8c299
{
"code": 0,
"data": {
"symbol": "USDT",
"buy": 7.2216,
"sell": 7.10861,
"timestamp": "1586487661938",
"legal_currency_min_amount": "100.00",
"legal_currency_max_amount": "50000.00"
},
"msg": "SUCCESS",
"sign": "RXffyiy07UBkUg3gyb4qJIMmNz/zkPDVVEu3z+6uM2o="
}
//API响应签名,仅对data内容进行签名
签名内容:
buy=7.2216&legal_currency_max_amount=50000.00&legal_currency_min_amount=100.00&sell=7.10861&symbol=USDT&timestamp=1586487661938
签名结果:
RXffyiy07UBkUg3gyb4qJIMmNz/zkPDVVEu3z+6uM2o=
{
"count":96.02194813,
"created_time":"2020-04-10 10:29:58",
"currency":"USDT",
"mobile":"13355558888",
"merchant_order_no":"51116897781651",
"merchant_profit":"0.00000000",
"platform_fee":"0.28806584",
"side":"BUY",
"status":"CANCEL",
"nonce":"1586488141021",
"sign":"KIovSkDaMlsTsBpt23gXR5YsJuOEYT+clQwKqqZM4fE="
}
//回调结果签名,针对回调内容中所有内容进行签名
签名内容:
count=96.02194813&created_time=2020-04-10%2010%3A29%3A58&currency=USDT&merchant_order_no=51116897781651&merchant_profit=0.00000000&nonce=1586488141021&order_no=undefined&platform_fee=0.28806584&side=BUY&status=CANCEL
签名结果:
KIovSkDaMlsTsBpt23gXR5YsJuOEYT+clQwKqqZM4fE=
!注意:
1,签名的内容,需要按照Key进行排序
2,签名内容中的Value,需要进行Url编码
3,有一些语言中空格会被Url编码成“+”,签名内容中的“+”通过URL编码,需要被转为“%20”