Karta odrzucona lub płatność nieudana przy checkout w Whizi

Krótka odpowiedź

Jeśli twoja karta została naprawdę odrzucona przy płatności w Whizi, odmowa pochodziła od twojego banku za pośrednictwem Stripe, a nie od Whizi, więc rozwiązaniem jest inna karta albo kontakt z bankiem. Whizi nie ma nigdzie komunikatu o odrzuceniu karty, więc jeśli błąd jest sformułowany w stylu Whizi, to nie była to odmowa płatności.

Krótka odpowiedź

Jeśli twoja karta została naprawdę odrzucona, odmowa pochodziła od twojego banku za pośrednictwem Stripe, a nie od Whizi, więc rozwiązaniem jest inna karta albo kontakt z bankiem. Dlaczego banki blokują płatności za subskrypcje AI i jak rozpoznać, która z sześciu przyczyn cię dotknęła, znajdziesz w tekście płacenie za AI, gdy twoja karta jest odrzucana. Whizi nie ma nigdzie komunikatu o odrzuceniu karty. Dane karty wpisuje się na hostowanej stronie płatności Stripe, która znajduje się poza kodem Whizi, a moduł obsługi webhooka Stripe w Whizi nie ma żadnego komunikatu o odrzuceniu płatności do pokazania.

Jeśli więc zobaczyłeś błąd sformułowany w stylu Whizi, to nie była to odmowa. Był to jeden z poniższych komunikatów, a każdy z nich ma inną przyczynę i inne rozwiązanie.

Trzy, które najłatwiej pomylić z odmową:

Co widziszCo to znaczyCo zrobić
A $1 intro trial has already been used with this payment method.Ta karta już skorzystała z okresu próbnegoZapisz się w normalnej cenie albo użyj karty, która z niego nie skorzystała. Ponowna próba nic nie zmieni
Pricing is temporarily unavailable.Whizi nie mogło odczytać tabeli cen ze StripePoczekaj i spróbuj ponownie później. Nic po twojej stronie tego nie naprawi
Failed to create Stripe checkout session.Wywołanie checkout nie powiodło się, a backend nie podał komunikatuSpróbuj ponownie raz. Jeśli się powtarza, skontaktuj się z pomocą techniczną

Każdy błąd, który zwraca backend Whizi przy checkout

Te błędy pochodzą z serwera, więc pojawiają się razem ze statusem HTTP i kodem błędu, który dział pomocy może dopasować w śladzie sieciowym. Każde ciało błędu backendu to JSON w postaci {"error": {"code": "...", "message": "..."}}, więc kod znajduje się obok komunikatu. Poniższe wiersze są uporządkowane według statusu HTTP.

KomunikatHTTPKodKiedy występuje
A plan and billing cycle are required.400invalid_checkout_requestNie udało się przetworzyć treści żądania checkout
Invalid plan or billing cycle.400invalid_plan_or_cyclePlan lub cykl rozliczeniowy nie odpowiada żadnej znanej cenie w Stripe
No subscription item found for the active subscription.400subscription_item_missingZmiana planu w miejscu została wykonana na subskrypcji bez pozycji
The supplied discount must be an active 100% promotion code or coupon ID.400invalid_discountPodany kod nie jest aktywnym kodem promocyjnym ani ID kuponu na 100 procent
Temporary email addresses are not allowed. Please use a permanent email address.400disposable_email_blockedAdres e-mail zalogowanego konta znajduje się na liście domen jednorazowych
A $1 intro trial has already been used with this payment method.403duplicate_trial_payment_methodOdcisk karty już skorzystał z okresu próbnego
User not found.404not_foundTrasa checkout nie mogła odczytać twojego wiersza użytkownika
Pricing is temporarily unavailable.503pricing_unavailableNie udało się odczytać zlokalizowanej tabeli cen ze Stripe

Co zrobić z każdym z nich. Odmowa okresu próbnego ma swoją własną sekcję poniżej. Pricing is temporarily unavailable. jest po stronie serwera: HTTP 503, zwracany, gdy nie można odczytać zlokalizowanej tabeli cen ze Stripe, i nie ma żadnego ustawienia na twoim koncie, które by to zmieniło. Failed to create Stripe checkout session. w ogóle nie jest komunikatem serwera, dlatego nie podaje żadnej przyczyny: to własny tekst zastępczy strony, pokazywany, gdy wywołanie checkout się nie powiedzie, a backend nie dostarczy komunikatu. Oba przypadki oznaczają: poczekaj i spróbuj ponownie.

A plan and billing cycle are required. oraz Invalid plan or billing cycle. oznaczają, że żądanie nie zawierało planu rozpoznawanego przez serwer, więc zacznij od nowa od strony z cennikiem i wybierz tam plan oraz przełącznik miesięczny lub roczny, zamiast ponownie używać starego lub zmodyfikowanego linku checkout.

User not found. oznacza, że twoja sesja wskazuje na wiersz użytkownika, którego serwer nie może odczytać. Wyloguj się, zaloguj ponownie, a następnie zacznij checkout od nowa.

