平台服務簡介

本文件旨在幫助您快速了解平台的代收代付服務,包含核心概念說明與完整的資金流程圖。

什麼是代收代付服務?

代收代付是一種資金管理服務,讓商戶可以:

平台為您解決什麼問題?

傳統方式的困擾 平台解決方案
需要自行管理區塊鏈錢包 平台自動生成和管理錢包
難以追蹤每筆交易 即時通知 + 完整交易紀錄
資金分散難以管理 一鍵歸集,資金集中管理
區塊鏈操作複雜 簡單 API,輕鬆串接

核心概念

用戶錢包

定義:平台為每位終端客戶自動生成的專屬收款地址。

用途:接收該客戶的所有付款。

簡單理解:就像為每位客戶開設一個「專屬收款帳戶」,客戶付款時轉入這個地址,平台就知道是哪位客戶付的款。

特點

商戶金庫

定義:商戶的資金集中管理帳戶。

用途

簡單理解:就像公司的「主帳戶」或「金庫」,所有資金最終都會集中到這裡,方便統一調度。

特點

代收流程

當客戶要付款給商戶時,資金的流動方式如下:

flowchart TD A["1 客戶發起付款"] --> B["2 轉帳到專屬的用戶錢包地址"] B --> C["3 區塊鏈網路確認交易"] C --> D["4 平台偵測到入帳"] D --> E["5 系統通知商戶:收款成功"] E --> F["6 資金暫存於用戶錢包,等待歸集"] style A fill:#e1f5fe style F fill:#c8e6c9

流程說明

步驟 說明
1 客戶決定付款(購買商品、儲值等)
2 客戶將資金轉入平台提供的專屬收款地址
3 區塊鏈網路處理並確認這筆交易(通常幾秒到幾分鐘)
4 平台持續監控區塊鏈,偵測到入帳後立即記錄
5 透過回調通知商戶系統,告知收款成功
6 資金暫時存放在用戶錢包中,商戶可隨時發起歸集

歸集流程

歸集是將分散在各用戶錢包的資金,統一收回到商戶金庫的過程。

flowchart TD A["1 商戶發起歸集"] --> B{"2 檢查用戶錢包餘額"} B -->|"餘額 >= 歸集門檻"| C["3 從金庫補充燃料費到用戶錢包"] B -->|"餘額 < 歸集門檻"| H["跳過此用戶"] C --> D["4 從用戶錢包轉帳到商戶金庫"] D --> E["5 區塊鏈網路確認交易"] E --> F["6 資金進入商戶金庫"] F --> G["7 歸集完成,資金可自由運用"] style A fill:#e1f5fe style G fill:#c8e6c9 style H fill:#ffecb3

流程說明

步驟 說明
1 商戶在後台發起「一鍵歸集」或透過 API 觸發
2 系統檢查每個用戶錢包的餘額是否達到歸集門檻
3 對於符合條件的錢包,系統自動從金庫補充燃料費
4 使用補充的燃料費,將資金從用戶錢包轉到金庫
5 區塊鏈網路確認這筆轉帳交易
6 交易成功後,資金正式進入商戶金庫
7 商戶可以自由使用金庫中的資金(代付、提現等)

代付流程

當商戶需要付款給客戶或外部地址時:

flowchart TD A["1 商戶發起代付請求"] --> B["2 指定收款地址和金額"] B --> C{"3 檢查金庫餘額"} C -->|"餘額足夠"| D["4 凍結對應金額"] C -->|"餘額不足"| H["代付失敗:餘額不足"] D --> E["5 從商戶金庫轉出"] E --> F["6 區塊鏈網路確認交易"] F --> G["7 通知商戶:代付成功"] style A fill:#e1f5fe style G fill:#c8e6c9 style H fill:#ffcdd2

流程說明

步驟 說明
1 商戶透過後台或 API 發起代付請求
2 指定要付款的目標地址和金額
3 系統檢查商戶金庫是否有足夠餘額
4 餘額足夠時,先凍結這筆金額(避免重複使用)
5 從商戶金庫發起區塊鏈轉帳
6 區塊鏈網路確認交易
7 交易成功後通知商戶,代付完成

整體資金流向

以下是代收代付服務的完整資金流向圖:

