FaTPay Docs
🇨🇳 中文(简体)
🇨🇳 中文(简体)
  • 介绍
  • 申请集成
    • 成为合作伙伴
    • 快速启动
  • 更多场景的最佳实践
    • 交易所
    • 项目方
    • 钱包工具
    • 流量合作
    • NFT
  • 参考文档
    • 集成 on-ramp 页面
      • 自定义控件
      • 自定义界面
      • 加签
    • 集成 NFT Checkout 页面
    • API 接口文档
      • API
        • 加密货币查询接口
        • 法定货币及支付方式查询接口
        • 报价查询接口
        • 订单列表查询接口
      • Webhooks
        • 订单回调通知
      • 接口加签 & 验签
  • 附录
    • 语言种类
    • 可支持法币
    • 可支持加密货币(on-ramp)
    • 可支持的加密货币(NFT Checkout)
    • API 接口错误码索引
    • RSA 密钥生成指南
    • Demo
      • 集成 FaTPay 页面加签
      • API 接口加签
      • Webhook 订单回调验签
  • 翻译说明
    • 中文翻译
Powered by GitBook
On this page
  • URL接口加签
  • 加签步骤
  • 加签示例
  1. 参考文档
  2. 集成 on-ramp 页面

加签

Previous自定义界面Next集成 NFT Checkout 页面

Last updated 2 years ago

为了更高的安全性,必须对URL 进行签名

URL接口加签

在申请集成中,您将生成 SecretKey。URL请求接口的签名就是基于其生成,所以请千万注意不要泄漏。

加签步骤

API 接口请求加签主要由以下几个步骤组成。

  1. 获取参数

    • 首先,获取url接口需要签名的GET入参,组成一个数组,去掉 key 或 value 为空的 item;

    • 需要签名的参数,on-ramp见 ,NFT Checkout见

  2. 参数排序

    • 接着按所有参数名的字典序(ASCII码)升序排序,注意只有参数里的 key 名进行排序,值不参与排序;

  3. 拼字符串

    • 先将格式转化为参数名=参数值形式,并用&符连接,得到拼接字符串;

  4. 摘要签名

    • 然后对待加签字符串使用 SecretKey 做 HMAC-SHA256 算法进行摘要签名,并进行urlencoding,生成最终的签名。

  5. 签名赋值

    • 最后,将上一步得到的签名赋值到 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&timestamp=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&timestamp=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&timestamp=1656600459&walletAddress=0xF0C35891CAf1cCa9b1daB1291c61fF232E6D5888&walletAddressHidden=1&walletAddressLocked=1&signature=4UoZ2gIm3bcLTw5K6WdBJIaYBiXgQF3uvOfY4Ovc6%2B4%3D

高级合作伙伴
on-ramp参数说明
NFT Checkout参数说明