No subscription item found for the active subscription. pojawia się podczas zmiany planu, a nie pierwszego zakupu, i nie da się tego naprawić z poziomu interfejsu. Skontaktuj się z pomocą techniczną.

Błędy, które strona pokazuje zanim checkout w ogóle się otworzy

Te błędy pochodzą z przeglądarki, nie z serwera, więc nie mają kodu HTTP. Wszystkie oznaczają w gruncie rzeczy to samo: coś nie powiodło się, gdy Whizi przygotowywało twoje konto do przekazania do Stripe, więc żadne obciążenie nigdy nie zostało nawet podjęte.

KomunikatKiedy występuje
Failed to create Stripe checkout session.Wywołanie checkout nie powiodło się, a backend nie podał komunikatu
Could not open checkout. Please try again.Wywołanie checkout w oknie modalnym ulepszenia zgłosiło błąd bez komunikatu
Authentication failed. Please sign in again.Pobranie tokenu nie zwróciło niczego przed checkout
Failed to save user before checkout.Wywołanie zapisu użytkownika przed checkout nie zwróciło OK
Could not prepare your account for checkout.Strona z cennikiem nie mogła zapisać użytkownika przed checkout
Missing user or Stripe customer details.ID użytkownika było nieobecne w momencie checkout
Checkout response did not include a Stripe URL.Checkout się powiódł, ale nie zwrócił ani URL, ani ID subskrypcji
Something went wrong while starting your trial. Please try again.Ogólny błąd rozpoczęcia okresu próbnego na stronie z cennikiem

W przypadku czegokolwiek z tej listy wyloguj się, zaloguj ponownie i zacznij checkout od nowa ze strony z cennikiem. To usuwa przypadki, w których pobranie tokenu nie zwróciło niczego przed checkout, co właśnie zgłasza Authentication failed. Please sign in again.

Checkout response did not include a Stripe URL. to wyjątek: oznacza, że wywołanie się powiodło. Zanim spróbujesz zapłacić ponownie, otwórz ustawienia konta i sprawdź, czy subskrypcja już tam jest.

Dwa kolejne pojawiają się na stronach logowania i rejestracji, gdy najpierw wybierzesz plan, a potem się uwierzytelnisz: Signed in, but checkout could not start. Please choose your plan again. oraz Your account was created, but checkout could not start. Please sign in and choose your plan again. Oba oznaczają, że część kontowa zadziałała i zawiodło tylko przekazanie. Twoje konto istnieje. Przejdź do cennika i wybierz plan ponownie.

Jeszcze jedna przyczyna tajemniczej awarii: wielokrotne ponawianie checkout pod rząd może uruchomić ogranicznik liczby żądań, który zwraca HTTP 429 i Too many requests. Please wait and try again. Każde żądanie na koncie, niezależnie od trasy, liczy się do limitu 30 na minutę. Poczekaj minutę, zamiast klikać ponownie.

Odmowa okresu próbnego, której nie usunie żadna ponowna próba

A $1 intro trial has already been used with this payment method. to HTTP 403 z kodem duplicate_trial_payment_method. To jedyny błąd checkout na tej stronie, którego żadna ponowna próba nigdy nie usunie.

Sprawdzenie jest przypisane do karty, a nie do konta: odmowa jest zwracana, gdy odcisk karty już skorzystał z okresu próbnego.

Jedna uwaga, jeśli szukasz tego błędu: ten napis rzeczywiście mówi „$1”, mimo że sama opłata za okres próbny wynosi $0.99 w USD. Dopasuj go po treści, ponieważ forma „$1” to dokładnie to, co wysyła serwer.

Twoje dwie opcje: zapisz się w standardowej cenie planu, który chcesz, albo zapłać metodą płatności, która wcześniej nie skorzystała z okresu próbnego.

Ceny planów, warunki okresu próbnego i to, co dzieje się przy konwersji, znajdziesz w tekście rozliczenia, okresy próbne i jak anulować.

Płatność przeszła, ale konto nadal jest na darmowym planie

Obciążona karta plus konto, które nadal zachowuje się jak darmowe, to inny objaw niż nieudany checkout i ma swoją własną stronę.

Przeczytaj zapłaciłeś, ale funkcje planu wciąż są zablokowane, żeby poznać komunikaty pojawiające się w tym stanie, sprawdzić, które konto ma subskrypcję, i dowiedzieć się, co wysłać do pomocy technicznej.

Czego Whizi nie może ci powiedzieć

Trzy luki, żebyś nie tracił czasu na szukanie odpowiedzi, których tam nie ma.

Whizi nigdy nie widzi, dlaczego twój bank odrzucił kartę, bo ta wymiana odbywa się na hostowanej stronie płatności Stripe, poza kodem Whizi. Przegląd obu repozytoriów Whizi nie znalazł żadnego napisu o odrzuceniu karty ani odrzuceniu płatności, a moduł obsługi webhooka Stripe nie ma żadnego komunikatu o odrzuceniu płatności. Nie ma więc żadnej przyczyny odmowy zapisanej na twoim koncie, żadnego przycisku ponowienia i niczego, co Whizi mogłoby nadpisać. Przyczyna leży po stronie twojego banku.

