La réponse courte
Si votre carte a réellement été refusée, le refus vient de votre banque via Stripe, pas de Whizi, donc la solution est une autre carte ou un appel à votre banque. Pourquoi les banques bloquent les paiements d'abonnements IA en premier lieu, et comment identifier laquelle des six causes vous concerne, se trouve dans paying for AI when your card is declined. Whizi ne contient aucun message de carte refusée nulle part. Les détails de carte sont saisis sur la page de paiement hébergée par Stripe, qui se trouve hors du code de Whizi, et le gestionnaire de webhook Stripe de Whizi n'a aucun message de paiement refusé à vous montrer.
Donc si vous avez vu une erreur avec un libellé Whizi, ce n'était pas un refus. C'était l'une des chaînes ci-dessous, et chacune a une cause et une solution différentes.
Les trois les plus faciles à confondre avec un refus :
| Ce que vous avez vu | Ce que cela signifie | Que faire |
|---|---|---|
A $1 intro trial has already been used with this payment method. | Cette carte a déjà utilisé l'essai découverte | Abonnez-vous au tarif normal, ou utilisez une carte qui ne l'a pas encore utilisé. Une nouvelle tentative ne fonctionnera pas |
Pricing is temporarily unavailable. | Whizi n'a pas pu lire la grille tarifaire depuis Stripe | Attendez et réessayez plus tard. Rien de votre côté ne corrige cela |
Failed to create Stripe checkout session. | L'appel de paiement a échoué et le serveur n'a fourni aucun message | Réessayez une fois. Si cela se répète, contactez le support |
Chaque erreur renvoyée par le serveur Whizi au paiement
Celles-ci viennent du serveur, donc elles arrivent avec un statut HTTP et un code d'erreur que le support peut faire correspondre dans une trace réseau. Chaque corps d'erreur backend est du JSON de la forme {"error": {"code": "...", "message": "..."}}, donc le code se trouve juste à côté du message. Les lignes ci-dessous sont classées par statut HTTP.
| Message | HTTP | Code | Déclenché quand |
|---|---|---|---|
A plan and billing cycle are required. | 400 | invalid_checkout_request | Le corps de la requête de paiement n'a pas pu être analysé |
Invalid plan or billing cycle. | 400 | invalid_plan_or_cycle | Le plan ou le cycle ne correspond à aucun prix Stripe connu |
No subscription item found for the active subscription. | 400 | subscription_item_missing | Un changement de plan en place a été lancé sur un abonnement sans élément associé |
The supplied discount must be an active 100% promotion code or coupon ID. | 400 | invalid_discount | Le code fourni n'est pas un code promotionnel actif à 100 pour cent ni un identifiant de coupon |
Temporary email addresses are not allowed. Please use a permanent email address. | 400 | disposable_email_blocked | L'e-mail du compte connecté figure sur la liste des domaines jetables |
A $1 intro trial has already been used with this payment method. | 403 | duplicate_trial_payment_method | L'empreinte de la carte a déjà utilisé l'essai découverte |
User not found. | 404 | not_found | La route de paiement n'a pas pu lire votre ligne utilisateur |
Pricing is temporarily unavailable. | 503 | pricing_unavailable | La grille tarifaire localisée n'a pas pu être lue depuis Stripe |
Que faire pour chacune. Le refus de l'essai découverte a sa propre section plus bas. Pricing is temporarily unavailable. est côté serveur : HTTP 503, renvoyé quand la grille tarifaire localisée ne peut pas être lue depuis Stripe, et aucun réglage de votre compte ne change cela. Failed to create Stripe checkout session. n'est pas du tout un message serveur, ce qui explique qu'il ne nomme aucune raison : c'est le texte de repli du site lui-même, affiché quand l'appel de paiement échoue et que le serveur n'a fourni aucun message. Les deux appellent à attendre et réessayer.
A plan and billing cycle are required. et Invalid plan or billing cycle. signifient toutes deux que la requête ne portait pas de plan reconnu par le serveur, donc recommencez depuis la page de tarifs et choisissez-y le plan ainsi que le bascule mensuel ou annuel, plutôt que de réutiliser un lien de paiement ancien ou modifié.
User not found. signifie que votre session pointe vers une ligne utilisateur que le serveur ne peut pas lire. Déconnectez-vous, reconnectez-vous, puis relancez le paiement.
No subscription item found for the active subscription. se déclenche lors d'un changement de plan plutôt qu'à un premier achat, et ce n'est pas corrigeable depuis l'interface. Contactez le support.
Erreurs affichées par le site avant même l'ouverture du paiement
Celles-ci viennent du navigateur, pas du serveur, donc elles n'ont pas de code HTTP. Elles signifient toutes la même chose au fond : quelque chose a échoué pendant que Whizi préparait votre compte pour le transfert vers Stripe, donc aucune charge n'a jamais été tentée.
| Message | Déclenché quand |
|---|---|
Failed to create Stripe checkout session. | L'appel de paiement a échoué et le serveur n'a fourni aucun message |
Could not open checkout. Please try again. | L'appel de paiement de la fenêtre de mise à niveau a échoué sans message |
Authentication failed. Please sign in again. | La récupération du jeton n'a rien renvoyé avant le paiement |
Failed to save user before checkout. | L'appel de sauvegarde de l'utilisateur avant le paiement n'était pas OK |
Could not prepare your account for checkout. | La page de tarifs n'a pas pu sauvegarder l'utilisateur avant le paiement |
Missing user or Stripe customer details. | L'identifiant utilisateur était absent au moment du paiement |
Checkout response did not include a Stripe URL. | Le paiement a réussi mais n'a renvoyé ni URL ni identifiant d'abonnement |
Something went wrong while starting your trial. Please try again. | L'échec générique de démarrage d'essai de la page de tarifs |
Pour tout élément de cette liste, déconnectez-vous, reconnectez-vous, et relancez le paiement depuis la page de tarifs. Cela résout les cas où la récupération du jeton n'a rien renvoyé avant le paiement, ce que rapporte Authentication failed. Please sign in again.
Checkout response did not include a Stripe URL. fait exception : cela signifie que l'appel a réussi. Avant d'essayer de payer à nouveau, ouvrez les paramètres de votre compte et vérifiez si un abonnement y figure déjà.
Deux autres apparaissent sur les pages de connexion et d'inscription quand vous choisissez d'abord un plan puis vous authentifiez ensuite : Signed in, but checkout could not start. Please choose your plan again. et Your account was created, but checkout could not start. Please sign in and choose your plan again. Les deux signifient que la partie compte a fonctionné et que seul le transfert a échoué. Votre compte existe. Allez sur la page de tarifs et choisissez à nouveau le plan.
Une dernière cause d'échec mystérieux : relancer le paiement plusieurs fois de suite peut déclencher le limiteur de débit, qui renvoie HTTP 429 et Too many requests. Please wait and try again. Chaque requête sur le compte, quelle que soit la route, compte contre un plafond de 30 par minute. Attendez une minute plutôt que de cliquer à nouveau.
Le refus de l'essai découverte, qu'aucune nouvelle tentative ne lèvera
A $1 intro trial has already been used with this payment method. est un HTTP 403 avec le code duplicate_trial_payment_method. C'est la seule erreur de paiement de cette page qu'une nouvelle tentative ne pourra jamais lever.
La vérification est liée à la carte plutôt qu'au compte : le refus est renvoyé quand l'empreinte de la carte a déjà utilisé l'essai découverte.
Un détail si vous recherchez cette erreur : la chaîne indique bien "$1", même si la charge de l'essai est elle-même de $0.99 en USD. Recherchez-la par son libellé, car la forme "$1" est exactement ce que le serveur envoie.
Vos deux options : vous abonner au tarif standard pour le plan souhaité, ou payer avec un moyen de paiement qui n'a pas déjà utilisé l'essai.
Les prix des plans, les conditions de l'essai et ce qui se passe à la conversion se trouvent tous dans billing, trials and how to cancel.
Le paiement est passé mais le compte est encore en formule gratuite
Une carte débitée plus un compte qui se comporte encore comme gratuit est un symptôme différent d'un échec de paiement, et il a sa propre page.
Lisez you paid but the plan features are still locked pour les chaînes qui apparaissent dans cet état, la vérification qui indique quel compte détient l'abonnement, et ce qu'il faut envoyer au support.
Ce que Whizi ne peut pas vous dire
Trois lacunes, pour que vous ne passiez pas de temps à chercher des réponses qui n'existent pas.
Whizi ne voit jamais pourquoi votre banque a refusé une carte, car cet échange se déroule sur la page de paiement hébergée par Stripe, hors du code de Whizi. Un balayage des deux dépôts de code Whizi n'a trouvé aucune chaîne de carte refusée ou de paiement refusé, quelle qu'elle soit, et le gestionnaire de webhook Stripe ne porte aucun message de paiement refusé. Il n'y a donc aucune raison de refus stockée dans votre compte, aucun bouton de nouvelle tentative, et rien que Whizi puisse outrepasser. La raison reste du côté de votre banque.
Whizi n'a non plus aucun message pour un renouvellement échoué ou en retard. Aucune chaîne visible par l'utilisateur n'existe pour cela dans aucun des deux dépôts, donc si une charge de renouvellement échoue plus tard, vous n'obtiendrez pas d'erreur Whizi qui l'explique. Le seul avis lié au renouvellement qui existe est une notification push indiquant "Your subscription is no longer active." sous le titre "Whizi subscription updated", envoyée quand un webhook RevenueCat synchronise un compte vers le palier gratuit. C'est le chemin du webhook RevenueCat, donc ce n'est pas un rapport d'un échec de renouvellement Stripe.
La facturation de Whizi passe par Stripe, donc quelles cartes peuvent payer du tout se décide là-bas plutôt que chez Whizi. Une carte russe ou iranienne ne peut pas terminer l'inscription. L'Ukraine, le Kazakhstan, la Turquie, l'Indonésie et l'Inde fonctionnent de bout en bout.
- Un vrai refus de carte vient de votre banque via Stripe, pas de Whizi
- Whizi n'a aucun message de carte refusée et aucune raison de refus à vous montrer
- Un libellé Whizi sur l'erreur signifie qu'il ne s'agit pas d'un refus
- Les erreurs de session se règlent en se déconnectant puis reconnectant, puis en réessayant depuis la page de tarifs
- Pricing is temporarily unavailable est côté serveur : attendez, ne réessayez pas en boucle
- L'essai découverte est lié à l'empreinte de la carte plutôt qu'au compte
- Être débité mais rester en formule gratuite est un symptôme différent, couvert dans subscription-not-active
Questions fréquentes
Pourquoi Whizi dit que mon paiement a échoué alors que ma banque ne montre aucune tentative ?
Parce que la chaîne que vous avez vue a été déclenchée par le site avant même que Stripe soit contacté, donc aucune charge n'a été tentée. Le moyen rapide de distinguer cela d'un vrai refus backend : un refus backend arrive en JSON portant un code d'erreur, comme pricing_unavailable ou invalid_plan_or_cycle, et montre un statut HTTP dans une trace réseau. Une chaîne côté navigateur n'a ni l'un ni l'autre. Si ce que vous avez vu ne portait aucun code, rien n'a atteint votre banque.
Que signifie A $1 intro trial has already been used with this payment method. ?
A $1 intro trial has already been used with this payment method. ?Cela signifie que la carte que vous avez saisie a déjà utilisé l'essai découverte. Ce n'est pas un refus : Whizi n'a aucune chaîne de carte refusée du tout, et celle-ci vient de la route de paiement de Whizi elle-même en HTTP 403 avec le code duplicate_trial_payment_method, qu'il vaut la peine de citer si vous écrivez au support. Abonnez-vous au tarif standard ou utilisez un moyen de paiement qui n'a pas déjà utilisé l'essai.
J'ai vu Pricing is temporarily unavailable. Ma carte est-elle en cause ?
Pricing is temporarily unavailable. Ma carte est-elle en cause ?Non. C'est un HTTP 503 pricing_unavailable, et cela vient de la route qui lit la grille tarifaire localisée depuis Stripe, pas de la route de paiement qui prendrait une carte. Il n'y a aucune solution de votre côté, donc attendez plutôt que d'essayer une autre carte. Si vous avez vu Failed to create Stripe checkout session. à la place, c'est une chaîne distincte avec une origine distincte : le texte de repli du site quand l'appel de paiement échoue et que le serveur n'a fourni aucun message.
Mon code promo a été rejeté. Pourquoi ?
Le paiement renvoie The supplied discount must be an active 100% promotion code or coupon ID. en HTTP 400 invalid_discount. Le champ de réduction au paiement n'accepte qu'un code promotionnel actif à 100 pour cent ou un identifiant de coupon, donc un code expiré ou une réduction partielle y sera refusé. Retirez-le et payez au prix normal si vous avez besoin d'accéder tout de suite.
Whizi a rejeté mon e-mail au paiement. Que s'est-il passé ?
Vous avez vu Temporary email addresses are not allowed. Please use a permanent email address. La route de paiement le renvoie en HTTP 400 disposable_email_blocked quand le domaine de l'e-mail du compte connecté figure sur la liste des domaines jetables. La même chaîne est utilisée à l'inscription en HTTP 403. Utilisez une adresse permanente sur le compte et le paiement pourra se poursuivre.
J'ai été débité deux fois. Que dois-je faire ?
Contactez le support avec les deux reçus Stripe plutôt que d'annuler à l'aveugle. Annuler est une action distincte avec son propre résultat : pour un abonnement actif, la route d'annulation répond Subscription cancellation scheduled for end of billing period., donc cet abonnement va jusqu'à la fin de la période déjà payée.