← 全部接入指南
接入指南 · API / 服務端 / 手機端

透過 MochiPay API 接入加密貨幣支付

從應用建立和查詢支付訂單。PHP Demo 1.2.0 支援 PHP 7.0–8.4,提供 order.php、callback.php、含兩種展示模式的 checkout.php、本地彈窗資源和英文 README。站內(預設)或 HPP 均使用同一支付訂單。

演示流程 · 示例配置 · 請用小額真實付款驗證自己的設定。

訂單、站內或 HPP 結賬、直接收款錢包與已驗證確認
付款流程示意圖,站內支付與 HPP 使用同一筆訂單,最終狀態由伺服器驗證。

檢視完整付款結果

圖文結賬確認流程,以及需要核對的訂單和錢包結果

此演示使用示例資料。請在自己的環境中用小額真實付款驗證這些結果;實際支付金額和確認要求由訂單決定。

01 · 準備 MochiPay 賬戶

  1. 建立賬戶 與 啟用訂閱.
  2. 開啟 錢包,選擇新增 HD 錢包 → 生成新錢包,私下備份助記詞並儲存,啟用測試使用的資產 / 網路。
  3. 在此處設定客戶能識別的顯示名稱 賬戶資料.
  4. 開啟 API 憑證 並複製 API Key 和已儲存的 API Secret。首次設定若未儲存金鑰,請重新生成並妥善儲存。重新生成現有金鑰會使使用舊金鑰的接入失效。

完成標準: 你的訂閱與收款錢包均有效,並已取得下方所需憑證。

檢視圖文賬戶設定 →

02 · 配置 PHP 示例

下載解壓 PHP Demo,將整個目錄(包括 portable/ 及二維碼許可證)上傳至 PHP 7.0–8.4 伺服器,需 cURL、JSON、會話、安全隨機數、私有可寫臨時儲存及 HTTPS。演示表單應作為受保護管理/測試工具;生產環境使用持久訂單資料庫。編輯 order.php 頂部配置。

開啟: 服務端 order.php 配置

設定填寫內容
MOCHIPAY_BASE_URLhttps://mochi.bz
MOCHIPAY_API_KEY你的商戶 API Key
MOCHIPAY_API_SECRET已儲存的 API Secret
MOCHIPAY_CHECKOUT_MODEON_SITE(預設)或 HPP
MOCHIPAY_DEMO_PUBLIC_URL完整 HTTPS 演示目錄 URL,在代理後部署時尤其重要
API / PHP 示例配置示意圖
配置示意圖,外觀因平臺版本而異;表格包含完整配置值。

附帶 PHP 演示使用 CURLOPT_SSL_VERIFYPEER => false 用於 cURL 請求。API 金鑰必須儲存在服務端配置中,不能放入瀏覽器 JavaScript。

完成標準: order.php 可以開啟,且沒有憑證或 cURL 配置錯誤。

選擇站內支付或 HPP

模式客戶體驗伺服器責任
站內支付(預設)在你自己的域名展示付款對話方塊,包含精確數量、地址、網路、二維碼及狀態。建立並儲存付款繫結,透過自己的後端查詢,只返回安全的付款展示資訊。
HPP跳轉到返回的 MochiPay payment_url。儲存相同訂單繫結,並透過伺服器間通訊驗證回撥 / 返回。

結賬模式是接入端的偏好設定,並非 API 欄位。兩種連結使用同一訂單,切換模式時不要建立新訂單。經典 SaaS 僅支援 HPP。

支援全部六種方式:USDT_TRC20、USDC_ERC20、BTC_BITCOIN、ETH_ERC20、SOL_SOLANA 和 TRX_TRON。唯一金額方向預設為 UP,也支援 DOWN。每種提供的方式都需啟用對應收款錢包。

03 · 下單並支付測試訂單

開啟 order.php,用唯一商戶訂單編號及已配置支付方式建立小額演示訂單。選擇 ON_SITE 或 HPP,開啟建立結果的對應連結。結果也提供嵌入商城結賬和 PHP HPP 跳轉連結,兩者由 checkout.php 實現並使用同一訂單。

  1. 核對所選幣種和網路,並支付付款頁顯示的準確金額。
  2. 傳送 付款頁上的精確金額 傳送至顯示的收款地址,不能取整或複用其他訂單地址。
  3. 等待所需鏈上確認,並等 MochiPay 訂單狀態變為 PAID.