Whizi nie ma też żadnego komunikatu dla nieudanej lub zaległej odnowy. W żadnym z repozytoriów nie istnieje dla tego żaden napis widoczny dla użytkownika, więc jeśli obciążenie odnowieniowe zawiedzie później, nie dostaniesz błędu Whizi, który by to wyjaśnił. Jedyne powiadomienie związane z odnowieniem, jakie istnieje, to powiadomienie push o treści „Twoja subskrypcja nie jest już aktywna.” pod tytułem „Subskrypcja Whizi zaktualizowana”, wysyłane, gdy webhook RevenueCat synchronizuje konto w dół do darmowego poziomu. To ścieżka webhooka RevenueCat, więc nie jest to raport o nieudanej odnowie w Stripe.

Rozliczenia Whizi przechodzą przez Stripe, więc to, które karty w ogóle mogą płacić, decyduje się tam, a nie w Whizi. Rosyjska albo irańska karta nie może ukończyć rejestracji. Ukraina, Kazachstan, Turcja, Indonezja i Indie działają od początku do końca.

Lista kontrolna
  • Prawdziwa odmowa karty pochodzi od twojego banku za pośrednictwem Stripe, nie od Whizi
  • Whizi nie ma komunikatu o odrzuceniu karty ani przyczyny odmowy do pokazania
  • Błąd sformułowany w stylu Whizi oznacza, że to nie była odmowa
  • Błędy sesji ustępują po wylogowaniu i ponownym zalogowaniu, a potem ponowieniu z cennika
  • Pricing is temporarily unavailable jest po stronie serwera: poczekaj, nie ponawiaj w pętli
  • Okres próbny jest przypisany do odcisku karty, a nie do konta
  • Obciążenie przy nadal darmowym planie to inny objaw, opisany w subscription-not-active

Najczęstsze pytania

Dlaczego Whizi mówi, że moja płatność się nie powiodła, skoro bank nie pokazuje żadnej próby?

Ponieważ napis, który zobaczyłeś, został wygenerowany przez stronę, zanim w ogóle doszło do Stripe, więc żadne obciążenie nie zostało podjęte. Szybki sposób odróżnienia tego od prawdziwej odmowy backendu: odmowa backendu przychodzi jako JSON z kodem błędu, na przykład pricing_unavailable albo invalid_plan_or_cycle, i pokazuje status HTTP w śladzie sieciowym. Napis po stronie przeglądarki nie ma żadnego z nich. Jeśli to, co zobaczyłeś, nie miało kodu, nic nie dotarło do twojego banku.

Co oznacza A $1 intro trial has already been used with this payment method.?

Oznacza to, że wpisana przez ciebie karta już skorzystała z okresu próbnego. To nie odmowa: Whizi w ogóle nie ma napisu o odrzuceniu karty, a ten pochodzi z własnej trasy checkout Whizi jako HTTP 403 z kodem duplicate_trial_payment_method, który warto zacytować, jeśli piszesz do nas. Zapisz się w standardowej cenie albo użyj metody płatności, która nie skorzystała jeszcze z okresu próbnego.

Dostałem Pricing is temporarily unavailable. Czy problem leży w mojej karcie?

Nie. To HTTP 503 pricing_unavailable i pochodzi z trasy, która odczytuje zlokalizowaną tabelę cen ze Stripe, a nie z trasy checkout, która przyjmuje kartę. Nie ma na to rozwiązania po twojej stronie, więc poczekaj zamiast próbować inną kartę. Jeśli zamiast tego zobaczyłeś Failed to create Stripe checkout session., to osobny napis o osobnym pochodzeniu: tekst zastępczy strony, pokazywany, gdy wywołanie checkout zawiedzie, a backend nie dostarczy komunikatu.

Mój kod promocyjny został odrzucony. Dlaczego?

Checkout zwraca The supplied discount must be an active 100% promotion code or coupon ID. jako HTTP 400 invalid_discount. Pole rabatu przy checkout akceptuje wyłącznie aktywny kod promocyjny na 100 procent albo ID kuponu, więc wygasły kod albo częściowy kod rabatowy zostanie tam odrzucony. Usuń go i zapłać w normalnej cenie, jeśli potrzebujesz dostępu teraz.

Whizi odrzuciło mój e-mail przy checkout. Co się stało?

Zobaczyłeś Temporary email addresses are not allowed. Please use a permanent email address. Trasa checkout zwraca to jako HTTP 400 disposable_email_blocked, gdy domena e-mail zalogowanego konta znajduje się na liście jednorazowych. Ten sam napis pojawia się przy rejestracji jako HTTP 403. Użyj stałego adresu na koncie, a checkout przejdzie dalej.

Zostałem obciążony dwukrotnie. Co powinienem zrobić?

Skontaktuj się z pomocą techniczną z obydwoma paragonami ze Stripe, zamiast anulować na oślep. Anulowanie to osobna czynność z własnym skutkiem: dla aktywnej subskrypcji trasa anulowania odpowiada Subscription cancellation scheduled for end of billing period., więc ta subskrypcja działa do końca opłaconego już okresu.