Rozwiązywanie problemów

Przewodnik rozwiązywania problemów z wersją internetową obejmuje problemy i pytania związane z tymi tematami:

Rejestracja i dostęp

W trakcie integracji możesz napotkać te błędy. Ta lista zawiera przydatne wskazówki dotyczące rozwiązywania problemów, które mogą się pojawić.

Ten sprzedawca nie ma włączonej usługi Google Pay
Google Pay API wymaga identyfikatora sprzedawcy Google w przypadku witryn, które konfigurują PaymentsClient dla środowiska PRODUCTION. merchantId Google jest powiązany z co najmniej jedną pełną i jednoznaczną domeną za pomocą Konsoli usług Google Pay i Portfela Google. Więcej informacji znajdziesz w szczegółach zwróconego błędu.
Ten sprzedawca nie zakończył rejestracji, aby korzystać z Google Pay API. Aby dokonać weryfikacji, otwórz konsolę (https://pay.google.com/business/console).
Nie udało Ci się zarejestrować witryn w Google Pay API. Zapoznaj się z artykułem Prośba o dostęp produkcyjny, aby zarejestrować się w Konsoli usług Google Pay i Portfela Google i poprosić o sprawdzenie wykorzystania Google Pay API na Twojej stronie.
Ten profil sprzedawcy nie ma dostępu do tej funkcji
Google nie skonfigurował Twojej witryny do korzystania z Google Pay API. Zapoznaj się z artykułem Prośba o dostęp produkcyjny, aby poprosić o sprawdzenie wykorzystania Google Pay API na Twojej stronie za pomocą Konsoli usług Google Pay i Portfela Google.
Ta integracja Google Pay API jest wyłączona. Aby uzyskać więcej informacji, skontaktuj się z nami (https://developers.google.com/pay/api/faq#how-to-get-support).
Skontaktuj się z nami, aby dowiedzieć się więcej o krokach, które musisz wykonać, aby ponownie włączyć Google Pay API na swoim koncie Google.
Twoja domena „example.com” nie jest zarejestrowana do korzystania z tego interfejsu API.
Domena, w której hostowana jest płatność, nie jest powiązana z merchantId , którego używasz. Sprawdź, czy parametr merchantId jest prawidłowy i czy domena jest zarejestrowana w Konsoli usług Google Pay i Portfela Google.
Interfejs Google Pay API powinien być wywoływany tylko w bezpiecznym kontekście.
Google Pay API można używać tylko w bezpiecznym kontekście w witrynach. Więcej informacji znajdziesz w artykule Bezpieczne konteksty.
Nie znaleziono żadnych kluczy dla tego profilu sprzedawcy.
Aby dokonać integracji DIRECTtokenizationSpecification type, musisz zarejestrować swój publiczny klucz szyfrowania w Google za pomocą Konsoli usług Google Pay i Portfela Google.

merchantId

Podczas integracji możesz napotkać te błędy związane z merchantId. Ta lista zawiera przydatne wskazówki dotyczące rozwiązywania problemów, które mogą się pojawić.

Musisz ustawić parametr merchantId.
Parametr merchantIdPaymentDataRequest musi mieć wartość podaną w Konsoli usług Google Pay i Portfela Google. Parametr merchantId jest wymagany tylko wtedy, gdy używasz parametru PaymentsClient skonfigurowanego dla środowiska PRODUCTION. Zapoznaj się z naszą listą kontrolną integracji, aby poprosić o sprawdzenie wykorzystania Google Pay API na Twojej stronie i uzyskać merchantId.
merchantId nie jest ciągiem znaków.
Parametr merchantId wewnątrz PaymentDataRequest musi zawsze być ciągiem znaków. Przed wywołaniem interfejsu API upewnij się, że typ używanego parametru merchantId to ciąg znaków.
merchantId nie jest zarejestrowany.
Parametr merchantIdPaymentDataRequest musi być udostępniony w Konsoli usług Google Pay i Portfela Google. Więcej informacji znajdziesz w sekcji Zgłaszanie prośby o dostęp produkcyjny.

Ważność bramy

W trakcie integracji możesz napotkać te błędy związane z ważnością bramy. Ta lista zawiera przydatne wskazówki dotyczące rozwiązywania problemów, które mogą się pojawić.

Nieznana brama „twojabrama”.
Parametr bramy podany w paymentMethodTokenizationParameters.parameters nie jest obecnie obsługiwany przez Google. Aby dowiedzieć się więcej o identyfikatorze bramy i powiązanych polach, takich jak gatewayMerchantId, skontaktuj się z dostawcą bramy.
Bramy „example” nie można używać w trybie produkcyjnym
Ta przykładowa wartość parametru bramy służy tylko do testowania i nie można jej używać, gdy PaymentsClient jest skonfigurowany w środowisku PRODUCTION. Skontaktuj się z dostawcą bramy, aby uzyskać więcej informacji o wartościach parametrów PaymentMethodTokenizationSpecification, które musisz skonfigurować przy korzystaniu z Google Pay API.

Ważność obiektu

W trakcie integracji możesz napotkać te błędy związane z ważnością obiektu. Ta lista zawiera przydatne wskazówki dotyczące rozwiązywania problemów, które mogą się pojawić.

PaymentDataRequest używany do obsługi Google Pay nie jest prawidłowym obiektem JSON
Parametr przekazywany do loadPaymentData musi być zawsze prawidłowym obiektem PaymentDataRequest.
Musisz ustawić transactionInfo.
Parametr transactionInfo wewnątrz PaymentDataRequest musi zawsze być prawidłowym obiektem TransactionInfo.

Sprzedawcy bezpośredni

W trakcie integracji możesz napotkać te błędy związane z bezpośrednimi sprzedawcami. Ta lista zawiera przydatne wskazówki dotyczące rozwiązywania problemów, które mogą się pojawić.

Weryfikacja podpisu
Jeżeli merchantId jest nieprawidłowy, możesz napotkać błąd weryfikacji podpisu. Może to mieć miejsce w środowisku TEST podczas korzystania z biblioteki Tink paymentmethodtoken. Aby tego uniknąć, podaj 12345678901234567890 jako YOUR_MERCHANT_ID w:
.recipientId("merchant:YOUR_MERCHANT_ID")
Nie można odszyfrować tokena
Jeśli do odszyfrowywania tokena używasz biblioteki Tink paymentmethodtoken, pamiętaj o tych kwestiach:
  • Sprawdź, czy środowisko, z którego pochodzi odpowiedź Google Pay API, odpowiada środowisku paymentmethodtoken Tink. Na przykład:
    • Jeśli odpowiedź Google Pay API została zwrócona przez środowisko TEST, Tink wskazuje, że odszyfrowywanie ma się odbywać w środowisku testowym.
  • Nie zmieniaj odpowiedzi z Google Pay API, dopóki nie zostanie przekazana do Tink. Sprawdź, czy przekazujesz cały token zwrócony w odpowiedzi z Google Pay API. Więcej informacji znajdziesz w tej uwadze:
  • Sprawdź, czy masz odpowiedni klucz prywatny powiązany z kluczem publicznym zarejestrowanym w Google.
Generowanie pary kluczy (publicznego i prywatnego) w systemie Windows
Jeśli korzystasz z systemu Windows i chcesz wykonać czynności opisane w sekcji Wykorzystanie OpenSSL do generowania pary kluczy (prywatnego i publicznego), zainstaluj na swoim urządzeniu kolekcję narzędzi Cygwin. Jest ona potrzebna do obsługi poleceń Linux.

Obiekty błędu

Obiekty błędu są obiektami zwracanymi przez odrzuconą obietnicę z metody JavaScript klienta.

PaymentsError
Ten obiekt zawiera szczegółowe informacje dotyczące błędów zwracanych przez metody JavaScript klienta. Błędy mogą nie być wyświetlane w oknie dialogowym skierowanym do użytkownika.
Właściwość Typ Opis
statusCode Ciąg znaków Krótki kod opisujący rodzaj błędu.
statusMessage Ciąg znaków Wiadomość widoczna dla programisty opisująca napotkany błąd i możliwe kroki, by go naprawić.
Typowe błędy
Ten obiekt wyświetla błędy, które możesz napotkać we wszystkich metodach JavaScript. Sprawdź, czy w konsoli programisty są dodatkowe komunikaty o błędach.
Kod stanu Opis
BUYER_ACCOUNT_ERROR Bieżący użytkownik Google nie może podać danych karty.
DEVELOPER_ERROR

Przekazany parametr jest nieprawidłowo sformatowany. We wszystkich skonfigurowanych środowiskach komunikat o błędzie może wyświetlić się w konsoli przeglądarki.

MERCHANT_ACCOUNT_ERROR

Witryna uzyskująca dostęp do Google Pay API nie ma odpowiednich uprawnień. Może to być spowodowane nieprawidłową konfiguracją lub niepoprawnym identyfikatorem sprzedawcy określonym w żądaniu. Więcej informacji znajdziesz w polu statusMessage. Jeśli nadal masz problemy, skontaktuj się z zespołem pomocy.

INTERNAL_ERROR Ogólny błąd serwera.

CardInfo

Czym jest funkcja CardInfo?
Google Pay informuje klientów, że przycisk płatności Google Pay działa jak karta, wyświetlając zarówno markę karty, jak i ostatnie 4 cyfry jej numeru.
Dlaczego funkcja CardInfo nie jest renderowana w mojej implementacji?

Aby funkcja CardInfo działała, musisz spełnić te warunki:

Dlaczego przycisk płatności Google Pay ładuje się w nieskończoność?
Nie usuwaj detektorów zdarzeń onLoad. Jeśli usuniesz onLoaddetektory zdarzeń, przycisk płatności Google Pay może ładować się w nieskończoność.
Dlaczego po kliknięciu przycisku płatności Google Pay nie pojawia się prośba o płatność?
Przypisz wywołanie zwrotne detektora zdarzeń do zdarzenia ButtonOptions.onClick.

OR_BIBED_15 błędu

W pewnym momencie integracji może wystąpić błąd OR_BIBED_15. Ta lista zawiera przydatne wskazówki, które pomogą Ci rozwiązać ten problem.

Praca z komponentami WebView
Postępuj zgodnie z przewodnikami dotyczącymi AndroidaiOS, aby mieć pewność, że integracja jest zgodna z widokami WebView.
Cross-Origin-Opener-Policy Nagłówek odpowiedzi HTTP
Jeśli nagłówek odpowiedzi HTTP Cross-Origin-Opener-Policy ma wartość same-origin, może to uniemożliwić przeglądarce otwarcie niezbędnego wyskakującego okienka, w którym użytkownicy mogą dokończyć transakcję. Aby zmniejszyć te problemy, spróbuj zmienić wartość nagłówka na same-origin-allow-popups.
Opóźnienia między kliknięciem użytkownika a wywołaniem funkcji loadPaymentData().
Jeśli po kliknięciu przycisku Google Pay (lub podobnego przycisku płatności) występuje opóźnienie przed wywołaniem loadPaymentData() (np. setTimeout(), dodatkowe wywołania sieciowe lub podobna długotrwała logika), może to spowodować uruchomienie mechanizmu blokowania wyskakujących okienek w przeglądarce. Zalecamy, aby nie ustawiać żadnych opóźnień między kliknięciem użytkownika a wywołaniem funkcji loadPaymentData().