優盾錢包API開發接口文檔

    以下為優盾的API接口文檔詳細說明,了解更多問題請參考 接入常見問題

    1、目錄

    1.1、生成地址

    1.2、提幣

    1.3、交易回調

    1.4、校驗地址合法性

    1.5、獲取商戶支持幣種信息

    1.6、校驗地址是否存在

    2、接口明細

    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",
         "mainCoinType":520,
         "callUrl":"http://localhost:8080/callBack"
        }
    ]
    1.2.2.2 body參數字段
    body參數名稱 類型 是否必填 說明
    merchantId String 商戶號
    mainCoinType Integer 主幣種編號,使用獲取商戶幣種信息接口
    callUrl String 回調地址,通過該接口創建的地址,以後關於該地址的充幣信息會通過您指定的回調地址通知您。具體示例見 交易回調接口
    walletId String 錢包編號,默認根據主錢包生成地址
    alias String 地址別名
    1.2.2.3 示例
    {
        "timestamp": 1535005047,
        "nonce": 10000,
        "sign": "a230def43c1a12b14393880a28d4e005",
        "body": "[{\"merchantId\":\"300015\",\"mainCoinType\":520,\"callUrl\":\"http://localhost:8080/callBack\"}]"}
    1.2.3 返回狀態碼表
    code 解釋
    -1 生成地址失敗
    200 生成地址成功
    4001 商户不存在
    4005 非法參數
    4045 幣種信息錯誤
    4162 簽名異常
    4163 簽名錯誤
    4166 商戶沒有配置套餐
    4168 商戶地址達到上限
    4169 商戶已禁用
    4175 錢包編號錯誤
    4017 商戶沒有創建錢包
    4176 錢包未添加支持該幣種
    4188 暫不支持
    4226 商戶普通賬戶被禁用
    4261 商戶管理員賬戶被禁用
    4262 賬戶不存在

    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 業務編號,必須保證該字段在系統內唯一,如果重復,則該筆提幣錢包將不會進行接收
    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 提幣成功
    523 參數為空
    581 無效的提幣金額
    4005 非法參數
    4014 幣種為空
    4034 未找到該幣種信息
    4162 簽名異常
    4163 簽名錯誤
    4169 商戶已被禁用
    4183 到賬地址異常
    4193 EOS金額小數點後超過4位長度
    4214 暫無可用的幣種
    4226 商戶普通賬戶被禁用
    4261 商戶管理員賬戶被禁用
    4284 商户不存在
    4288 業務編號(BusinessId)重復,請勿重復申請
    4598 傳入body中的list對象中的所有merchantId必須保持一致
    4001 商户不存在
    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 由生成地址接口或提幣接口提供的callUrl
    請求方式 POST / Form
    3.2.2 參數
    3.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":""
    }
    3.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種類型幣的充提幣可能有值
    3.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\"}"

    4、校驗地址合法性

    4.1 場景說明

    校驗地址的合法性,添加地址、提幣申請等場景時可先校驗地址合法性,參看 校驗規則

    4.2 接口詳情

    4.2.1 接口地址
    接口詳情
    URL 【/mch/check/address】
    請求方式 Post
    4.2.2 參數
    4.2.2.1 參數說明
    參數 類型 是否必填 說明 備註
    timestamp String 時間戳
    nonce String 隨機數
    sign String 簽名
    body String 消息內容 json數組字符串,格式如下
    [
    {
        "merchantId":200000,
        "mainCoinType":"206",
        "address":"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW"
    }
    ]
    4.2.2.2 body參數說明
    body參數名稱 類型 是否必填 說明
    merchantId Long 商戶號
    mainCoinType String 主幣種編號,使用獲取商戶幣種信息接口
    address String 需校驗的地址
    4.2.2.3 示例
    {
        "timestamp": 1535005047,
        "nonce": 100000,
        "sign": "e1bee3a417b9c606ba6cedda26db761a",
        "body": "[{\"merchantId\":200000,\"mainCoinType\":\"206\",\"address\":\"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW\"}]"
    }
    4.2.3 返回狀態碼表
    code 解釋
    200 成功
    4005 非法參數
    4162 簽名異常
    4163 簽名錯誤
    4165 非法地址

    4.3 調取示例

    4.3.1 成功
    {
        "code":200,
        "message":"SUCCESS"
    }
    4.3.2 失敗
    {
        "code":4005,
        "message":"PARAM_ERROR"
    }

    5、獲取商戶支持的幣種信息

    5.1 場景說明

    獲取商戶支持的幣種,以及余額

    5.2 接口詳情

    5.2.1 接口地址
    接口詳情
    URL 【/mch/support-coins】
    請求方式 POST
    5.2.2 參數
    5.2.2.1 參數說明
    參數 類型 是否必填 說明
    timestamp String 時間戳
    nonce String 隨機數
    sign String 簽名
    body String 消息內容
    5.2.2.2 body參數說明
    body參數名稱 類型 是否必填 說明
    merchantId Long 商戶號
    showBalance Boolean 是否查詢余額,false不獲取,true獲取
    5.2.2.3 示例
    {
        "timestamp": 1535005047,
        "nonce": 100000,
        "sign": "e1bee3a417b9c606ba6cedda26db761a",
        "body": "{\"merchantId\":\"200032\",\"showBalance\":true}"
    }
    5.2.3 返回狀態碼表
    狀態碼 解釋
    -1 查詢失敗
    200 查詢成功
    4005 非法參數

    5.3 調取示例

    5.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":"" // 幣種log地址
            },
            {
                "name": "ETH", // 幣種別名
                "coinName":"Ethereum", // 幣種全稱
                "symbol":"ETH", // 幣種單位
                "mainCoinType":"60", //主幣種類型
                "coinType":"60", // 幣種類型
                "decimals":"18", // 幣種精度
                "tokenStatus":"0", // 0: 主幣 1:代幣
                "mainSymbol":"ETH", //主幣種單位
                "balance":"0", // 幣種余額 
                "logo":"" // 幣種log地址
            }
        ]
    }
    5.3.2 失敗
    {
        "code":4005,
        "message":"BGS_ILLEGAL_PARAMETER"
    }

    6、校驗地址是否存在

    6.1 場景說明

    校驗地址是否為該商戶生成的地址,請求參數及返回結果類型同校驗地址合法性接口類似

    6.2 接口詳情

    6.2.1 接口地址
    接口詳情
    URL 【/mch/exist/address】
    請求方式 Post
    6.2.2 參數
    6.2.2.1 參數說明
    參數 類型 是否必填 說明 備註
    timestamp String 時間戳
    nonce String 隨機數
    sign String 簽名
    body String 消息內容 json數組字符串,格式如下
    [
    {
        "merchantId":200000,
        "mainCoinType":"206",
        "address":"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW"
    }
    ]
    6.2.2.2 body參數說明
    body參數名稱 類型 是否必填 說明
    merchantId Long 商戶號
    mainCoinType String 主幣種編號,使用獲取商戶幣種信息接口
    address String 需校驗的地址
    6.2.2.2 示例
    {
        "timestamp": 1535005047,
        "nonce": 100000,
        "sign": "e1bee3a417b9c606ba6cedda26db761a",
        "body": "[{\"merchantId\":200000,\"mainCoinType\":\"206\",\"address\":\"DJY781Z8qbuJeuA7C3McYivbX8kmAUXPsW\"}]"
    }
    6.2.3 返回狀態碼表
    code 解釋
    200 成功
    523 非法參數
    4162 簽名異常
    4163 簽名錯誤
    4165 非法地址
    4316 參數異常

    6.3 調取示例

    6.3.1 成功
    {
        "code":200,
        "message":"SUCCESS"
    }
    6.3.2 失敗
    {
        "code":4165,
        "message":"ILLEGAL_ADDRESS"
    }

    回調接口狀態說明

    狀態 說明
    0 待審核
    1 審核成功
    2 審核駁回
    3 交易成功
    4 交易失敗

    回調接口交易類型說明

    狀態 說明
    1 充幣回調
    2 提幣回調

    驗簽說明

    為了保證商戶傳送到優盾的參數信息不被惡意篡改, 網關為商戶接口提供Md5加密摘要認證。 商戶可用基礎加密參數: 時間戳、 隨機數、 簽名密鑰、 請求明文參數按指定順序排列進行Md5加密並轉化成小寫, 產生一個驗簽串sign, 商戶請求網關接口時, 帶上參數時間戳、 隨機數、 請求明文參數、 sign作為參數。 網關拿到相應的參數以同樣的方式進行簽名驗簽。 同理, 網關請求商戶也以同樣的方式進行身份驗證。

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

    key為簽名密鑰,由網關分配給商戶,加密字段順序不能錯誤

    幣種地址校驗規則

    主幣種類型 幣種簡稱 幣種英文名稱 幣種中文名稱 地址前綴 地址長度限製區間
    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]
    5 DASH DASH 達世幣 X [26,36]
    2301 QTUM QTUM 量子鏈幣 Q [26,36]
    133 ZEC ZCash 大零幣 t1 不限製
    144 XRP Ripple 瑞波幣 r [34]
    2303 VDS Vollar Vollar V

    在線客服

    申請試用

    申請試用

    設置