跳到主要内容

🌐 託管收銀台整合

整合 HaloPay 的託管收銀台。客戶將被重定向到由 HaloPay 託管的收銀台頁面。這是最簡單的整合方式,前端工作量極少。

📦 第 1 步:建立支付訂單

提交支付訂單並獲取支付地址

**POST** https://api.pay.halochat.io/api/entrust/pre-create

返回收款地址/QR code 及訂單資訊

Headers

名稱類型描述
X-Sign*StringhmacSHA256 (body (json string)+timestamp+appKey)。簽名指南
X-Timestamp*String時間戳(秒,10位數)。請求有效期為兩分鐘。
X-Appid*String商家唯一憑證。請在 AppManage 頁面 尋找。
content-type*Stringapplication/json

請求 Body

名稱類型必填描述
out_trade_noString商家系統中的訂單 ID。每筆訂單的唯一 ID
symbolString法幣符號
amountString金額(四捨五入到小數點後兩位)
nameString產品名稱
imageString產品圖片 URL
describeString產品描述
time_expireString過期時間(秒),0 表示預設
callback_urlString回調 URL

請求 Body 範例

{
"out_trade_no": "uz54NEW9TVhLSIDHUSYB4aEFupKoE7I8",
"symbol": "USD",
"amount": "15",
"name": "PRODUCT_NAME",
"image": "https://callback.com/logo.png",
"describe": "CHECKOUT_DESCRIPTION",
"time_expire": 1773750780,
"callback_url": "https://callback.com/"
}

回應 (成功 200)

Header

名稱必填類型描述
X-Appidh3j6k9m2n...YString商家唯一憑證。請在 AppManage 頁面 尋找。
X-Timestamp1677152490YString時間戳(秒,10位數)。請求有效期為兩分鐘。
X-Signe0b78d93...YStringhmacSHA256 (body (json string)+timestamp+appKey)。簽名指南

Body

{
"code": 0,
"msg": "success",
"data": {
"url": "https://checkout.pay.halochat.io/202603172021145994e1572e91672b34",
"time_expire": 1773750780,
"trade_no": "202603172021145994e1572e91672b34"
}
}

參數

名稱必填類型描述
code0trueInteger
messagesuccesstrueString
datatrueObject
data.urlhttps://checkout.pay.halochat.io/202603172021145994e1572e91672b34trueString用於支付的網頁地址
data.time_expire1773754032trueInteger支付截止時間
data.trade_no202603172021145994e1572e91672b34trueStringHaloPay 訂單 ID

回應 (失敗 200)

{
"code": 10003,
"msg": "Params Error: Invalid amount",
"data": null
}
名稱必填類型描述
code10003trueNumber
msgService error, please try againtrueString
datatrueObject
备注

作為安全措施,我們將對返回的資料進行簽名(且根據此規則,應僅對 { code: 0 } 進行簽名,但它會對返回的整個 body 進行簽名)。此外,它將在回應的 header 中返回 Appid、Sign 和 Timestamp。簽名方法為 hmacSHA256 (body (json string)+timestamp+appKey)。如果簽名驗證失敗,請謹慎使用該資料,因為這表明資料已被篡改。

提示

HTTP 的 body 是一個 json 字符串。請將 HTTP body 的內容加入簽名中。確保 body 內容與簽名內容一致。HaloPay 在收到請求後,將立即讀取 body 內容並驗證簽名。

第 2 步:配置 Webhook 以接收支付通知