Przejdź do głównej zawartości

Błędy i rozwiązywanie problemów

Na tej stronie rozpoznasz błąd po kodzie i znajdziesz, co z nim zrobić.

Kody błędów SDK

Błędy rzucane przez SDK, result.error z tokenize() i zdarzenie error niosą stabilny code. Komunikaty są dla ludzi i mogą się zmieniać. Zawsze rozgałęziaj logikę po kodzie.

Rzucane błędy są instancjami SdkError (name === 'SdkError', code, message, opcjonalne cause). Ponieważ SDK może być wczytane na stronie dwukrotnie, sprawdzaj error.code (albo isSdkError(error) przy module ES), a nie instanceof.

KodŹródłoZnaczenie
INVALID_CONFIGkonstruktor, create(), mount(), metody portfeliNiepoprawne opcje: zły pointId, niewspierany typ elementu, element już zamontowany, brak danych płatności.
INSECURE_CONTEXTelements()Strona nie jest serwowana po HTTPS.
CONTAINER_NOT_FOUNDmount(), mount*Pay()Selektor nie pasuje do żadnego elementu.
NOT_MOUNTEDtokenize()Element karty nie jest zamontowany (albo został odmontowany w trakcie tokenizacji).
IN_PROGRESStokenize()Inna tokenizacja jest już w toku.
INVALID_CARDtokenize()Dane karty niekompletne lub niepoprawne. Pole pokazuje, które.
TIMEOUTtokenize(), portfelePole karty albo API Paymentic nie odpowiedziało w czasie.
API_ERRORtokenize(), portfelePaymentic odrzucił zapytanie. Komunikat wyjaśnia przyczynę.
NETWORK_ERRORportfeleBłąd sieci albo nie udało się wczytać skryptu portfela.
WALLET_UNAVAILABLErequest*Pay()Portfel niedostępny na tym urządzeniu lub dla tego punktu.
WALLET_FAILEDportfeleArkusz portfela zgłosił niepowodzenie.
MERCHANT_VALIDATION_FAILEDApple PayApple odrzucił sesję sprzedawcy. Zwykle niezweryfikowana domena.

Kody walidacji pól (INVALID_NUMBER, INVALID_EXPIRY, EXPIRED_CARD, INVALID_CVC) opisuje strona Karta (hosted fields).

Rozwiązywanie problemów

ObjawPrawdopodobna przyczynaRozwiązanie
elements() rzuca INSECURE_CONTEXTStrona serwowana po http://Serwuj po HTTPS (albo użyj localhost w developmencie).
Pole karty nie pojawia się, brak zdarzenia readyKontener ukryty przez display: none w chwili montowania albo CSP blokuje frame-srcMontuj w widocznym kontenerze; dopuść https://cards.paymentic.com w frame-src.
tokenize() zwraca TIMEOUTIframe zablokowany (CSP, rozszerzenie) albo sieć zawiesiła sięSprawdź konsolę przeglądarki oraz frame-src / connect-src.
tokenize() zwraca API_ERRORPunkt źle skonfigurowany, zapytanie ograniczone (throttling) albo awaria backenduPrzeczytaj error.message; ponów raz; skontaktuj się z supportem, podając PaymenticCard.VERSION i czas zdarzenia.
Przycisk portfela nie pokazuje się, reason: NOT_CONFIGUREDPortfel nie jest włączony dla punktuPoproś Paymentic o włączenie Google Pay / Apple Pay dla punktu.
reason: DEVICE_UNSUPPORTED na urządzeniu, które ma portfelGoogle Pay: brak karty spełniającej metody uwierzytelnienia punktu; Apple Pay: strona http:// albo niezweryfikowana domenaTestuj z odpowiednią kartą; zweryfikuj domenę.
Arkusz Apple Pay otwiera się i zamyka z MERCHANT_VALIDATION_FAILEDBrak lub niezweryfikowany plik powiązania domeny dla tej nazwy hostaHostuj plik pod /.well-known/… na każdej domenie i subdomenie; potwierdź z Paymentic.
Arkusz Apple Pay nie otwiera się z własnego przyciskuZapytanie sieciowe w handlerze kliknięcia zużyło gest użytkownikaWywołaj isApplePayAvailable() przy wczytaniu strony; handler kliknięcia trzymaj synchroniczny.
Payment API odrzuca tokenToken starszy niż 60 s, już wykorzystany albo wysłany dla innego punktuTokenizuj ponownie; wykorzystaj natychmiast; użyj tego samego pointId po obu stronach.
Pamięć rośnie w aplikacji SPAInstancja tworzona ponownie bez destroy()Wywołaj destroy() w hooku odmontowania.

Kontakt z supportem

Pisząc do supportu, podaj PaymenticCard.VERSION, otrzymany code, Point ID i przybliżony czas zdarzenia.

Co dalej