usdt錢包如何跟交易所對接?

步入庚子鼠年,加密數字貨幣交易所之間的競爭從未停歇。頭部交易所在思考創新模式、創新玩法爭奪資本和用戶,中小型交易所日夜探索如何在賽道中堅持下來。加密數字經濟做爲一種新興行業,也是一場全天候、不停歇的全球比賽,時時刻刻都會帶來意想不到的挑戰,但每每與機遇、收穫並存。json

 

對於一些中小型加密貨幣交易所來講,要想真正吸引而且留住更多的用戶,核心是瞭解並知足用戶需求,作好平臺用戶服務,畢竟「得用戶者得天下」的共識在幣圈依舊適用。另外還有安全、流動性等方面等考量,加密數字貨幣交易所可否知足用戶隨時隨地進行交易轉帳、充提幣的需求?用戶存儲在交易所的資產是否安全?會不會出現盜幣事件?這是做爲一個加密貨幣交易所最基本的特質,也是交易所用戶最關心的問題。

幣圈的激烈競爭、數字資產管理安全隱患,讓諸多投資者十分焦慮。解決焦慮的辦法就是正視它,對於交易所這種業務型系統,選擇錢包的時候須要考慮的問題,應該是安全的同時也須要快速的業務對接。在業務上常見的難點有:安全、跨鏈整合、龐大的數據量、還有其餘的業務需求好比生成地址、地址管理、資金管理、交易記錄管理、充提幣及回調等等。安全

 

USDT 是數字貨幣市場的重要載體,自 18 年危機以來,儘管各交易所都引入了諸入 BTC/PAX, BTC/USDC 等其餘穩定幣交易對,但成交量都不盡如人意。在現貨市場,USDT 對上的流動性佔據了絕對主導的地位。對比其餘穩定幣來講,USDT 能夠靈活選擇換鏈,使得它在 BTC/ETH 擁堵的時候,仍舊可以快速轉帳。如此便利的屬性,也印證了它一步一個腳印地擴張了市場份額。區塊鏈

 

隨着各交易所推出的 USDT 合約,有更多的流動性會流向 USDT 的交易,充沛的流動性更進一步鞏固 USDT 的龍頭地位,短時間內,USDT 將會是一個低風險高穩定的資產。以USDT爲例,咱們來看看usdt錢包如何跟交易所對接,即交易所如何搭建一個交易所usdt錢包系統,使之在安全、穩定的前提下,知足usdt錢包生成、提供usdt接口以便於更好地業務接入,多地址生成、usdt自動充提、交易查詢、資金歸集、提幣代付等。測試

 

usdt錢包如何跟交易所對接?實現方法能夠拆解爲 生成usdt地址、 提usdt幣、 代付usdt、交易回調 、 校驗地址合法性 、 獲取商戶支持幣種信息等六個步驟。加密

 

詳細代碼以下:spa

一、生成地址3d

1.1 場景說明code

請求指定幣種地址,如要成功獲取地址,需先存在錢包,且錢包支持該幣種, 詳情參看對象

1.2 接口詳情blog

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.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.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.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.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.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錢包。不只知足了交易所轉帳、收款的基本需求,還能夠實現交易所海量地址的歸集需求。

相關文章
相關標籤/搜索