简析USDT钱包对接交易所流程

    2020-06-18 23:55:51 #USDT钱包对接,USDT钱包对接流程 #USDT钱包对接交易所

    优盾钱包(www.uduncloud.com) 提供BTC_ETH_USDT_EOS_XRP等主流erc20代币对接交易所钱包充提币_转账支付归集_API/RPC的php/java开发接口。API快捷接入,多币种多地址钱包余额一键归集、私钥冷存储、多级复签、全终端支持。点此立即试用

    从无到有,从默默无闻到飞速增长到当前熊市再临,加密货币在经历螺旋式发展态势中格局初现。近些年来,市值排行TOP 30的加密货币币种相对稳定,其总市值约占数字货币市场的90%,展现了当下全球范围内加密货币市场的重要核心力量。

     


    当前,市值最高的加密数字货币依然为比特币,其流通市值达到了1710.79亿美元,紧随其后位列第二的是以太币,流通市值约为252.25亿美元,以及黑马USDT跃居第三,流通市值约为91.73亿美元。

     

    近期关于数字货币市场的月度报告中,彭博社对USDT泰达币的发展表明了自己观点,大概意思是:得益于桥接美元的广泛用例,好像没有什么可以成为阻挡USDT增长的障碍想要超过 ETH可能仅仅只是时间的问题罢了。

     

    确实近一年来,USDT泰达币的膨胀趋势极其显著经历过“黑色星期四”的大风大浪,在加密货币市场,交易者保证金交易的需求,受制裁或本币波动性过大国家或地区的美元需求等因素,成为助力USDT泰达币市值一路扶摇直上的关键环节。

     

    USDT的发展史

     

    2012年,BitfinexTether的母公司——iFinex在香港成立。

    2014Tether最先通过使用Omni Layer Protocol协议在比特币区块链发行代币,并表示USDT11锚定美元,100%法币储备金,支持任何时间兑换,不会面临汇率问题。

    20151月,加密货币交易所Bitfinex上线了 TetherUSDT交易对。但当时加密货币市场还在牛市攀升期,稳定币的行业基础上设置地位并未凸显。

    USDT圈定了稳定币这个场子以后,只有比特股等少数稳定币项目入场,但完全不对USDT市场份额构成威胁,稳定币市场也一直不温不火。

    直到20179月,中国七部委联合发声:“任何所谓的代币融资交易平台不得从事法定货币与代币、‘虚拟货币’相互之间的兑换业务,不得买卖或作为中央对手方买卖代币或‘虚拟货币’”。

    稳定币在一定程度上成了交易媒介,这使其在加密货币市场中拥有了独特的地位,其价格变动对主流加密货币的影响也日益渐深,稳定币这个场子的重要性日益凸显。

     

    数字货币USDT的市值扶摇直上,尤其是借助于交易所平台这个媒介,其市场占有率显著提升。对于一些新兴交易所,需要对接USDT钱包,实现充币、提币的业务需求。


    <br>

    usdt钱包如何跟交易所对接?实现方法可以拆解为 生成usdt地址、 提usdt币、 代付usdt、交易回调 、 校验地址合法性 、 获取商户支持币种信息等六个步骤。



    详细代码如下:

    1、生成地址

    1.1 场景说明

    请求指定币种地址,如要成功获取地址,需先存在钱包,且钱包支持该币种, 详情参看

    1.2 接口详情

    1.2.1 接口地址

    接口详情

     

    URL

    【/mch/address/create】

    请求方式

    POST

    1.2.2 参数

    1.2.2.1 参数说明

    参数

    类型

    是否必填

    说明

    备注

    timestamp

    String

    时间戳

    见 验签说明

    nonce

    String

    随机数

    见 验签说明

    sign

    String

    签名

    见 验签说明

    body

    String

    消息内容

    json字符串,格式如下

    [

        {

         "merchantId":"300015",

         "coinType":520,

         "callUrl":"http://localhost:8080/callBack"

        }

    ]

    1.2.2.2 body参数字段

    body参数名

    类型

    是否必填

    说明

    merchantId

    String

    商户号

    coinType

    Integer

    主币种编号,见 附录一

    callUrl

    String

    回调地址,通过该接口创建的地址,以后关于该地址的充币信息会通过您指定的回调地址通知您。具体示例见 交易回调接口

    walletId

    String

    钱包编号,默认根据主钱包生成地址

    alias

    String

    地址别名

    1.2.2.3 示例

    {

        "timestamp": 1535005047,

        "nonce": 10000,

        "sign": "a230def43c1a12b14393880a28d4e005",

        "body": "[{\"merchantId\":\"300015\",\"coinType\":520,\"callUrl\":\"http://localhost:8080/callBack\"}]" 

    }

    1.2.3 返回状态码表

    code

    解释

    200

    成功

    4005

    非法参数

    4001

    商户不存在

    4169

    商户已禁用

    4162

    签名错误

    4175

    钱包编号错误

    4017

    商户没有创建钱包

    4176

    钱包未添加支持该币种

    4166

    商户没有配置套餐

    4168

    商户地址达到上限

    4045

    币种信息错误

    -1

    获取地址失败

    1.3 调取示例

    1.3.1 成功

    {

        "data":{

            "coinType":520,

            "address":"0xbe4e3699cb870bc95365fe04a187dd279a651a58"

        },

        "message":"SUCCESS",

        "code":200

    }

    1.3.2 失败

    {

        "code": "4101",

        "message": "SIGN_MSG_ERROR"

    }

    2、发送提币申请

    2.1 场景说明

    提币申请

    2.2 接口详情

    2.2.1 接口地址

    接口详情

     

    URL

    【/mch/withdraw】

    请求方式

    POST

    2.2.2 参数

    2.2.2.1 参数说明

    参数

    类型

    是否必填

    说明

    备注

    timestamp

    String

    时间戳

    见 验签说明

    nonce

    String

    随机数

    见 验签说明

    sign

    String

    签名

    见 验签说明

    body

    String

    消息内容

    json字符串,格式如下

    [

        {

            "address":"raadSxrUhG5EQVCY75CSGaVLWCeXd6yH6s",

            "amount":"0.11",

            "merchantId":"100109",

            "mainCoinType":"144",

            "coinType":"144",

            "callUrl":"http://localhost:8080/mch/callBack",

            "businessId":"15",

            "memo":"10112"

        }

    ]

    2.2.2.2 body参数字段

    body参数名称

    是否必填

    类型

    说明

    address

    String

    提币地址

    amount

    String

    提币数量

    merchantId

    String

    商户号

    mainCoinType

    String

    主币种编号 (见 附录一 )

    coinType

    String

    子币种编号 (见 附录一 )

    callUrl

    String

    回调地址,通过该callUrl告知您该笔提币交易的状态,具体示例见 交易回调接口

    businessId

    String

    业务id,必须保证该字段在系统内唯一,如果重复,则该笔审核钱包不会接收。

    memo

    String

    备注,XRP和EOS,这两种币的提币申请该字段可选,起他类型币种不填

    2.2.2.3 示例

    {

      "timestamp": 1535005047,

      "nonce": 100000,

      "sign": "6df1512ee650431632ce1541a6b064e1",

      "body": "[{\"address\":\"raadSxrUhG5EQVCY75CSGaVLWCeXd6yH6s\",\"amount\":\"0.11\",\"merchantId\":\"100109\",\"mainCoinType\":\"144\",\"coinType\":\"144\",\"callUrl\":\"http://localhost:8080/callBack\",\"businessId\":\"15\",\"memo\":\"10112\"}]" 

    }

    2.2.3 返回状态码表

    code

    解释

    200

    成功

    4005

    非法参数

    4598

    传入body中的list对象中的所有merchantId必须保持一致

    4001

    商户不存在

    4169

    商户已被禁用

    4183

    到账地址异常

    4193

    EOS金额小数点后超过4位长度

    4034

    未找到该币种信息

    2.3.1 成功

    {

        "message":"SUCCESS",

        "code":200

    }

    2.3.2 失败

    {

        "code": "4101",

        "message": "SIGN_MSG_ERROR"

    }

    3、代付

    3.1 场景说明

    代付,发送自动付款申请,未设置代付信息或代付失败则进入审核状态。

    3.2 接口详情

    3.2.1 接口地址

    接口详情

     

    URL

    【/mch/withdraw/proxypay】

    请求方式

    POST

    3.2.2 参数

    3.2.2.1 参数说明

    参数

    类型

    是否必填

    说明

    备注

    timestamp

    String

    时间戳

    见 验签说明

    nonce

    String

    随机数

    见 验签说明

    sign

    String

    签名

    见 验签说明

    body

    String

    消息内容

    JSON字符串,格式如下

    [

      {

          "address":"raadSxrUhG5EQVCY75CSGaVLWCeXd6yH6s",

          "amount":"0.1",

          "merchantId":"100146",

          "mainCoinType":"144",

          "coinType":"144",

          "callUrl":"http://localhost:8080/callBack",

          "businessId":"571001",

          "memo":"10112"

      }

    ]

    3.2.2.2 body参数说明

    body参数名称

    类型

    是否必填

    说明

    merchantId

    String

    商户号

    address

    String

    提币地址

    mainCoinType

    String

    主币种编号,见 附录一

    coinType

    String

    子币种编号,见 附录一

    amount

    String

    交易数量

    callUrl

    String

    回调地址,提币(审核、交易)结果将通过该地址进行回调,具体示例见 交易回调接口

    businessId

    String

    业务id,必须保证该字段在系统内唯一,如果重复,则该笔提币钱包将不会进行接收

    memo

    String

    备注,XRP和EOS,这两种币的提币申请该字段可选,起他类型币种不填

    3.2.2.2 示例

    {

        "timestamp": 1535005047,

        "nonce": 100000,

        "sign": "e1bee3a417b9c606ba6cedda26db761a",

        "body": "[{\"address\":\"raadSxrUhG5EQVCY75CSGaVLWCeXd6yH6s\",\"amount\":\"0.1\",\"merchantId\":\"100146\",\"mainCoinType\":\"144\",\"coinType\":\"144\",\"callUrl\":\"http://localhost:8080/callBack\",\"businessId\":\"571001\",\"memo\":\"10112\"}]"

    }

    3.2.3 返回状态码表

    code

    解释

    200

    成功

    4005

    非法参数

    4001

    商户不存在

    4166

    商户没有配置套餐

    4169

    商户已被禁用

    4612

    签名错误

    4163

    签名信息错误

    569

    无效的地址

    571

    已存在审核记录,将不再进行处理

    581

    非法提币金额

    554

    商户不支持该币种

    3.3 调取示例

    3.3.1 成功

    {

        "message":"SUCCESS",

        "code":200

    }

    3.3.2 失败

    {

        "code": "4101",

        "message": "SIGN_MSG_ERROR"

    }

    4、交易回调接口

    4.1 场景说明

    网关收到交易处理结果,调用商户提供的回调接口,通知商户具体变化信息。该接口网关发送给您指定的回调地址的内容,处理您的业务信息。 分充值回调和提币回调,其中提币最多会进行两次回调(审核回调+交易结果回调)

    4.2 接口详情

    4.2.1 接口地址

    接口详情

     

    URL

     

    请求方式

    POST

    4.2.2 参数

    4.2.2.1 参数说明

    参数

    类型

    是否必填

    说明

    备注

    timestamp

    String

    时间戳

    见 验签说明

    nonce

    String

    随机数

    见 验签说明

    sign

    String

    签名

    见 验签说明

    body

    String

    消息内容

    JSON字符串,格式如下

    {

        "address":"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW",

        "amount":"12345678",

        "blockHigh":"102419",

        "coinType":"206",

        "decimals":"8",

        "fee":"452000",

        "mainCoinType":"206",

        "status":3,

        "tradeId":"20181024175416907",

        "tradeType":1,

        "txId":"31689c332536b56a2246347e206fbed2d04d461a3d668c4c1de32a75a8d436f0",

        "businessId":"",// 提币回调为提币接口传入的businessId,充币无值

        "memo":""

    }

    4.2.2.2 body参数说明

    body参数名称

    类型

    说明

    address

    String

    地址

    amount

    String

    交易数量,根据币种精度获取实际金额,实际金额=amount/pow(10,decimals),即实际金额等于amount除以10的decimals次方

    fee

    String

    矿工费,根据币种精度获取实际金额,实际金额获取同上

    decimals

    String

    币种精度

    coinType

    String

    子币种编号,见 附录一

    mainCoinType

    String

    主币种编号,见 附录一

    businessId

    String

    业务编号,提币回调时为提币请求时传入的,充币回调无值

    blockHigh

    String

    区块高度

    status

    Integer

    状态,见 回调接口状态说明

    tradeId

    String

    交易流水号

    tradeType

    Integer

    交易类型,见 回调接口交易类型说明

    txid

    String

    区块链交易哈希

    memo

    String

    备注,XRP和EOS(见 附录一 ),这2种类型币的充提币可能有值

    4.2.2.2 示例

    {

        "timestamp": 1535005047,

        "nonce": 100000,

        "sign": "e1bee3a417b9c606ba6cedda26db761a",

        "body": "{\"address\":\"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW\",\"amount\":\"12345678\",\"blockHigh\":\"102419\",\"coinType\":\"206\",\"decimals\":\"8\",\"fee\":\"452000\",\"mainCoinType\":\"206\",\"status\":3,\"tradeId\":\"20181024175416907\",\"tradeType\":1,\"txId\":\"31689c332536b56a2246347e206fbed2d04d461a3d668c4c1de32a75a8d436f0\"}"

    }

    5、校验地址合法性

    5.1 场景说明

    校验地址的合法性,添加地址、提币申请等场景时可先校验地址合法性,参看 校验规则

    5.2 接口详情

    5.2.1 接口地址

    接口详情

     

    URL

    【/mch/check/address】

    请求方式

    Post

    5.2.2 参数

    5.2.2.1 参数说明

    参数

    类型

    是否必填

    说明

    备注

    timestamp

    String

    时间戳

     

    nonce

    String

    随机数

     

    sign

    String

    签名

     

    body

    String

    消息内容

    JSON字符串,格式如下

    {

        "merchantId":200000,

        "mainCoinType":"206",

        "address":"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW"

    }

    5.2.2.2 body参数说明

    body参数名称

    类型

    是否必填

    说明

    merchantId

    Long

    商户号

    mainCoinType

    String

    主币种编号,见 附录一

    address

    String

    需校验的地址

    5.2.2.2 示例

    {

        "timestamp": 1535005047,

        "nonce": 100000,

        "sign": "e1bee3a417b9c606ba6cedda26db761a",

        "body": "[{\"merchantId\":200000,\"mainCoinType\":\"206\",\"address\":\"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW\"}]"

    5.2.3 返回状态码表

    code

    解释

    200

    成功

    4005

    非法参数

    4162

    签名错误

    4165

    地址不合法

    5.3 调取示例

    5.3.1 成功

    {

        "code":200,

        "message":"SUCCESS"

    }

    5.3.2 失败

    {

        "code":4005,

        "message":"PARAM_ERROR"

    }

    6、获取商户支持的币种信息

    6.1 场景说明

    获取商户支持的币种,以及余额

    6.2 接口详情

    6.2.1 接口地址

    接口详情

     

    URL

    【/mch/support-coins】

    请求方式

    POST

    6.2.2 参数

    6.2.2.1 参数说明

    参数

    类型

    是否必填

    说明

    timestamp

    String

    时间戳

    nonce

    String

    随机数

    sign

    String

    签名

    body

    String

    消息内容

    6.2.2.2 body参数说明

    body参数名称

    类型

    是否必填

    说明

    merchantId

    Long

    商户号

    showBalance

    Boolean

    是否查询余额,false不获取,true获取

    6.2.2.3 示例

    {

        "timestamp": 1535005047,

        "nonce": 100000,

        "sign": "e1bee3a417b9c606ba6cedda26db761a",

        "body": "{\"merchantId\":\"200032\",\"showBalance\":true}"

    }

    6.2.3 返回状态码表

    状态码

    解释

    200

    成功

    4005

    body参数错误

    6.3 调取示例

    6.3.1 成功

    {

        "code": 200,

        "message": "SUCCESS",

        "data":[

            {

                "name": "BTC", // 币种别名

                "coinName":"Bitcoin", // 币种全称

                "symbol":"BTC", // 币种单位

                "mainCoinType":"0", //主币种类型

                "coinType":"0", // 币种类型

                "decimals":"8", // 币种精度

                "tokenStatus":"0", // 0: 主币 1:代币

                "mainSymbol":"BTC", //主币种单位

                "balance":"0", // 币种余额

                "logo":"http://bipay-admin.oss-cn-hangzhou.aliyuncs.com/bipay-admin-release/coin-logo/BTC.png" // 币种log地址

            },

            {

                "name": "ETH", // 币种别名

                "coinName":"Ethereum", // 币种全称

                "symbol":"ETH", // 币种单位

                "mainCoinType":"60", //主币种类型

                "coinType":"60", // 币种类型

                "decimals":"18", // 币种精度

                "tokenStatus":"0", // 0: 主币 1:代币

                "mainSymbol":"ETH", //主币种单位

                "balance":"0", // 币种余额

                "logo":"https://bipay-admin.oss-cn-hangzhou.aliyuncs.com/bipay-admin-release/coin-logo/ETH.png" // 币种log地址

            }

        ]

    }

    6.3.2 失败

    {

        "code":4005,

        "message":"BGS_ILLEGAL_PARAMETER"

    }

    附录一

    主币种编号

    子币种编号

    币种简称

    币种英文名

    币种中文名称

    精度

    0

    0

    BTC

    Bitcoin

    比特币

    8

    60

    60

    ETH

    Ethereum

    以太坊

    18

    0

    31

    USDT

    Tether USD

    泰达币

    8

    520

    520

    CNT

    CNT

    测试币

    18

    5

    5

    DASH

    DASH

    达世币

    8

    133

    133

    ZEC

    ZEC

    大零币

    8

    145

    145

    BCH

    Bitcoincash

    比特币现金

    8

    61

    61

    ETC

    Ethereum Classic

    以太坊经典

    18

    2

    2

    LTC

    LTC

    莱特币

    8

    2301

    2301

    QTUM

    QTUM

    量子链币

    8

    502

    502

    GCC

    GalaxyChain

     

    8

    60

    合约地址

    eth代币

    eth代币

     

    根据代币具体情况而定

    144

    144

    XRP

    Ripple

    瑞波币

    6

    194

    194

    EOS

    EOS

    柚子币

    4

    194

    194

    EOS

    EOS

    柚子币

    4

    2304

    2304

    IOTE

    IOTE

    IOTE

    8

    2303

    2303

    VDS

    Vollar

    Vollar币

    8

    回调接口状态说明

    状态

    说明

    0

    待审核

    1

    审核成功

    2

    审核驳回

    3

    交易成功

    4

    交易失败

    回调接口交易类型说明

    状态

    说明

    1

    充币回调

    2

    提币回调

    验签说明

    为了保证商户传送到优盾的参数信息不被恶意篡改,网关为商户接口提供Md5加密摘要认证。商户可用基础加密参数:时间戳、随机数、签名密钥(商户唯一的APIKEY)、请求明文参数按指定顺序排列进行Md5加密,产生一个验签串sign,商户请求网关接口时,带上参数时间戳、随机数、请求明文参数、sign作为参数。网关拿到相应的参数以同样的方式进行签名验签。同理,网关请求商户也以同样的方式进行身份验证。

    sign=md5(body + key + nonce + timestamp)

    key为接口授权码APIKEY,由网关分配给商户,加密字段顺序不能错误

    币种地址校验规则

    主币种类型

    币种简称

    币种英文名称

    币种中文名称

    地址前缀

    地址长度限制区间

    0

    BTC

    Bitcoin

    比特币

    1或者3

    [26,36]

    60

    ETH

    Ethereum

    以太坊

    0x

    [42]

    145

    BCH

    Bitcoincash

    比特币现金

    1

    [26,36]

    61

    ETC

    EthereumClassic

    以太坊经典

    0x

    [42]

    2

    LTC

    Litecoin

    莱特币

    L或者M

    [26,36]

    508

    GX

    GX

     

    G

    [26,36]

    503

    NBTC

    NBTC

     

    N

    不限制

    99

    STO

    STO

    证券型通证发行

    S

    不限制

    5

    DASH

    DASH

    达世币

    X

    [26,36]

    2301

    QTUM

    QTUM

    量子链币

    Q

    [26,36]

    133

    ZEC

    ZCash

    大零币

    t1

    不限制

    144

    XRP

    Ripple

    瑞波币

    r

    [34]


    综上所述,交易所就成功对接了usdt钱包。不仅满足了交易所转账、收款的基本需求,还节省了自建团队的人力、物理、时间和资本的输出。

     

    优盾钱包(www.uduncloud.com),是目前国内最好用的企业钱包开放平台。API一键对接,支持当下多数主流币种、多资产多地址统一管理、用户提币初审+复核安全模式、系统代付自动放币、多员工多钱包多权限一键分配、资产交易查询、资金流动消息提醒等多种功能。点此立即试用

     

    防黑客技术上:

    API接口信息访问验签、基于HTTPS安全传输,拒绝被监听

    私钥不上传、不触网,并通过二次加密托管在客户端侧

    钱包绑定电脑MAC地址,拒绝非认证设备访问

    冷热钱包分离,大额资产用冷钱包离线保存


    防内鬼技术上:

    员工操作权限管理员一键设置

    员工操作记录管理员一键查询

    员工只接触管理独立小额子钱包

    超额转出交易需管理员复核

    员工在非公司指定电脑设备登录优盾账号需管理员同意


    便捷接入:

    ①免节点同步;

    ②标准接口;

    ③详细接口文档;

    ④接入DEMO;

    ⑥7*24小时技术支持。

    在線客服

    申請試用

    申請試用

    設置