Răspunsul scurt
Dacă cardul tău a fost refuzat cu adevărat, refuzul a venit de la banca ta prin Stripe, nu de la Whizi, așa că soluția este un card diferit sau un apel la bancă. De ce băncile blochează în primul rând plățile pentru abonamente AI, și cum să distingi care dintre cele șase cauze te-a afectat, găsești în plata pentru AI când cardul tău este refuzat. Whizi nu are niciun mesaj de card refuzat nicăieri în el. Detaliile cardului se introduc pe pagina de checkout găzduită de Stripe, care se află în afara codului Whizi, iar handler-ul webhook Stripe al Whizi nu are niciun mesaj de plată refuzată de arătat.
Așa că dacă ai văzut o eroare cu formularea Whizi pe ea, nu a fost un refuz. A fost unul dintre mesajele de mai jos, iar fiecare are o cauză diferită și o soluție diferită.
Cele trei cel mai ușor de confundat cu un refuz:
| Ce ai văzut | Ce înseamnă | Ce ai de făcut |
|---|---|---|
A $1 intro trial has already been used with this payment method. | Acel card a revendicat deja perioada de probă introductivă | Abonează-te la tariful normal sau folosește un card care nu a revendicat-o. Reîncercarea nu va funcționa |
Pricing is temporarily unavailable. | Whizi nu a putut citi tabelul de prețuri de la Stripe | Așteaptă și încearcă din nou mai târziu. Nimic din partea ta nu rezolvă asta |
Failed to create Stripe checkout session. | Apelul de checkout a eșuat, iar backend-ul nu a furnizat niciun mesaj | Reîncearcă o dată. Dacă se repetă, contactează suportul |
Fiecare eroare pe care backend-ul Whizi o returnează la checkout
Acestea vin de la server, așa că sosesc cu un status HTTP și un cod de eroare pe care suportul îl poate potrivi într-o urmărire de rețea. Fiecare corp de eroare de la backend este JSON în forma {"error": {"code": "...", "message": "..."}}, astfel încât codul stă lângă mesaj. Rândurile de mai jos sunt ordonate după statusul HTTP.
| Mesaj | HTTP | Cod | Declanșat când |
|---|---|---|---|
A plan and billing cycle are required. | 400 | invalid_checkout_request | Corpul cererii de checkout nu a putut fi analizat |
Invalid plan or billing cycle. | 400 | invalid_plan_or_cycle | Planul sau ciclul nu corespund unui preț Stripe cunoscut |
No subscription item found for the active subscription. | 400 | subscription_item_missing | O schimbare de plan pe loc a rulat pe un abonament fără niciun element |
The supplied discount must be an active 100% promotion code or coupon ID. | 400 | invalid_discount | Codul furnizat nu este un cod de promoție sau ID de cupon activ de 100 la sută |
Temporary email addresses are not allowed. Please use a permanent email address. | 400 | disposable_email_blocked | Emailul contului autentificat se află pe lista domeniilor temporare |
A $1 intro trial has already been used with this payment method. | 403 | duplicate_trial_payment_method | Amprenta cardului a revendicat deja perioada de probă introductivă |
User not found. | 404 | not_found | Ruta de checkout nu a putut citi rândul contului tău |
Pricing is temporarily unavailable. | 503 | pricing_unavailable | Tabelul de prețuri localizat nu a putut fi citit de la Stripe |
Ce să faci cu fiecare. Refuzul perioadei de probă introductive are propria secțiune mai jos. Pricing is temporarily unavailable. este de partea serverului: HTTP 503, returnat când tabelul de prețuri localizat nu poate fi citit de la Stripe, și nu există nicio setare pe contul tău care să schimbe asta. Failed to create Stripe checkout session. nu este deloc un mesaj de server, motiv pentru care nu numește niciun motiv: este textul de rezervă propriu al site-ului, afișat când apelul de checkout eșuează și backend-ul nu furnizează niciun mesaj. Ambele înseamnă așteaptă și reîncearcă.
A plan and billing cycle are required. și Invalid plan or billing cycle. înseamnă amândouă că cererea nu a purtat un plan pe care serverul îl recunoaște, așa că reia de la pagina de prețuri și alege acolo planul și comutatorul lunar sau anual, în loc să refolosești un link de checkout vechi sau editat.
User not found. înseamnă că sesiunea ta indică spre un rând de utilizator pe care serverul nu îl poate citi. Deloghează-te, autentifică-te din nou, apoi începe checkout-ul din nou.
No subscription item found for the active subscription. apare în timpul unei schimbări de plan, nu al unei prime achiziții, și nu se poate rezolva din interfață. Contactează suportul.
Erori pe care site-ul le arată înainte ca checkout-ul să se deschidă
Acestea vin din browser, nu din server, așa că nu au niciun cod HTTP. Toate înseamnă în linii mari același lucru: ceva a eșuat în timp ce Whizi pregătea contul tău pentru preluarea de către Stripe, așa că nicio taxă nu a fost vreodată încercată.
| Mesaj | Declanșat când |
|---|---|
Failed to create Stripe checkout session. | Apelul de checkout a eșuat, iar backend-ul nu a furnizat niciun mesaj |
Could not open checkout. Please try again. | Apelul de checkout al modalului de upgrade a aruncat o eroare fără mesaj |
Authentication failed. Please sign in again. | Preluarea token-ului nu a returnat nimic înainte de checkout |
Failed to save user before checkout. | Apelul de salvare a utilizatorului dinaintea checkout-ului nu a fost OK |
Could not prepare your account for checkout. | Pagina de prețuri nu a putut salva utilizatorul înainte de checkout |
Missing user or Stripe customer details. | ID-ul utilizatorului lipsea la momentul checkout-ului |
Checkout response did not include a Stripe URL. | Checkout-ul a reușit, dar nu a returnat nici un URL, nici un ID de abonament |
Something went wrong while starting your trial. Please try again. | Eșecul generic de pornire a perioadei de probă de pe pagina de prețuri |
Pentru orice de pe această listă, deloghează-te, autentifică-te din nou și începe checkout-ul din nou de la pagina de prețuri. Asta rezolvă cazurile în care preluarea token-ului nu a returnat nimic înainte de checkout, ceea ce raportează Authentication failed. Please sign in again.
Checkout response did not include a Stripe URL. este excepția: înseamnă că apelul a reușit. Înainte să încerci să plătești din nou, deschide setările contului tău și verifică dacă un abonament există deja acolo.
Alte două apar pe paginile de autentificare și înregistrare când alegi mai întâi un plan și te autentifici al doilea: Signed in, but checkout could not start. Please choose your plan again. și Your account was created, but checkout could not start. Please sign in and choose your plan again. Amândouă înseamnă că partea de cont a funcționat și doar preluarea a eșuat. Contul tău există. Mergi la pagina de prețuri și alege planul din nou.
Încă o cauză a unui eșec misterios: reîncercarea checkout-ului de multe ori la rând poate declanșa limitatorul de rată, care returnează HTTP 429 și Too many requests. Please wait and try again. Fiecare cerere de pe cont, indiferent de rută, se numără spre un plafon de 30 pe minut. Așteaptă un minut în loc să dai clic din nou.
Refuzul perioadei de probă introductive, pe care nicio reîncercare nu îl va elimina
A $1 intro trial has already been used with this payment method. este HTTP 403 cu codul duplicate_trial_payment_method. Este singura eroare de checkout de pe această pagină pe care o reîncercare nu o va elimina niciodată.
Verificarea este legată de card, nu de cont: refuzul este returnat când amprenta cardului a revendicat deja perioada de probă introductivă.
Un detaliu dacă cauți această eroare: șirul chiar spune "$1", deși taxa introductivă în sine este de $0.99 în USD. Potrivește-l după formulare, pentru că forma "$1" este exact ce trimite serverul.
Cele două opțiuni ale tale: abonează-te la tariful standard pentru planul dorit, sau plătește cu o metodă de plată care nu a revendicat încă perioada de probă.
Prețurile planurilor, termenii perioadei de probă și ce se întâmplă la conversie sunt toate în facturare, perioade de probă și cum să anulezi.
Plata a trecut, dar contul este încă pe planul gratuit
Un card taxat plus un cont care încă se comportă ca gratuit este un simptom diferit de eșecul checkout-ului, și are propria pagină.
Citește ai plătit, dar funcțiile planului sunt încă blocate pentru șirurile care apar în acea stare, verificarea care îți spune ce cont deține abonamentul, și ce să trimiți suportului.
Ce nu îți poate spune Whizi
Trei goluri, ca să nu îți petreci timpul căutând răspunsuri care nu există.
Whizi nu vede niciodată de ce banca ta a refuzat un card, pentru că acel schimb are loc pe pagina de checkout găzduită de Stripe, în afara codului Whizi. O verificare a ambelor depozite Whizi nu a găsit niciun șir de tip card refuzat sau plată refuzată de niciun fel, iar handler-ul webhook Stripe nu conține niciun mesaj de plată refuzată. Deci nu există niciun motiv de refuz stocat în contul tău, niciun buton de reîncercare, și nimic pentru Whizi de suprascris. Motivul rămâne la banca ta.
Whizi nu are nici un mesaj pentru o reînnoire eșuată sau restantă. Nu există niciun șir vizibil utilizatorului pentru asta în niciunul dintre depozite, așa că dacă o taxă de reînnoire eșuează mai târziu, nu vei primi o eroare Whizi care să o explice. Singura notificare adiacentă reînnoirii care există este o notificare push care spune "Your subscription is no longer active." sub titlul "Whizi subscription updated", trimisă când un webhook RevenueCat sincronizează un cont în jos către nivelul gratuit. Acesta este calea webhook-ului RevenueCat, deci nu este un raport al unei reînnoiri Stripe eșuate.
Facturarea Whizi rulează prin Stripe, așa că ce carduri pot plăti deloc se decide acolo, nu în Whizi. Un card rusesc sau iranian nu poate finaliza înregistrarea. Ucraina, Kazahstan, Turcia, Indonezia și India funcționează integral.
- Un refuz real de card vine de la banca ta prin Stripe, nu de la Whizi
- Whizi nu are niciun mesaj de card refuzat și niciun motiv de refuz de arătat
- Formularea Whizi pe eroare înseamnă că nu a fost un refuz
- Erorile de sesiune se rezolvă delogându-te și autentificându-te din nou, apoi reîncercând de la pagina de prețuri
- Pricing is temporarily unavailable este de partea serverului: așteaptă, nu reîncerca într-o buclă
- Perioada de probă introductivă este legată de amprenta cardului, nu de cont
- Taxat dar încă pe planul gratuit este un simptom diferit, acoperit în subscription-not-active
Întrebări frecvente
De ce Whizi spune că plata mea a eșuat, dar banca mea nu arată nicio încercare?
Pentru că șirul pe care l-ai văzut a fost ridicat de site înainte ca Stripe să fie vreodată contactat, așa că nicio taxă nu a fost încercată. Modul rapid de a distinge asta de un refuz real de backend: un refuz de backend sosește ca JSON purtând un cod de eroare, precum pricing_unavailable sau invalid_plan_or_cycle, și arată un status HTTP într-o urmărire de rețea. Un șir de partea browserului nu are niciunul dintre acestea. Dacă ce ai văzut nu purta niciun cod, nimic nu a ajuns la banca ta.
Ce înseamnă A $1 intro trial has already been used with this payment method.?
A $1 intro trial has already been used with this payment method.?Înseamnă că cardul pe care l-ai introdus a revendicat deja perioada de probă introductivă. Nu este un refuz: Whizi nu are deloc un șir de card refuzat, iar acesta vine din propria rută de checkout a Whizi ca HTTP 403 cu codul duplicate_trial_payment_method, ceea ce merită citat dacă scrii. Fie abonează-te la tariful standard, fie folosește o metodă de plată care nu a revendicat perioada de probă.
Am primit Pricing is temporarily unavailable. E cardul meu problema?
Pricing is temporarily unavailable. E cardul meu problema?Nu. Este HTTP 503 pricing_unavailable, și vine de la ruta care citește tabelul de prețuri localizat de la Stripe, nu de la ruta de checkout care ar lua un card. Nu există nicio soluție de partea ta, așa că așteaptă în loc să încerci un alt card. Dacă ai văzut în schimb Failed to create Stripe checkout session., acela este un șir separat cu o origine separată: textul de rezervă al site-ului, arătat când apelul de checkout eșuează și backend-ul nu furnizează niciun mesaj.
Codul meu promoțional a fost respins. De ce?
Checkout-ul returnează The supplied discount must be an active 100% promotion code or coupon ID. ca HTTP 400 invalid_discount. Câmpul de reducere de la checkout acceptă doar un cod de promoție sau ID de cupon activ de 100 la sută, așa că un cod expirat sau un cod de reducere parțială va fi refuzat acolo. Elimină-l și finalizează comanda la prețul normal dacă ai nevoie de acces acum.
Whizi mi-a respins emailul la checkout. Ce s-a întâmplat?
Ai văzut Temporary email addresses are not allowed. Please use a permanent email address. Ruta de checkout îl returnează ca HTTP 400 disposable_email_blocked când domeniul emailului contului autentificat se află pe lista celor temporare. Același șir este folosit la înregistrare ca HTTP 403. Folosește o adresă permanentă pe cont și checkout-ul va continua.
Am fost taxat de două ori. Ce ar trebui să fac?
Contactează suportul cu ambele chitanțe Stripe, în loc să anulezi orbește. Anularea este o acțiune separată cu propriul rezultat: pentru un abonament activ, ruta de anulare răspunde Subscription cancellation scheduled for end of billing period., așa că acel abonament rulează până la sfârșitul perioadei deja plătite.