這篇完成:讓國外顧客在結帳頁用 PayPal 或國際信用卡付款。
兩者都以新台幣(TWD)收款,顧客付款時由 PayPal/Stripe 依顧客的幣別換匯。國內信用卡、ATM、超商代碼見 如何設定金流與發票;海外運費見 如何設定國際配送地區運費。
先選哪一個
| PayPal | Stripe(國際信用卡) | |
|---|---|---|
| 誰能申請 | 台灣公司或個人都能申請 PayPal 商家帳戶。 | 只限在 Stripe 支援國家登記的公司(例如美國、日本、新加坡、香港)。台灣公司目前無法申請。 |
| 顧客怎麼付 | 用 PayPal 帳戶餘額或綁定的信用卡。 | 直接輸入 Visa、Mastercard、AMEX 等信用卡,不需要帳戶。 |
| 結帳頁顯示 | PayPal | 國際信用卡 |
只有台灣公司時,請用 PayPal,或國內金流(綠界、藍新、PAYUNi)的信用卡。兩者可以同時開啟,結帳頁會各自出現一個選項。
前提
- 已開電商線上購買,且平台已開通國際線上金流。沒開通時金流分頁的 PayPal、Stripe 會顯示「平台未開通」,請聯繫平台。
- 金鑰、Secret 類欄位僅站長(擁有者)可編輯。 看不到欄位或無法儲存時,請用站長帳號。
- 已申請好 PayPal 商家帳戶或 Stripe 帳戶。不要把金鑰貼到聊天軟體或其他公開處。
路徑
電商 → 商店設定 → 金流 分頁(/admin/commerce/store)。
往下找到 PayPal(國際付款) 或 Stripe(國際信用卡) 卡片,設定完按底部儲存。
設定 PayPal
- 打開 PayPal(國際付款) 開關。
- 環境 先選 Sandbox(測試)。
- 到 PayPal Developer Dashboard → Apps & Credentials 建立 REST App,把 Client ID 與 Client Secret 貼到對應欄位。沙盒與正式環境的憑證不同。
- 按底部儲存。卡片上會出現 Webhook URL。
- 回到 PayPal App 的 Webhooks,新增這個網址,並訂閱卡片上列出的事件(Checkout order approved、Payment capture completed/pending/denied/declined/refunded)。
- 把 PayPal 顯示的 Webhook ID 貼回卡片,再儲存一次。
Client ID、Client Secret、Webhook ID 三項都填妥後,結帳頁才會出現 PayPal。
設定 Stripe
- 打開 Stripe(國際信用卡) 開關。卡片最上方的黃色提示會再提醒一次申請條件。
- 環境 先選 Sandbox(測試)。
- 到 Stripe Dashboard → Developers → API keys 複製 Secret key,貼到 Secret Key。測試環境的金鑰以
sk_test_開頭,正式環境以sk_live_開頭;也可以用權限受限的 Restricted key(rk_開頭)。 - 按底部儲存。卡片上會出現 Webhook URL。
- 到 Stripe Dashboard → Developers → Webhooks 新增端點,網址貼上這個 Webhook URL,並勾選卡片上列出的四個事件:
checkout.session.completed、checkout.session.async_payment_succeeded、checkout.session.async_payment_failed、refund.created。 - 在該端點頁面按 Reveal 取得 Signing secret(
whsec_開頭),貼到 Webhook Signing Secret,再儲存一次。
Secret Key 與 Webhook Signing Secret 都填妥、且金鑰和環境相符時,結帳頁才會出現「國際信用卡」。
儲存時系統會檢查:
- 金鑰和環境不符(例如環境選正式卻貼
sk_test_)時無法儲存。之後若要把環境改成正式,請同時換上sk_live_金鑰。 - Signing secret 不是
whsec_開頭時無法儲存。
顧客怎麼付款
- 顧客在結帳頁選 PayPal 或 國際信用卡,送出訂單。
- 頁面會導到 PayPal 或 Stripe 的付款頁。
- 付款完成後回到訂單完成頁,訂單變成已付款。
顧客若在付款頁按返回或關掉視窗,不會扣款,訂單會保持待付款。
測試(務必做)
- 兩者環境都先用 Sandbox。
- PayPal 用 PayPal 沙盒買家帳號付款;Stripe 用 Stripe 文件提供的測試卡號付款。
- 後台 訂單 應變為已付款,事件紀錄有付款成功。
- 確認無誤後,環境改 Production 並換上正式憑證(Stripe 的 Webhook 也要在正式環境另外新增一次,Signing secret 會不同),再下一筆小額真實單驗證。
退款
到 訂單 打開該筆訂單,用退款功能即可,可以全額或部分退款,也可以分多次退,合計不超過付款金額。退款會直接送到 PayPal/Stripe;信用卡退款通常要幾個工作天才會回到顧客帳上。
你在 PayPal 或 Stripe 後台自己退款時,訂單事件紀錄會多一筆「金流後台退款通知」,方便對帳。
不支援的情況
- POS 收銀的付款連結不會使用 PayPal 或 Stripe。
- 購物車有冷凍、冷藏商品時,只能用 PAYUNi 付款,不會出現 PayPal 或國際信用卡。
常見卡住
| 狀況 | 怎麼辦 |
|---|---|
| 結帳頁沒有 PayPal | 開關沒開、沒儲存,或 Client ID/Client Secret/Webhook ID 有缺。 |
| 結帳頁沒有國際信用卡 | 開關沒開、沒儲存、Signing secret 沒填,或金鑰和環境不符。 |
| 儲存時出現「Stripe Secret Key 與環境不符」 | 測試環境用 sk_test_/rk_test_,正式環境用 sk_live_/rk_live_。 |
| 付完款訂單一直待付款 | Webhook 沒新增、網址貼錯,或在測試環境建的 Webhook 卻用正式環境收款。 |
| 台灣公司想申請 Stripe | 目前無法申請。請改用 PayPal,或國內金流的信用卡。 |