網頁疑難排解指南涵蓋下列主題的問題和疑問。
註冊與存取權
整合過程中,您可能會遇到下列錯誤。如果發生這些錯誤,這份清單會提供實用的疑難排解建議。
- 這個商家未啟用 Google Pay
- 網站設定
PRODUCTION環境時,Google Pay API 需要 Google merchantId。PaymentsClientGooglemerchantId會透過 Google Pay 和錢包主控台,與一或多個完整網域建立關聯。如需更多資訊,請查看傳回的錯誤詳細資料。 - 這個商家尚未完成註冊,無法使用 Google Pay API。請前往控制台 (https://pay.google.com/business/console) 進行驗證。
- 您尚未完成 Google Pay API 網站註冊程序。請參閱「申請正式版存取權」,瞭解如何使用 Google Pay 和錢包主控台註冊,並將網站使用 Google Pay API 的方式送交審核。
- 這個商家檔案無法使用這項功能
- Google 尚未設定您的網站使用 Google Pay API。請參閱「申請正式版存取權」,透過 Google Pay 和錢包主控台,將您的網站使用 Google Pay API 的方式送交審核。
- 這項 Google Pay API 整合功能已停用,如需詳細資訊,請與我們聯絡 (https://developers.google.com/pay/api/faq#how-to-get-support)。 如要進一步瞭解重新啟用 Google 帳戶的 Google Pay API 必須完成哪些步驟,請
- 與我們聯絡。
- 您的網域「example.com」未註冊使用此 API
- 結帳網域與你使用的
merchantId沒有關聯。請確認merchantId參數正確無誤,且網域已透過 Google Pay 和錢包主控台註冊。 - 應在安全的環境中呼叫 Google Pay API!
- Google Pay API 只能在處於安全環境的網站中使用。詳情請參閱「安全環境」。
- 找不到這個商家資料的金鑰
- 如要完成
DIRECTtokenizationSpecificationtype的整合作業,請透過 Google Pay 和錢包主控台向 Google 註冊公開加密金鑰。
merchantId
整合過程中,您可能會遇到下列 merchantId 相關錯誤。如果發生這些錯誤,這份清單會提供實用的疑難排解建議。
- 必須設定 merchantId!
PaymentDataRequest內的merchantId參數必須設為透過 Google Pay 和錢包主控台提供的值。只有在使用為PRODUCTION環境設定的PaymentsClient時,才需要merchantId參數。請參閱我們的整合檢查清單,將您的網站使用 Google Pay API 的方式送交審核,並取得您的merchantId。- merchantId 不是字串
PaymentDataRequest中的merchantId參數一律為字串。呼叫 API 前,請確認使用的merchantId參數類型為字串。- 尚未註冊 merchantId。
PaymentDataRequest中的merchantId參數必須透過 Google Pay 和錢包主控台佈建。 詳情請參閱「申請正式版存取權」。
閘道有效性
在整合過程中,您可能會遇到下列與閘道有效性相關的錯誤。如果發生這些錯誤,這份清單會提供實用的疑難排解建議。
- 不明閘道「yourgateway」
- Google 目前不支援你在
paymentMethodTokenizationParameters.parameters中指定的閘道參數。如要進一步瞭解閘道 ID 和相關聯的欄位 (例如gatewayMerchantId),請與閘道聯絡。 - 閘道「範例」無法在正式上線模式中使用
- 範例閘道參數值僅用於測試的目的,無法用於針對
PRODUCTION環境設定的PaymentsClient。如要進一步瞭解您需要設定以用於 Google Pay API 的PaymentMethodTokenizationSpecification值,請聯絡您的閘道。
物件有效性
在整合過程中,您可能會遇到下列與物件有效性相關的錯誤。如果發生這些錯誤,這份清單會提供實用的疑難排解建議。
- Google Pay 的 PaymentDataRequest 不是有效的 JSON
- 提供給
loadPaymentData的參數一律必須是有效的PaymentDataRequest物件。 - 請務必設定 transactionInfo!
PaymentDataRequest中的transactionInfo參數必須一律為有效的TransactionInfo物件。
直接商家
在整合過程中,您可能會遇到下列與直接商家相關的錯誤。如果發生這些錯誤,這份清單會提供實用的疑難排解建議。
- 驗證簽章
- 如果
merchantId有誤,您可能會遇到簽名驗證錯誤。 當您在TEST環境中使用 Tink paymentmethodtoken 程式庫時,就可能會發生這種情況。如要避免發生這個問題,請將下列程式碼的 <您的商家 ID>YOUR_MERCHANT_ID 替換成12345678901234567890: .recipientId("merchant:YOUR_MERCHANT_ID")
- 無法解密代碼
- 如果您使用 Tink paymentmethodtoken 程式庫解密權杖,請注意下列事項:
- 確認 Google Pay API 回應環境與 Tink paymentmethodtoken 環境相對應。詳情請參閱以下示例:
- 如果 Google Pay API 回應是由
TEST環境傳回,則 Tink 會指向測試環境來進行解密。 - 在系統將 Google Pay API 回應傳送至 Tink 之前,請勿修改相關內容。另外,請一併確保您傳送的是 Google Pay API 回應所傳回的完整代碼。詳情請參閱以下附註:
- 確認您擁有的私密金鑰與您先前透過 Google 註冊的公開金鑰相關聯。
- 在 Windows 中產生公開和私密金鑰組
- 如果您使用 Windows 系統,並且希望根據「 使用 OpenSSL 產生私密與公開金鑰組」中提及的步驟操作,請確認您已經電腦上安裝 Cygwin,這樣您才能執行 Linux 指令。
錯誤物件
錯誤物件是來自用戶端 JavaScript 方法的遭拒 Promise 所傳回的物件。
- PaymentsError
- 這個物件包含有關用戶端 JavaScript 方法所傳回的錯誤詳細資料。這些錯誤可能不會顯示在向使用者顯示的對話方塊中。
| 屬性 | 類型 | 說明 |
|---|---|---|
statusCode |
字串 | 說明錯誤類型的短碼。 |
statusMessage |
字串 | 向開發人員顯示的訊息,其中說明遇到的錯誤和可能的修正步驟。 |
- 常見錯誤
- 這個物件顯示您可能會在所有 JavaScript 方法中遇到的錯誤。請務必查看 Google Play 管理中心,瞭解其他錯誤訊息。
- 什麼是 CardInfo 功能?
- Google Pay 會向消費者指出 Google Pay 付款按鈕連結了信用卡,並顯示信用卡組織和卡片末四碼。
- 為什麼我的實作項目沒有顯示 CardInfo 功能?
如要使用 CardInfo 功能,必須符合下列條件:
- 您必須實作
createButtonAPI。 - 您必須將
ButtonOptions.buttonType設為buy、long或pay。 - 使用者必須有可用的付款方式,如
CardParameters物件所定義。
- 您必須實作
- 為什麼 Google Pay 付款按鈕會無限期載入?
- 請勿移除
onLoad事件監聽器。如果移除onLoad事件監聽器,可能會導致 Google Pay 付款按鈕無限期載入。 - 為什麼點選 Google Pay 付款按鈕後,系統沒有顯示付款提示?
- 將事件監聽器回呼指派給
ButtonOptions.onClick事件。 - 使用 WebView
- 請按照 Android 和 iOS 的指南操作,確保整合項目與 WebView 相容。
Cross-Origin-Opener-PolicyHTTP 回應標頭- 如果
Cross-Origin-Opener-PolicyHTTP 回應標頭設為same-origin,瀏覽器可能無法開啟必要彈出式視窗,導致使用者無法完成交易。請嘗試將標頭值變更為same-origin-allow-popups,以減少這些問題。 - 使用者點選事件與呼叫
loadPaymentData()之間的時間差 -
如果點選 Google Pay 按鈕 (或類似的結帳按鈕) 後,到呼叫
loadPaymentData()前發生延遲 (例如:setTimeout()、額外的網路呼叫或類似的長時間執行邏輯),可能會觸發瀏覽器的彈出式視窗封鎖機制。 建議您不要在使用者點擊和loadPaymentData()呼叫之間設定延遲。
| 狀態碼 | 說明 |
|---|---|
BUYER_ACCOUNT_ERROR |
目前 Google 使用者無法提供付款資訊。 |
DEVELOPER_ERROR |
已傳送的參數格式不正確。 在所有設定的環境中,瀏覽器主控台都可能會顯示一則錯誤訊息。 |
MERCHANT_ACCOUNT_ERROR |
存取 Google Pay API 的網站沒有適當權限。這可能是因為設定不正確,或在要求中設定了錯誤的商家 ID。詳情請查看 |
INTERNAL_ERROR |
一般伺服器錯誤。 |
CardInfo
OR_BIBED_15 個錯誤
整合過程中,您可能會遇到 OR_BIBED_15 錯誤。如果發生這項錯誤,請參考這份清單中的疑難排解建議。