Skip to content

DDPay Notify

Description

本平台開放給 DDPay 呼叫的付款結果通知端點(webhook)。建立線上訂單時會將此網址提供給 DDPay,DDPay 於付款完成(或失敗)後會呼叫此端點;本平台收到後更新對應訂單的付款記錄,並回應 HTTP 200

若未收到通知,可改用 DDPay Get Order 主動查詢訂單狀態。

Resource

POST /v1/payment/ddpay/{company_id}/{shop_id}/notify

Authorization

呼叫方為 DDPay,非本平台一般 OAuth 2.0 用戶端。請求須帶下列 Header,後端以 HMAC-SHA256 驗證簽章是否相符,驗證失敗回應 HTTP 401

Header Description
X-DD-TS 請求時間戳(Unix timestamp),與伺服器時間差超過 5 分鐘視為無效
X-DD-Signature 以門市對應的 DDPay Client Secret 對請求內容計算之簽章

Path Parameters

Name Type Description
company_id string 公司代碼
shop_id string 門市代碼

Request Body Parameters(DDPay 發送的 Payload)

Name Type Description
success boolean 付款是否成功
ddpayOrderId string DDPay 訂單編號
merchantOrderId string 我方訂單編號
mode string 結帳模式:sdttpcpm
payment object|null 付款資訊,失敗時為 null
payment.amount number 實際付款金額(元)
payment.service string 付款服務,如 linepayjko;感應(TTP)不帶此值
payment.paidAt integer 付款完成時間(Unix timestamp)
payment.invoiceCarrier object|null 電子發票載具(被掃模式有綁載具時帶)
payment.meta object 金流額外資訊(信用卡交易含核准碼、卡號、卡別等)

Request Example — 線上付款完成(LINE Pay)

{
    "success": true,
    "ddpayOrderId": "250610154305QjDVpx",
    "merchantOrderId": "WG000012345",
    "mode": "sd",
    "payment": {
        "amount": 480,
        "service": "linepay",
        "paidAt": 1749560400,
        "invoiceCarrier": { "type": "3J0002", "no": "/ABC+123" },
        "meta": {}
    }
}

Request Example — 感應靠卡完成

{
    "success": true,
    "ddpayOrderId": "240618122023g4YprV",
    "merchantOrderId": "T000050001",
    "mode": "ttp",
    "payment": {
        "amount": 350,
        "paidAt": 1749560500,
        "meta": {
            "approvalCode": "240826211518lenLjx",
            "cardNo": "123456******1234",
            "cardType": "Visa"
        }
    }
}

Response

收到通知後回傳 HTTP 200 即可,無需 response body。

Error Response

HTTP Status Description
400 找不到對應訂單記錄
401 簽章驗證失敗或時間戳逾期