商城/API 示例可用美元標價。MochiPay 在建立訂單時鎖定匯率,唯一金額調整可能改變最終應付金額。請以收銀臺顯示金額付款。

成功檢查: MochiPay 訂單顯示 PAID 且已記錄交易,僅開啟瀏覽器返回頁不構成付款證明。

04 · 驗證結果與錢包收款

從應用按系統 order_id 查詢訂單。僅當驗證查詢返回 PAID,且匹配已儲存系統 ID、商戶編號、原始金額/幣種、所選資產/網路、收款地址、準確應付及預期實收金額時接受付款。以原子且冪等的本地事務履約。callback.php 使用私有演示記錄示範通知及瀏覽器返回驗證,不執行履約;請以生產資料庫和履約事務替換臨時記錄及回撥 TODO。閱讀附帶 README。

核對付款交易、收款地址與 MochiPay 訂單,檢視收款錢包或區塊鏈瀏覽器。資金已在您的收款錢包中,無需申請平臺提現。

使用相容錢包轉移資金,並等待鏈上確認。 閱讀收款錢包管理指南 →

錢包恢復與精確金額

在創建訂單之前堅持嘗試。目前的 PHP 演示在建立訂單之前保存了 request_id 和確切的有效負載。逾時後沒有儲存系統 ID,重試相同的有效負載和 request_id;相反,會查詢已知的 order_id。商家訂單參考可能會重複;使用系統訂單 ID 或儲存的請求 ID 來識別付款。在 PHP 或 JavaScript 浮點轉換之前將十進位回應值保留為字串;準確顯示pay_amount。捆綁的二維碼僅對地址進行編碼,因此客戶必須輸入顯示的金額。

開發自己的 API 客戶端時

使用 X-Mochi-Key 與 X-Mochi-Signature。建立訂單對準確的 JSON 正文做 HMAC-SHA256 簽名,並使用 Base64 編碼。查詢訂單對去掉開頭問號的準確查詢字串簽名。簽名金鑰必須儲存在服務端。

測試未完成時

無法建立支付選項或訂單

檢查訂閱狀態、已啟用收款錢包、支付方式程式碼、憑據及訂單幣種匯率對。外掛還需確認測試使用的商城範圍及顧客已啟用該支付方式。

付款仍在等待中或金額不足

核對交易的資產、網路、地址和準確應付金額,並等待所需確認數。請勿僅憑截圖或瀏覽器返回將商城訂單標記為已付款。

MochiPay 已付款,但商城 / 應用狀態未更新

確認通知/回撥端點能透過 HTTPS 公開訪問,且未被身份驗證或防火牆攔截。確認接入能查詢 MochiPay 並檢查錯誤日誌。僅收款連結更新 MochiPay,不會更新外部商城。

可選的開單重試去重

原有接入無需傳入 request_id 即可繼續使用。若要在超時後複用同一支付訂單,可先將可選 request_id 加入 JSON 正文,再按原方式計算 HMAC 簽名。

{"merchant_order_id":"STORE-1001","amount":25,"currency":"USD","payment_method":"USDT_TRC20","request_id":"STORE-1001:create:v1"}

使用 1–64 個 ASCII 字母、數字、點、底線、冒號或連字號。一個金鑰屬於一個商家和一個請求負載。重試時重複使用相同的金鑰和負載;回應保留現有欄位並傳回目前狀態的原始訂單。密鑰將被保留,不會自動過期。對於每個新結帳,請使用新的 request_id。 merchant_order_id可以保持不變:123、124、124建立三個獨立的系統訂單。較早的未付款訂單不會阻止創建。只有重試相同請求才會重複使用其 request_id 和未更改的負載。 WEB82.6 通告 request-id-v1;查詢已儲存的 request_id 以解決不確定的回應。重複的商家參考不是恢復密鑰。在整合包之前部署WEB82.6或更高版本; WEB82.7新增HPP取消/返回。

HTTP 409 REQUEST_IN_PROGRESS:按 Retry-After 指示稍後重試相同請求。HTTP 409 REQUEST_ID_CONFLICT:相同請求號傳入了不同內容。不要為了繞過超時而生成新請求號。ON_SITE 和 HPP 都可繼續使用返回的支付欄位或 payment_url。

分享本指南

將此連結發給負責接入的人。