KukoPay 為 Xboard 提供支付插件。用戶在 Xboard 下單後會跳轉到 KukoPay 託管收銀台付款,付款成功後 KukoPay 通過簽名 Webhook 通知 Xboard 開通訂閲。
f74c533c6776f6ecf5429a3391fc43df71f9c1d62dfc9a9b985e75de0dc0af7b不想安裝插件?Xboard 自帶的「EPay」支付方式可以直接對接 KukoPay 的 易支付兼容接口。兩種方式都能用。插件走 KukoPay 原生 API,簽名更安全;易支付方式不用安裝任何東西。
下載後可以用 SHA-256 校驗文件完整性:
shasum -a 256 kukopay-xboard-*.zip準備工作
- 使用支持插件管理(後台有「插件管理」菜單)的 Xboard 版本。
- Xboard 站點需要能通過公網 HTTPS 訪問。插件會把 Xboard 自己的回調地址作為
notify_url傳給 KukoPay,只有 HTTPS 地址才會被使用。 - 一個 KukoPay 商戶賬號。沙箱測試不需要等資質審核;收真實款項需要 入駐審核 通過。
安裝與配置
上傳並啓用插件
在 Xboard 後台打開「插件管理」,上傳下載的 zip,然後安裝並啓用 KukoPay。
從 KukoPay 控制台取兩個值
| 需要的值 | 在哪裏拿 |
|---|---|
| API Key | 控制台左上角切換到用來接 Xboard 的應用,在「開發者 → API 密鑰」點「簽發新 Key」 |
| Webhook 簽名密鑰 | 同一頁面的「回調簽名密鑰」,還沒簽發就點「簽發」 |
建議為 Xboard 單獨創建一個應用:它的訂單、密鑰和回調都與你的其他業務分開,餘額仍在同一個賬戶裏。兩個值都分環境:先在 沙箱控制台 取 kuko_test_ 開頭的密鑰聯調;上線時再到正式環境控制台取 kuko_live_ 密鑰和正式環境的簽名密鑰。API Key 與簽名密鑰必須來自同一個環境,否則驗簽必然失敗。
在 Xboard 添加支付方式
在 Xboard 後台「支付配置」中添加支付方式,接口選擇 KukoPay,填寫:
| 字段 | 填什麼 |
|---|---|
| API Key | 上一步的 kuko_test_… 或 kuko_live_… |
| Webhook 簽名密鑰 | 與 API Key 同一環境的簽名密鑰 |
| 貨幣單位 | USD、HKD 或 CNY。正式環境只能用平台為你開通的幣種 |
| 匯率 | Xboard 標價 × 匯率 = 實際收款金額。站點標價幣種與收款幣種一致時填 1 |
| 收銀台語言 | zh 或 en,留空則跟隨買家瀏覽器 |
保存後,支付方式列表裏會顯示這個支付方式的通知地址,形如 https://你的站點/api/v1/guest/payment/notify/KukoPay/xxxxxxxx。
配置通知地址併發送測試回調
如果 Xboard 站點是 HTTPS,插件下單時會帶上這個通知地址,回調用應用的回調簽名密鑰簽名,不需要再配置端點。在沙箱控制台「開發者 → 沙箱聯調」裏選中這個應用,用「發送測試回調」發到上一步的通知地址:插件收到測試回調會直接返回成功,不會開通任何訂單;控制台顯示對方返回 2xx 就説明地址和簽名密鑰都對了。
如果站點不是 HTTPS,插件不會傳通知地址,正式環境下單會因為沒有地方接收回調而被拒絕。這時在「開發者 → Webhook」為這個應用添加一個端點,地址填上一步的通知地址,並把該端點的簽名密鑰(而不是應用的回調簽名密鑰)填進插件。
在沙箱跑通一筆
用 kuko_test_ 密鑰在 Xboard 前台下一個訂單,在收銀台使用測試卡 4242 4242 4242 4242(有效期填任意未來日期,安全碼填任意 3 位數字)付款,確認 Xboard 訂單變為已支付、訂閲已開通。更多測試卡見 沙箱測試。
切換到正式環境
入駐審核通過後,把支付方式裏的 API Key 和 Webhook 簽名密鑰換成同一個應用在正式環境的值;如果上一步用了端點,在正式環境同樣添加一個。
金額與幣種
Xboard 內部以「分」記金額,插件把它乘以匯率後四捨五入到整數,作為 KukoPay 訂單的 amount(最小貨幣單位)。例如 Xboard 標價 ¥30.00、收款幣種 USD、匯率 0.14,買家實際支付 3000 × 0.14 = 420,即 $4.20。
匯率是固定值,插件不會自動更新。匯率變化較大時請手動調整。
插件如何工作
- 下單:插件調用
POST /v1/orders,以 Xboard 的訂單號作為out_trade_no,並帶上Idempotency-Key。用戶重複點擊支付不會產生兩筆訂單。 - 有效期:Xboard 會自動取消創建超過 2 小時仍未支付的訂單。插件據此設置
expires_at,讓收銀台在 Xboard 訂單創建後 1 小時 50 分關閉,比 Xboard 取消訂單早 10 分鐘。這樣買家不會在訂單被取消之後還能付款。 - 回調:插件校驗
X-KukoPay-Signature,拒絕超過 5 分鐘的時間戳,簽名密鑰輪換期間新舊密鑰都能驗簽通過。只有payment.succeeded且訂單狀態為paid時才通知 Xboard 開通訂單;其他事件只確認收到。 - 排障:下單失敗時,插件會把 KukoPay 返回的
request_id寫進 Xboard 日誌。拿這個request_id到控制台「開發者 → 調用日誌」可以看到完整的請求和錯誤原因。
常見問題
付款成功了,但 Xboard 訂單沒有開通
到控制台「開發者 → Webhook」查看投遞記錄:
- 沒有投遞記錄:通知地址沒有配置,並且 Xboard 站點不是 HTTPS,所以插件沒有傳
notify_url。按上文配置通知地址。 - 對方返回 4xx / 5xx:最常見的是簽名密鑰填錯,或填了另一個環境的密鑰。用「發送測試回調」確認。
- 超時或連接失敗:檢查 Xboard 站點的防火牆、CDN 或 WAF 是否攔截了來自 KukoPay 的 POST 請求。
修好後可以在投遞記錄裏手動重投,不需要讓用戶重新付款。
下單時報「該商戶訂單號已有訂單」
同一個 Xboard 訂單第二次發起支付時,金額、幣種、標題或地址與第一次不同,最常見的原因是中途改了匯率或貨幣單位。讓用戶取消這筆訂單重新下單即可。
提示「訂單即將超時,請取消後重新下單」,或收銀台提示鏈接已過期
收銀台在 Xboard 訂單創建 1 小時 50 分後關閉(見上文「有效期」)。離關閉不到 5 分鐘時,插件不再發起支付。讓用戶取消這筆訂單、重新下單即可。
正式環境下單被拒絕
常見原因:賬戶尚未通過入駐審核;貨幣單位不是平台為你開通的幣種;Xboard 站點不是 HTTPS 且控制台沒有配置正式環境的通知地址。具體原因看 Xboard 日誌裏的錯誤信息,或拿 request_id 到調用日誌查詢。
升級插件
下載新版本 zip,在「插件管理」中再次上傳即可,Xboard 會按版本號覆蓋升級,已填寫的支付配置保持不變。
| 版本 | 日期 | 説明 |
|---|---|---|
| 1.1.0 | 2026-09-28 | 收銀台在 Xboard 自動取消訂單前 10 分鐘關閉,避免為已取消的訂單收款。1.0.0 用戶請升級 |
| 1.0.0 | 2026-09-28 | 首個版本:下單、託管收銀台、簽名回調 |