usdt钱包如何跟交易所对接?
步入庚子鼠年,加密數(shù)字貨幣交易所之間的競爭從未停歇。頭部交易所在思考創(chuàng)新模式、創(chuàng)新玩法爭奪資本和用戶,中小型交易所日夜探索如何在賽道中堅持下來。加密數(shù)字經(jīng)濟作為一種新興行業(yè),也是一場全天候、不停歇的全球比賽,時時刻刻都會帶來意想不到的挑戰(zhàn),但往往與機遇、收獲并存。
對于一些中小型加密貨幣交易所來說,要想真正吸引并且留住更多的用戶,核心是了解并滿足用戶需求,做好平臺用戶服務,畢竟“得用戶者得天下”的共識在幣圈依舊適用。另外還有安全、流動性等方面等考量,加密數(shù)字貨幣交易所能否滿足用戶隨時隨地進行交易轉(zhuǎn)賬、充提幣的需求?用戶存儲在交易所的資產(chǎn)是否安全?會不會出現(xiàn)盜幣事件?這是作為一個加密貨幣交易所最基本的特質(zhì),也是交易所用戶最關心的問題。
幣圈的激烈競爭、數(shù)字資產(chǎn)管理安全隱患,讓諸多投資者十分焦慮。解決焦慮的辦法就是正視它,對于交易所這種業(yè)務型系統(tǒng),選擇錢包的時候需要考慮的問題,應該是安全的同時也需要快速的業(yè)務對接。在業(yè)務上常見的難點有:安全、跨鏈整合、龐大的數(shù)據(jù)量、還有其他的業(yè)務需求比如生成地址、地址管理、資金管理、交易記錄管理、充提幣及回調(diào)等等。
USDT
是數(shù)字貨幣市場的重要載體,自 18 年危機以來,盡管各交易所都引入了諸入 BTC/PAX, BTC/USDC
等其他穩(wěn)定幣交易對,但成交量都不盡如人意。在現(xiàn)貨市場,USDT 對上的流動性占據(jù)了絕對主導的地位。對比其他穩(wěn)定幣來說,USDT
可以靈活選擇換鏈,使得它在 BTC/ETH 擁堵的時候,仍舊能夠快速轉(zhuǎn)賬。如此便利的屬性,也印證了它一步一個腳印地擴張了市場份額。
隨著各交易所推出的 USDT 合約,有更多的流動性會流向 USDT 的交易,充沛的流動性更進一步鞏固 USDT 的龍頭地位,短期內(nèi),USDT 將會是一個低風險高穩(wěn)定的資產(chǎn)。以USDT為例,我們來看看usdt錢包如何跟交易所對接,即交易所如何搭建一個交易所usdt錢包系統(tǒng),使之在安全、穩(wěn)定的前提下,滿足usdt錢包生成、提供usdt接口以便于更好地業(yè)務接入,多地址生成、usdt自動充提、交易查詢、資金歸集、提幣代付等。
usdt錢包如何跟交易所對接?實現(xiàn)方法可以拆解為
生成usdt地址、
提usdt幣、
代付usdt、交易回調(diào)
、
校驗地址合法性
、
獲取商戶支持幣種信息等六個步驟。
詳細代碼如下:
1、生成地址
1.1 場景說明
請求指定幣種地址,如要成功獲取地址,需先存在錢包,且錢包支持該幣種,詳情參看
1.2 接口詳情
1.2.1 接口地址
|
接口詳情 |
|
|
URL |
【/mch/address/create】 |
|
請求方式 |
POST |
1.2.2 參數(shù)
1.2.2.1 參數(shù)說明
|
參數(shù) |
類型 |
是否必填 |
說明 |
備注 |
|
timestamp |
String |
是 |
時間戳 |
見驗簽說明 |
|
nonce |
String |
是 |
隨機數(shù) |
見驗簽說明 |
|
sign |
String |
是 |
簽名 |
見驗簽說明 |
|
body |
String |
是 |
消息內(nèi)容 |
json字符串,格式如下 |
[
{
"merchantId":"300015",
"coinType":520,
"callUrl":"http://localhost:8080/callBack"
}
]
1.2.2.2 body參數(shù)字段
|
body參數(shù)名 |
類型 |
是否必填 |
說明 |
|
merchantId |
String |
是 |
商戶號 |
|
coinType |
Integer |
是 |
主幣種編號,見附錄一 |
|
callUrl |
String |
是 |
回調(diào)地址,通過該接口創(chuàng)建的地址,以后關于該地址的充幣信息會通過您指定的回調(diào)地址通知您。具體示例見交易回調(diào)接口 |
|
walletId |
String |
否 |
錢包編號,默認根據(jù)主錢包生成地址 |
|
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 返回狀態(tài)碼表
|
code |
解釋 |
|
200 |
成功 |
|
4005 |
非法參數(shù) |
|
4001 |
商戶不存在 |
|
4169 |
商戶已禁用 |
|
4162 |
簽名錯誤 |
|
4175 |
錢包編號錯誤 |
|
4017 |
商戶沒有創(chuàng)建錢包 |
|
4176 |
錢包未添加支持該幣種 |
|
4166 |
商戶沒有配置套餐 |
|
4168 |
商戶地址達到上限 |
|
4045 |
幣種信息錯誤 |
|
-1 |
獲取地址失敗 |
1.3 調(diào)取示例
1.3.1 成功
{
"data":{
"coinType":520,
"address":"0xbe4e3699cb870bc95365fe04a187dd279a651a58"
},
"message":"SUCCESS",
"code":200
}
1.3.2 失敗
{
"code": "4101",
"message": "SIGN_MSG_ERROR"
}
2、發(fā)送提幣申請
2.1 場景說明
提幣申請
2.2 接口詳情
2.2.1 接口地址
|
接口詳情 |
|
|
URL |
【/mch/withdraw】 |
|
請求方式 |
POST |
2.2.2 參數(shù)
2.2.2.1 參數(shù)說明
|
參數(shù) |
類型 |
是否必填 |
說明 |
備注 |
|
timestamp |
String |
是 |
時間戳 |
見驗簽說明 |
|
nonce |
String |
是 |
隨機數(shù) |
見驗簽說明 |
|
sign |
String |
是 |
簽名 |
見驗簽說明 |
|
body |
String |
是 |
消息內(nèi)容 |
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參數(shù)字段
|
body參數(shù)名稱 |
是否必填 |
類型 |
說明 |
|
address |
是 |
String |
提幣地址 |
|
amount |
是 |
String |
提幣數(shù)量 |
|
merchantId |
是 |
String |
商戶號 |
|
mainCoinType |
是 |
String |
主幣種編號 (見附錄一) |
|
coinType |
是 |
String |
子幣種編號 (見附錄一) |
|
callUrl |
是 |
String |
回調(diào)地址,通過該callUrl告知您該筆提幣交易的狀態(tài),具體示例見交易回調(diào)接口 |
|
businessId |
是 |
String |
業(yè)務id,必須保證該字段在系統(tǒng)內(nèi)唯一,如果重復,則該筆審核錢包不會接收。 |
|
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 返回狀態(tài)碼表
|
code |
解釋 |
|
200 |
成功 |
|
4005 |
非法參數(shù) |
|
4598 |
傳入body中的list對象中的所有merchantId必須保持一致 |
|
4001 |
商戶不存在 |
|
4169 |
商戶已被禁用 |
|
4183 |
到賬地址異常 |
|
4193 |
EOS金額小數(shù)點后超過4位長度 |
|
4034 |
未找到該幣種信息 |
2.3.1 成功
{
"message":"SUCCESS",
"code":200
}
2.3.2 失敗
{
"code": "4101",
"message": "SIGN_MSG_ERROR"
}
3、代付
3.1 場景說明
代付,發(fā)送自動付款申請,未設置代付信息或代付失敗則進入審核狀態(tài)。
3.2 接口詳情
3.2.1 接口地址
|
接口詳情 |
|
|
URL |
【/mch/withdraw/proxypay】 |
|
請求方式 |
POST |
3.2.2 參數(shù)
3.2.2.1 參數(shù)說明
|
參數(shù) |
類型 |
是否必填 |
說明 |
備注 |
|
timestamp |
String |
是 |
時間戳 |
見驗簽說明 |
|
nonce |
String |
是 |
隨機數(shù) |
見驗簽說明 |
|
sign |
String |
是 |
簽名 |
見驗簽說明 |
|
body |
String |
是 |
消息內(nèi)容 |
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參數(shù)說明
|
body參數(shù)名稱 |
類型 |
是否必填 |
說明 |
|
merchantId |
String |
是 |
商戶號 |
|
address |
String |
是 |
提幣地址 |
|
mainCoinType |
String |
是 |
主幣種編號,見附錄一 |
|
coinType |
String |
是 |
子幣種編號,見附錄一 |
|
amount |
String |
是 |
交易數(shù)量 |
|
callUrl |
String |
是 |
回調(diào)地址,提幣(審核、交易)結(jié)果將通過該地址進行回調(diào),具體示例見交易回調(diào)接口 |
|
businessId |
String |
是 |
業(yè)務id,必須保證該字段在系統(tǒng)內(nèi)唯一,如果重復,則該筆提幣錢包將不會進行接收 |
|
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 返回狀態(tài)碼表
|
code |
解釋 |
|
200 |
成功 |
|
4005 |
非法參數(shù) |
|
4001 |
商戶不存在 |
|
4166 |
商戶沒有配置套餐 |
|
4169 |
商戶已被禁用 |
|
4612 |
簽名錯誤 |
|
4163 |
簽名信息錯誤 |
|
569 |
無效的地址 |
|
571 |
已存在審核記錄,將不再進行處理 |
|
581 |
非法提幣金額 |
|
554 |
商戶不支持該幣種 |
3.3 調(diào)取示例
3.3.1 成功
{
"message":"SUCCESS",
"code":200
}
3.3.2 失敗
{
"code": "4101",
"message": "SIGN_MSG_ERROR"
}
4、交易回調(diào)接口
4.1 場景說明
網(wǎng)關收到交易處理結(jié)果,調(diào)用商戶提供的回調(diào)接口,通知商戶具體變化信息。該接口網(wǎng)關發(fā)送給您指定的回調(diào)地址的內(nèi)容,處理您的業(yè)務信息。 分充值回調(diào)和提幣回調(diào),其中提幣最多會進行兩次回調(diào)(審核回調(diào)+交易結(jié)果回調(diào))
4.2 接口詳情
4.2.1 接口地址
|
接口詳情 |
|
|
URL |
|
|
請求方式 |
POST |
4.2.2 參數(shù)
4.2.2.1 參數(shù)說明
|
參數(shù) |
類型 |
是否必填 |
說明 |
備注 |
|
timestamp |
String |
是 |
時間戳 |
見驗簽說明 |
|
nonce |
String |
是 |
隨機數(shù) |
見驗簽說明 |
|
sign |
String |
是 |
簽名 |
見驗簽說明 |
|
body |
String |
是 |
消息內(nèi)容 |
JSON字符串,格式如下 |
{
"address":"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW",
"amount":"12345678",
"blockHigh":"102419",
"coinType":"206",
"decimals":"8",
"fee":"452000",
"mainCoinType":"206",
"status":3,
"tradeId":"20181024175416907",
"tradeType":1,
"txId":"31689c332536b56a2246347e206fbed2d04d461a3d668c4c1de32a75a8d436f0",
"businessId":"",// 提幣回調(diào)為提幣接口傳入的businessId,充幣無值
"memo":""
}
4.2.2.2 body參數(shù)說明
|
body參數(shù)名稱 |
類型 |
說明 |
|
address |
String |
地址 |
|
amount |
String |
交易數(shù)量,根據(jù)幣種精度獲取實際金額,實際金額=amount/pow(10,decimals),即實際金額等于amount除以10的decimals次方 |
|
fee |
String |
礦工費,根據(jù)幣種精度獲取實際金額,實際金額獲取同上 |
|
decimals |
String |
幣種精度 |
|
coinType |
String |
子幣種編號,見附錄一 |
|
mainCoinType |
String |
主幣種編號,見附錄一 |
|
businessId |
String |
業(yè)務編號,提幣回調(diào)時為提幣請求時傳入的,充幣回調(diào)無值 |
|
blockHigh |
String |
區(qū)塊高度 |
|
status |
Integer |
狀態(tài),見回調(diào)接口狀態(tài)說明 |
|
tradeId |
String |
交易流水號 |
|
tradeType |
Integer |
交易類型,見回調(diào)接口交易類型說明 |
|
txid |
String |
區(qū)塊鏈交易哈希 |
|
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 場景說明
校驗地址的合法性,添加地址、提幣申請等場景時可先校驗地址合法性,參看校驗規(guī)則
5.2 接口詳情
5.2.1 接口地址
|
接口詳情 |
|
|
URL |
【/mch/check/address】 |
|
請求方式 |
Post |
5.2.2 參數(shù)
5.2.2.1 參數(shù)說明
|
參數(shù) |
類型 |
是否必填 |
說明 |
備注 |
|
timestamp |
String |
是 |
時間戳 |
|
|
nonce |
String |
是 |
隨機數(shù) |
|
|
sign |
String |
是 |
簽名 |
|
|
body |
String |
是 |
消息內(nèi)容 |
JSON字符串,格式如下 |
{
"merchantId":200000,
"mainCoinType":"206",
"address":"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW"
}
5.2.2.2 body參數(shù)說明
|
body參數(shù)名稱 |
類型 |
是否必填 |
說明 |
|
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 返回狀態(tài)碼表
|
code |
解釋 |
|
200 |
成功 |
|
4005 |
非法參數(shù) |
|
4162 |
簽名錯誤 |
|
4165 |
地址不合法 |
5.3 調(diào)取示例
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 參數(shù)
6.2.2.1 參數(shù)說明
|
參數(shù) |
類型 |
是否必填 |
說明 |
|
timestamp |
String |
是 |
時間戳 |
|
nonce |
String |
是 |
隨機數(shù) |
|
sign |
String |
是 |
簽名 |
|
body |
String |
是 |
消息內(nèi)容 |
6.2.2.2 body參數(shù)說明
|
body參數(shù)名稱 |
類型 |
是否必填 |
說明 |
|
merchantId |
Long |
是 |
商戶號 |
|
showBalance |
Boolean |
是 |
是否查詢余額,false不獲取,true獲取 |
6.2.2.3 示例
{
"timestamp": 1535005047,
"nonce": 100000,
"sign": "e1bee3a417b9c606ba6cedda26db761a",
"body": "{"merchantId":"200032","showBalance":true}"
}
6.2.3 返回狀態(tài)碼表
|
狀態(tài)碼 |
解釋 |
|
200 |
成功 |
|
4005 |
body參數(shù)錯誤 |
6.3 調(diào)取示例
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"http:// 幣種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"http:// 幣種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 |
比特幣現(xiàn)金 |
8 |
|
61 |
61 |
ETC |
Ethereum Classic |
以太坊經(jīng)典 |
18 |
|
2 |
2 |
LTC |
LTC |
萊特幣 |
8 |
|
2301 |
2301 |
QTUM |
QTUM |
量子鏈幣 |
8 |
|
502 |
502 |
GCC |
GalaxyChain |
8 |
|
|
60 |
合約地址 |
eth代幣 |
eth代幣 |
根據(jù)代幣具體情況而定 |
|
|
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 |
回調(diào)接口狀態(tài)說明
|
狀態(tài) |
說明 |
|
0 |
待審核 |
|
1 |
審核成功 |
|
2 |
審核駁回 |
|
3 |
交易成功 |
|
4 |
交易失敗 |
回調(diào)接口交易類型說明
|
狀態(tài) |
說明 |
|
1 |
充幣回調(diào) |
|
2 |
提幣回調(diào) |
驗簽說明
為了保證商戶傳送到優(yōu)盾的參數(shù)信息不被惡意篡改,網(wǎng)關為商戶接口提供Md5加密摘要認證。商戶可用基礎加密參數(shù):時間戳、隨機數(shù)、簽名密鑰(商戶唯一的APIKEY)、請求明文參數(shù)按指定順序排列進行Md5加密,產(chǎn)生一個驗簽串sign,商戶請求網(wǎng)關接口時,帶上參數(shù)時間戳、隨機數(shù)、請求明文參數(shù)、sign作為參數(shù)。網(wǎng)關拿到相應的參數(shù)以同樣的方式進行簽名驗簽。同理,網(wǎng)關請求商戶也以同樣的方式進行身份驗證。
sign=md5(body + key + nonce + timestamp)
key為接口授權(quán)碼APIKEY,由網(wǎng)關分配給商戶,加密字段順序不能錯誤
幣種地址校驗規(guī)則
|
主幣種類型 |
幣種簡稱 |
幣種英文名稱 |
幣種中文名稱 |
地址前綴 |
地址長度限制區(qū)間 |
|
0 |
BTC |
Bitcoin |
比特幣 |
1或者3 |
[26,36] |
|
60 |
ETH |
Ethereum |
以太坊 |
0x |
[42] |
|
145 |
BCH |
Bitcoincash |
比特幣現(xiàn)金 |
1 |
[26,36] |
|
61 |
ETC |
EthereumClassic |
以太坊經(jīng)典 |
0x |
[42] |
|
2 |
LTC |
Litecoin |
萊特幣 |
L或者M |
[26,36] |
|
508 |
GX |
GX |
G |
[26,36] |
|
|
503 |
NBTC |
NBTC |
N |
不限制 |
|
|
99 |
STO |
STO |
證券型通證發(fā)行 |
S |
不限制 |
|
5 |
DASH |
DASH |
達世幣 |
X |
[26,36] |
|
2301 |
QTUM |
QTUM |
量子鏈幣 |
Q |
[26,36] |
|
133 |
ZEC |
ZCash |
大零幣 |
t1 |
不限制 |
|
144 |
XRP |
Ripple |
瑞波幣 |
r |
[34] |
綜上所述,交易所就成功對接了usdt錢包。不僅滿足了交易所轉(zhuǎn)賬、收款的基本需求,還可以實現(xiàn)交易所海量地址的歸集需求。
總結(jié)
以上是生活随笔為你收集整理的usdt钱包如何跟交易所对接?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是CPU平均负载
- 下一篇: 智课雅思词汇---二十四、形容词后缀-a