PayPal 付款連結和按鈕的疑難排解提示
發生錯誤,按鈕未顯示在我的網站上。
- 確認網路連線是否正常。
- 前往你網站上的其他頁面,看看能否正常載入。
- 前往 PayPal 按鈕頁面並確認:
* 按鈕是否顯示在「已儲存的按鈕」部分。
* 選取「編輯」,並確定按鈕程式碼與你網站上相同。 - 在你的產品頁面(貼上按鈕程式碼的頁面)按一下右鍵,然後按一下「檢查」。前往「主控台」分頁(顯示在頂端)。你可能會看到 CSP 錯誤。如果你已部署內容安全政策,可能會看到以下 CSP 錯誤(CSP 錯誤範例):
- 拒絕載入腳本 ‘https://www.paypal.com/sdk/js**’,因為它違反了以下內容安全政策指令:"default-src 'self'"。請注意,'script-src-elem' 並沒有明確設定,因此 'default-src' 被用作 fallback。
- 拒絕連接到 'https://www.paypal.com/**',因為它違反了以下內容安全政策指令:"default-src 'self'"。請注意,'connect-src' 並沒有明確設定,因此 'default-src' 被用作 fallback。
- 拒絕執行行內腳本,因為它違反了下列內容安全政策指令: "script-src https://*.paypal.com". 需要 'unsafe-inline' 關鍵字、哈希值 ('sha256-WYDWDPwB8j2VePYrqy38aHPcJLsasO//lnXymmxscUk=') 或隨機數 ('nonce-...') 才能啟用行內執行。
- 拒絕載入圖像 'https://tracking.qa.paypal.com/webapps/tracking/ts?**',因為它違反了以下內容安全政策指令:"default-src 'self'"。請注意,'img-src' 並沒有明確設定,因此 'default-src' 被用作 fallback。
- 拒絕框架 'https://www.paypal.com/',因為它違反了以下內容安全政策指令:"default-src 'self'"。請注意,'frame-src' 並沒有明確設定,因此 'default-src' 被用作 fallback。
你可以嘗試新增以下內容來解決上述的錯誤:
選項 1 (HTML):如果你的 CSP 是以 HTML 檔設定,請使用以下代碼替換 CSP 代碼
<meta http-equiv="Content-Security-Policy" content="default-src 'self';
script-src 'unsafe-inline' https://*.paypal.com https://*.paypalobjects.com;
style-src 'unsafe-inline' https://*.paypal.com; connect-src
https://*.paypal.com; frame-src https://*.paypal.com; img-src
https://*.paypal.com https://*.paypalobjects.com">
選項 2(伺服器端):如果你的 CSP 是在伺服器端設定,請使用以下程式碼替換 CSP 程式碼
Content-Security-Policy: script-src 'unsafe-inline' https://*.paypal.com https://*.paypalobjects.com
Content-Security-Policy: style-src 'unsafe-inline' https://*.paypal.com
Content-Security-Policy: connect-src https://*.paypal.com
Content-Security-Policy: frame-src https://*.paypal.com
Content-Security-Policy: img-src https://*.paypal.com https://*.paypalobjects.com
如何更改產品名稱 / 價格 / 數量的版面配置 / 尺寸 / 色彩?
在 PayPal 網站上變更產品名稱 / 價格 / 數量的版面 / 尺寸 / 顏色的方法如下:
- 前往 PayPal 按鈕頁面。
- 按一下已儲存按鈕旁的「開啟」,然後選取「編輯」。
- 按一下「自訂按鈕」,並進行必要的變更。
我編輯了產品資訊(名稱、金額或其他任何內容);我是否需要
再重新複製 / 貼上按鈕程式碼?
不需要,我們會從 PayPal 伺服器取得所有資訊。變更一旦儲存到帳戶後,便無需更新網站上複製 / 貼上的按鈕 ID。
注意:如果變更了產品的貨幣代碼,就必須更新付款按鈕。
我在活動代碼中看到用戶 ID;這是為什麼呢?
客戶 ID 是你帳戶中的賣家客戶 ID。你不得編輯客戶 ID。請依照按鈕程式碼中的設定使用。
我新增了多個按鈕,但都沒有顯示在我的網頁上。
在以下情況下,同一網頁上的多個按鈕將無法運作:
- 如果在同一網頁上多次複製 / 貼上相同的按鈕 ID,只有第一個按鈕會顯示。同一個按鈕 ID 不能重複多次。
- 如果在同一網頁上複製 / 貼上不同的按鈕 ID 但幣別不同,則只有第一個按鈕會顯示。你不能在同一網頁上新增不同外幣的按鈕。
- 如果已複製 / 貼上不同的按鈕 ID,但系統載入速度緩慢,請確認具有用戶端 ID 的指令碼標籤只加了一次。指令碼如下所示:
<script src="https://www.paypal.com/sdk/js?client-id=XYZ&components=hosted-buttons&enable-funding=venmo¤cy=USD"></script>
我有 Premier PayPal 帳戶,但我看不到付款連結和按鈕
選項。
如何在 PayPal Sandbox 上測試此項體驗?
付款連結和按鈕可在 Sandbox 上進行測試。
我的客戶告訴我,他們看不到所有付款方式。
能否使用 PayPal、稍後付款和 Venmo 等付款方式取決於每位客戶所在的國家 / 地區。
信用卡 / 簽帳金融卡的內嵌擴充功能未完整顯示在我的
網站上。
請務必確認父容器的寬度和高度可容納內嵌擴充功能。請參閱你的託管平台文件或諮詢客戶支援,取得更多詳細資料。
付款連結和按鈕是否支援 IPN(立即付款通知)?
是。請依照以下步驟設定並啟用「立即付款通知」(IPN)。
在 PayPal 中找出 IPN 設定的方法如下:
- 前往你的帳戶設定。
- 依序選取「通知」和「立即付款通知」。
- 按一下「更新連結」。
以下是啟用 IPN 設定的方法:
處理伺服器程式碼中的 IPN:
存取 IPN 紀錄:
參考資料
確保在伺服器程式碼中使用正確的 IPN URL當系統將客戶傳送至重新導向的頁面時,PayPal 會提供哪些
交易相關資訊? 付款連結和按鈕是否支援付款資料傳輸?
支援哪些變數?
是,如同此處所述,我們確實支援付款資料傳輸變數。如果在設定付款連結和按鈕期間開啟了自動返回設定,你就會收到系統傳輸的付款資料。
如果賣家在按鈕程式碼或付款連結中手動新增區域設定,則付款連結和按鈕
是否支援該區域設定?
根據預設,客戶使用付款連結和按鈕時,按鈕程式碼和付款連結會根據客戶的瀏覽器偏好設定顯示。
賣家可以附加「locale.x=fr_FR and country.x=」作為查詢參數,就能僅覆寫付款連結和按鈕程式碼的預設設定。你可以在此處找到支援的區域設定代碼清單。我們將不會翻譯賣家在配置過程中輸入的任何文字。
範例:https://www.paypal.com/ncp/payment/F3YMU2ZGT49XX?locale.x=ja_JP&country.x=JP
範例:
<script src="……..¤cy=USD&locale.x=ja_JP&country.x=JP"></script>
是否可以隱藏來自付款連結和
按鈕程式碼的部分標籤?
我們瞭解你的網站可能有不同的視覺設定,但不建議隱藏我們提供的按鈕程式碼。
在網站上隱藏這些程式碼將不會改變交易處理方式。交易仍將使用你的代管按鈕 ID 設定。
如果使用的按鈕類型不需要客戶輸入內容,可以隱藏按鈕的特定或所有文字內容。例如,如果你的客戶需要選取數量或從列出多項商品的清單中選擇商品,而你隱藏了這些輸入元素,交易將會失敗。
以下舉例說明如何隱藏商品價格:
在按鈕程式碼下方加入以下指令碼,以實際的按鈕 ID 取代
<style>
#paypal-form-fields-container-{<HostedButton_ID>}
#price-label {
display: none !important;
}
}
</style>
- desc-label(用於產品名稱)
- price-label(用於價格)
如要隱藏多個文字內容,請使用分隔的 ID:
style> #paypal-container-
<style>
#paypal-container-<HostedButton_ID>
{
#paypal-form-fields-container-<HostedButton_ID>
{
display: none !important;
}
}
</style>
是否可以覆寫我的付款連結和按鈕,以使用「套用
根據設定計算的運費」嗎?
付款連結和按鈕不會套用帳戶設定中大量覆寫的運費資訊,亦即「運費設定」中的以下設定。
我變更了按鈕的幣別,但是更新未顯示在
網站上。
如果將按鈕貼到你的網站上後又變更了幣別,你需要在網站上重新複製 / 貼上按鈕程式碼。
當我選取「不要收集送貨地址」時,便無法選取「套用根據
設定計算的運費」和「套用根據設定計算的稅金」。設定的運費和稅金多寡,取決於客戶運送地點的郵遞區號和 / 或國家或地區。如果選取「不要收集送貨地址」,系統就不會提供客戶的送貨地址給你,這樣便無法根據設定計算運費和稅金。我們建議使用「運費」和「稅率」下拉式選單中的其他選項。
付款連結和按鈕是否支援 Webhook?
是。啟用 Webhook 的方法如下:
- 使用你的商店帳戶憑證登入開發人員控制面板。
- 切換至實際環境。
- 按一下「應用程式和憑證」。
- 向下捲動並選取「管理 Webhook」。
- 你現在可以為實際環境新增 Webhook URL。如果要為 Sandbox 新增 Webhook,請停留在此頁面,並在右上角將實際環境切換到 Sandbox。
- 新增 Webhook 回呼 URL,並選取所有事件或結帳 / 付款事件。PayPal 會在選取的事件發生時叫用該 URL,具體取決於呼叫 PayPal NVP/SOAP API 以獲取 Webhook 資訊時,是使用 NVP 還是 SOAP API 實作。
Webhook 回應範例:
"id": "WH-12D11567VE3425924-2G120938U32719946",
"event_version": "1.0",
"create_time": "2024-09-14T15:55:58.043Z",
"resource_type": "capture",
"resource_version": "2.0",
"event_type": "PAYMENT.CAPTURE.COMPLETED",
"summary": "Payment completed for $ 128.88 USD",
"resource": {
"supplementary_data": {
"related_ids": {
"order_id": "8LM68409BR5528307"
}
],
"id": "7KK30254642170736",
"status": "COMPLETED"