歡迎
歡迎使用 CoinCoin 開發者文檔
CoinCoin 可使您方便、快捷的將加密貨幣支付繼承至您的業務中,您的客戶可以直接使用他們的設備/軟件向您付款。
同時,CoinCoin 提供全鏈路的解決方案,您不必存儲地址及任何敏感信息,CoinCoin 會代表您生成支付地址並持續檢測區塊鏈狀態,並通知您,您的客戶的支付狀態。
1. 加密貨幣特性
由於貨幣存在於區塊鍊網絡中,因此會為每訂單生成一個唯一的支付地址。這有助於我們將客戶與他們的付款情況聯繫起來,並及時通知您。
2. 訂單狀態
| 支付狀態 | 描述 |
|---|---|
| 收款中(0) | 在訂單有效期內,並且沒有足額收到您創建時期望的加密貨幣數量,會持續收款到訂單超時 |
| 結算中(2) | 1. 已經足額收到加密貨幣 2. 訂單超時且訂單內收到部份加密貨幣 |
| 已完成(1) | 結算完成的訂單 |
| 無效(-1) | 1. 已超時且沒有收到任何加密貨幣 2. 收到的加密貨幣無法覆蓋網絡費用的訂單 3. 其它無效情況 |
3. 結算中的訂單
所有有餘額的訂單,在超過訂單有效期或足額收到加密貨幣後,均會進行結算,結算完成後,會將加密貨幣轉移至您的平台錢包內。通常需要幾分鐘 - 幾小時。
開始
- API 服務器
API path :https://api.coin2.cc/v1 - 創建 API KEY
- Sign 簽名
- 創建訂單
- 等待通知
接口
請求驗證
1. 生成 APIKey
在對任何請求進行簽名之前,您必須通過網站創建一個 API Key。創建 API Key 後,請將如下信息保存在安全的地方:
- APIKey
- SecretKey
2. 發起請求
所有 REST 私有請求頭都必須包含以下內容:
CC-APP-ID字符串類型的APIKeyCC-TIMESPAN請求時的時間戳(13 位)CC-SIGN使用 HMAC_SHA1 生成的簽名。 (詳情參閱簽名)
所有請求都應該含有 application/json 類型內容,並且是有效的 JSON。
3. 簽名
CC-SIGN 由以下部分生成:hmac_sha1(”$CC-APP-ID:CC-TIMESPAN",”secret key”)
For example:
var crypto = require("crypto");const Encrypt = (str, method, key, result = "hex") => { var c = null; if (key) { c = crypto.createHmac(method, key); } else { c = crypto.createHash(method); } c.update(str); return c.digest(result);};const appKey = "asd";const appSecret = "qwe";const timespan = Date.now(); // timespan = 1672106570565const sign = Encrypt(`${appKey}:${timespan}`, "sha1", appSecret);const headers = { "cc-app-id": appKey, "cc-timespan": timespan, "cc-sign": sign, "content-type": "application/json",};創建請求
1. HTTPS
為了您的賬戶安全,請使用 HTTPS 協議。
2. 限制
公平起見,您每日可以請求 100,000 次 API,並且允許最大同時存在 500 個正在收款的訂單。
如果您需要更多,請聯繫我們 [email protected]。
收款
創建訂單
您必須在您操作其他 API 之前創建訂單。
請求
方法:POST
路徑:/order/create
參數:
| 參數 | 含義 |
|---|---|
| payment_id | 自定義訂單 ID(長度 8-32 位,僅允許包含數字、大小寫字母、下劃線) |
| price | 自定義支付金額(最小值 10) |
| expired | 自定義超時時間,默認為 6 小時(Int, 1-48) |
Request example:
POST /order/createbody{ "payment_id":"EX100100100", "price": 100, "expired": 12}響應
HTTP 狀態碼: 200
參數:
| 參數 | 含義 |
|---|---|
| payment_id | 訂單 ID |
| address | 收款地址 |
| amount | 收款金額 |
| create_time | 訂單創建時間戳 |
| expired_time | 訂單過期時間戳 |
| expired | 訂單過期時間(h) |
| network | 轉賬網絡 |
| coin | 加密貨幣 |
| state | 訂單狀態。 0:收款中;1:結算中;2:已完成; |
Response example:
{ "payment_id": "EX100100100", "address": "coincoinresponseexample", "amount": 100, "create_time": 1609434000000, "expired_time": 1609520400000, "expired": 8, "network": "tron", "coin": "usdt", "state": 0}您可以將返回的 ‘address’,發送給您的顧客進行收款,當收款完成時,我們會通知您創建的 webhook 地址。
當收到的金額少於 ‘amount’ 時,訂單將處於 ‘未足額收款’ 狀態,當收到的金額大於等於 ‘amount’ 時,訂單將被完成。
訂單的最大有效時間為 48 小時。
開發者 Webhook
請求
方法:POST
路徑:開發者創建的回調地址(webhook)
參數:
| 參數 | 含義 |
|---|---|
| payment | 訂單詳情 |
| payment.address | 創建訂單時創建的地址 |
| payment.amount | 用戶實際支付的金額 |
| payment.payment_id | 商戶訂單號 |
| collected | 已經收到的加密貨幣數量 |
| state | 訂單狀態 |
Request example:
{ "payment": { // 訂單內容 "address": "coincoinresponseexample", "payment_id": "merchant's order ID", "network": "tron", // tron ethereum "coin": "usdt", // usdt eth trx btc bnb "amount": 100.0 // 加密貨幣收款數量 }, "collected": { // 已收到加密貨幣數量,基礎邏輯為只看目標收款數量,只要不滿足訂單都將繼續 "usdt": 50 }, "state": 1}響應
HTTP 狀態碼: 必須響應 200 狀態碼
當您的客戶多次對一個地址進行付款時,我們會多次的通知您,直至訂單完成或訂單超時(最大 48 小時)。
