加签
为了更高的安全性,高级合作伙伴必须对URL 进行签名
URL接口加签
在申请集成中,您将生成 SecretKey
。URL请求接口的签名就是基于其生成,所以请千万注意不要泄漏。
加签步骤
API 接口请求加签主要由以下几个步骤组成。
获取参数
首先,获取url接口需要签名的GET入参,组成一个数组,去掉 key 或 value 为空的 item;
需要签名的参数,on-ramp见 on-ramp参数说明,NFT Checkout见 NFT Checkout参数说明
参数排序
接着按所有参数名的字典序(ASCII码)升序排序,注意只有参数里的 key 名进行排序,值不参与排序;
拼字符串
先将格式转化为
参数名=参数值
形式,并用&
符连接,得到拼接字符串;
摘要签名
然后对待加签字符串使用
SecretKey
做HMAC-SHA256
算法进行摘要签名,并进行urlencoding,生成最终的签名。
签名赋值
最后,将上一步得到的签名赋值到 url 里的
signature
,集成FaTPay页面。FaTPay 网关收到请求后,会统一使用SecretKey
校验签名,如果通过校验则返回相应的服务端数据。
加签示例
假设需要默认钱包地址,且对用户锁定并隐藏钱包地址页
请求参数如下:
{
"walletAddress": 0xF0C35891CAf1cCa9b1daB1291c61fF232E6D5888,
"walletAddressHidden": 1,
"walletAddressLocked": 1,
"ext": ext
}
公共参数如下:
{
"nonce": 748219,
"partnerId": "mqMBpCIP630LJxLY",
"timestamp": 1656600459
}
获取参数
首先,获取url接口需要签名的GET入参,组成一个数组,去掉 key 或 value 为空的 item。即可得到这样一个数组:
ext=ext&nonce=54335363&partnerId=mqMBpCIP630LJxJK&partnerUrl=https://yoururl.com×tamp=1657854065&walletAddress=xxxx&walletAddressHidden=1&walletAddressLocked=1
{
"partnerId": "mqMBpCIP630LJxLY",
"timestamp": 1656600459,
"nonce": 748219,
"walletAddress": "0xF0C35891CAf1cCa9b1daB1291c61fF232E6D5888",
"walletAddressHidden": 1,
"walletAddressLocked": 1,
"ext": "ext"
}
参数排序
接着按所有参数名的字典序(ASCII码)升序排序,得到:
{
"ext": "ext",
"nonce": 748219,
"partnerId": "mqMBpCIP630LJxLY",
"timestamp": 1656600459,
"walletAddress": "0xF0C35891CAf1cCa9b1daB1291c61fF232E6D5888",
"walletAddressHidden": 1,
"walletAddressLocked": 1
}
拼字符串
先将格式转化为参数名=参数值
形式,并用&
符连接,得到拼接字符串:
ext=ext&nonce=54335363&partnerId=mqMBpCIP630LJxJK×tamp=1657854065&walletAddress=0xF0C35891CAf1cCa9b1daB1291c61fF232E6D5888&walletAddressHidden=1&walletAddressLocked=1
摘要签名
然后对待加签字符串使用 SecretKey
做 HMAC-SHA256
算法进行摘要签名,对摘要字串进行base64
编码生成签名:
4UoZ2gIm3bcLTw5K6WdBJIaYBiXgQF3uvOfY4Ovc6+4=
对签名 urlencode:
4UoZ2gIm3bcLTw5K6WdBJIaYBiXgQF3uvOfY4Ovc6%2B4%3D
签名赋值
最后,将上一步得到的签名赋值到 url 里的 signature
,集成FaTPay页面。页面跳转至FaTPay后,FaTPay会统一使用 SecretKey
校验签名,如果通过校验则展示对应的下单流程。
https://ramp.fatpay.xyz/home?ext=ext&nonce=748219&partnerId=mqMBpCIP630LJxLY×tamp=1656600459&walletAddress=0xF0C35891CAf1cCa9b1daB1291c61fF232E6D5888&walletAddressHidden=1&walletAddressLocked=1&signature=4UoZ2gIm3bcLTw5K6WdBJIaYBiXgQF3uvOfY4Ovc6%2B4%3D
Last updated