flowchart LR subgraph 客戶 Customer["客戶"] end subgraph 平台 UW["用戶錢包
(專屬收款地址)"] Vault["商戶金庫
(資金集中管理)"] end subgraph 外部 External["外部收款方
(提現/結算對象)"] end Customer -->|"① 代收
客戶付款"| UW UW -->|"② 歸集
資金回收"| Vault Vault -->|"③ 代付
對外付款"| External Vault -.->|"燃料費補充"| UW style Customer fill:#e3f2fd style UW fill:#fff3e0 style Vault fill:#e8f5e9 style External fill:#fce4ec

常見問題

Q1: 為什麼資金不直接進入商戶金庫?

A: 為每位客戶分配專屬收款地址有以下好處:
  • 自動對帳:透過地址即可識別是哪位客戶付款
  • 隱私保護:客戶之間不會看到彼此的交易
  • 彈性管理:可針對不同客戶設定不同的歸集策略

Q: 歸集與燃料費相關

詳細請參考核心概念中的燃料費說明。

Developer Documentation

API 參考與技術串接文件

簡介 & 串接須知

歡迎使用 Coin API v2。本 API 提供區塊鏈錢包管理、USDT 及多種代幣的充值與提現功能。

串接須知:
  • 請先聯繫客服取得 API Host 位置
  • 請於後台「商戶管理/金鑰管理」生成 商戶公鑰 (X-Api-Key)
  • 所有請求皆須包含簽名驗證。

參數簽名 (Authentication)

為確保資料安全,所有 API 請求 (Header) 必須包含 X-Api-Sign

加密步驟

  1. 將該次 Request 所有參數 (除了 sign) 依照鍵值 (Key) 由小到大排序 (ksort)。
  2. 將排序好的參數轉化成 JSON 字串 (去除斜線、不編碼 Unicode)。
  3. 使用 OpenSSL 將 JSON 字串做 AES-256-ECB 加密 (使用私鑰)。
  4. 將加密後的結果轉型成 Base64
  5. 最後將 Base64 字串使用 SHA256 算法做散列運算,取得最終 Sign。

PHP 範例代碼

/**
 * Signature.php
 * @param array $parameter 該次 request 帶入的參數
 * @return string
 */
public function encrypt(array $parameter): string
{
    // 1. 將參數依照 Key 由小到大排序
    ksort($parameter);

    // 2. 轉化成 JSON (去除斜線, 不編碼 Unicode)
    $json = json_encode($parameter, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

    // 3. AES-256-ECB 加密
    $crypt = openssl_encrypt($json, $this->cipher, $this->privateKey, OPENSSL_RAW_DATA);

    // 4. 轉型成 Base64
    $crypt = base64_encode($crypt);

    // 5. SHA256 散列
    $crypt = hash('sha256', $crypt);

    return $crypt;
}
        

取得代幣資訊

GET /api/v1/coin

Request Header

參數 必填 描述 範例
X-Api-Sign 參數簽名 9d60c87...
X-Api-Key 商戶公鑰 WOEk6ht...

Response

{
    "code": 200,
    "data": [
        {
            "name": "USDT_TRC20",
            "title": "Tether",
            "symbol": "USDT",
            "chain": "TRON",
            "fee": 0
        }
    ]
}
        

取得錢包地址

查詢特定用戶已存在的錢包地址。

GET /api/v1/wallet

Request Body

參數 必填 描述 備註
chains 所屬主網 (Array) 目前僅支援 ["TRON"]
identity 是* 平台用戶識別 ID identity 與 address 擇一必填
address 是* 用戶地址 identity 與 address 擇一必填

Response

{
    "code": 200,
    "data": [
        {
            "identity": "huge",
            "chain": "TRON",
            "address": "TYdsAewBvkgpUkSJ5wMTsoHEuh4KWVh5js"
        }
    ]
}
        

創建錢包地址

為用戶生成新的區塊鏈錢包地址。

POST /api/v1/wallet

Request Body

參數 必填 類型 描述
chains Array 所屬主網,例:["TRON"]
identity String 平台用戶識別 ID (必須唯一)

Response

{
    "code": 200,
    "data": [
        {
            "identity": "huge",
            "chain": "TRON",
            "address": "TYdsAewBvkgpUkSJ5wMTsoHEuh4KWVh5js"
        }
    ]
}
        

查詢錢包餘額

GET /api/v1/asset

Request Body

參數 必填 類型 描述
identity String 平台用戶識別 ID
coins Array 查詢代幣,例:["TRX", "USDT_TRC20"]

Response

{
    "code": 200,
    "data": {
        "identity": "user0001",
        "assets": [
            {
                "symbol": "USDT",
                "name": "USDT_TRC20",
                "qty": "1.22"
            }
        ]
    }
}
        

查詢用戶交易訂單

GET /api/v1/order

Request Body

參數 描述 備註
identity 平台用戶識別 ID
page 當前頁面 預設 1
per_page 每頁資料量 預設 200,最多 500
address 相關交易地址 查詢轉入/轉出地址
type 訂單類型 0:轉出, 1:轉入
order_no 商戶訂單號 Array
coins 交易代幣 Array
txid 交易哈希 Array
sid 系統交易編號 Array

Response Fields

創建用戶提現交易

POST /api/v1/order/withdraw

Request Body

參數 必填 描述 備註
coin 交易代幣 例:USDT_TRC20
order_no 商戶訂單號
from 轉出地址 必須是用戶地址
to 轉入地址
qty 轉移數量
balance_check 是否需要超額付款 0:不允許(預設), 1:允許(如派息)

商戶提現 (Merchant Withdraw)

將用戶錢包餘額轉至商戶錢包或是指定地址。

POST /api/v1/merchant/withdraw
若為指定地址須先申請,否則一律轉至後台商戶錢包。

Request Body

參數 必填 描述
coin 交易代幣 (如 USDT_TRC20)
merchant_take_id 收款單號 ID (系統用)

交易確認回調 (Callback)

當區塊鏈交易確認時,系統會發送 POST 請求至您設定的回調 URL。

處理須知:
  1. 必須先設定回調位置才會啟動。
  2. 接收成功後請返回 HTTP Status 200
  3. 驗簽:將除了 sign 以外的參數做再次散列運算,比對 sign 值。

Callback 參數

參數 描述
sid 系統訂單號
status 0:佇列, 1:交易中, 2:完成, 3:失敗
type 0:轉出, 1:轉入
txid 交易 Hash (上鏈後才有)
sign 交易簽名 (用於驗證)

JSON 範例

{
    "sid": "0162771607146764096",
    "status": "0",
    "type": "0",
    "coin": "USDT_TRC20",
    "txid": "0x1be0a0...",
    "qty": "842.86",
    "sign": "1bfcedf92d..."
}