簡潔な回答
もし本当にカードが拒否された場合、その拒否はWhiziではなく、Stripeを通じてあなたの銀行から届いたものです。そのため対処法は別のカードを使うか、銀行に連絡することです。銀行がそもそもAIサブスクリプションの支払いをブロックする理由と、6つの原因のうちどれに当てはまるかの見分け方は、カードが拒否されたときのAI利用料の支払い方にまとめています。Whiziはチェックアウト時に「カード拒否」というメッセージを表示しません。カード情報はWhiziのコードベースの外にあるStripeのホスト型チェックアウトページで入力されるため、銀行の回答はStripeに届くだけでWhiziには一切届きません。
そのため、Whizi側の文言でエラーが表示された場合、それは拒否ではありません。以下のいずれかの文字列であり、それぞれ原因も対処法も異なります。
拒否と最も間違えやすい3つのケース:
| 表示された内容 | 意味 | 対処法 |
|---|---|---|
This card has already used its intro trials, so this starts at the full price of に続けて価格 | そのカードは7日間のイントロ体験版をすでに4回利用しています。これはカードごとの上限です | カードには何も問題はありません。表示された通常料金を支払うか、まだ体験版が残っているカードを使ってください |
Pricing is temporarily unavailable. | WhiziがStripeから価格表を読み込めませんでした | しばらく待ってから再度お試しください。あなた側で直せる問題ではありません |
Failed to create Stripe checkout session. | チェックアウトの呼び出しが失敗し、バックエンドがメッセージを返しませんでした | もう一度試してください。繰り返す場合はサポートに連絡してください |
Whiziのバックエンドがチェックアウト時に返すすべてのエラー
これらはサーバー側から返されるため、HTTPステータスとエラーコードが付き、サポートがネットワークトレースで照合できます。バックエンドのエラー本文はすべて{"error": {"code": "...", "message": "..."}}という形のJSONなので、コードはメッセージのすぐ隣にあります。以下の表はHTTPステータス順に並んでいます。
| メッセージ | HTTP | コード | 発生条件 |
|---|---|---|---|
A plan and billing cycle are required. | 400 | invalid_checkout_request | チェックアウトの本文を解析できませんでした |
Invalid plan or billing cycle. | 400 | invalid_plan_or_cycle | プランまたは周期が既知のStripe価格に対応していません |
No subscription item found for the active subscription. | 400 | subscription_item_missing | アイテムのないサブスクリプションに対してプラン変更が実行されました |
The supplied discount must be an active 100% promotion code or coupon ID. | 400 | invalid_discount | 指定されたコードが有効な100%割引のプロモーションコードまたはクーポンIDではありません |
Temporary email addresses are not allowed. Please use a permanent email address. | 400 | disposable_email_blocked | サインイン中のアカウントのメールが使い捨てドメインの一覧に含まれています |
User not found. | 404 | not_found | チェックアウトのルートがあなたのユーザー行を読み込めませんでした |
Pricing is temporarily unavailable. | 503 | pricing_unavailable | ローカライズされた価格表をStripeから読み込めませんでした |
それぞれの対処法です。イントロ体験版を使い切ったカードはそもそも拒否されず、これについては以下に専用のセクションがあります。Pricing is temporarily unavailable.はサーバー側の問題で、HTTP 503が返され、ローカライズされた価格表をStripeから読み込めないときに発生し、あなたのアカウント側で変えられる設定はありません。Failed to create Stripe checkout session.はそもそもサーバーのメッセージではないため理由が示されません。これはチェックアウトの呼び出しが失敗し、バックエンドがメッセージを返さなかったときに表示されるサイト側の代替テキストです。どちらも、待ってから再試行してください。
A plan and billing cycle are required.とInvalid plan or billing cycle.は、どちらもリクエストがサーバーの認識するプランを運んでいなかったことを意味します。古い、あるいは編集済みのチェックアウトリンクを使い回すのではなく、価格ページからやり直し、そこでプランと月額または年額の切り替えを選んでください。
User not found.は、あなたのセッションがサーバーの読み込めないユーザー行を指していることを意味します。サインアウトしてから再度サインインし、チェックアウトをやり直してください。
No subscription item found for the active subscription.は初回購入ではなくプラン変更の際に発生し、インターフェースからは解決できません。サポートに連絡してください。
チェックアウトが開く前にサイトが表示するエラー
これらはサーバーではなくブラウザから返されるため、HTTPコードはありません。いずれも大まかには同じ意味です。WhiziがStripeへの引き渡しに向けてあなたのアカウントを準備している最中に何かが失敗し、請求は一切試みられなかったということです。
| メッセージ | 発生条件 |
|---|---|
Failed to create Stripe checkout session. | チェックアウトの呼び出しが失敗し、バックエンドがメッセージを返しませんでした |
Could not open checkout. Please try again. | アップグレードモーダルのチェックアウト呼び出しがメッセージなしで例外を投げました |
Authentication failed. Please sign in again. | チェックアウト前のトークン取得が何も返しませんでした |
Failed to save user before checkout. | チェックアウト前のユーザー保存呼び出しが正常に完了しませんでした |
Could not prepare your account for checkout. | 価格ページがチェックアウト前にユーザーを保存できませんでした |
Missing user or Stripe customer details. | チェックアウト時にユーザーIDが存在しませんでした |
Checkout response did not include a Stripe URL. | チェックアウトは成功しましたが、URLもサブスクリプションIDも返されませんでした |
Something went wrong while starting your trial. Please try again. | 価格ページの汎用的な体験版開始失敗です |
この一覧のどれに当たった場合も、サインアウトしてから再度サインインし、価格ページからチェックアウトをやり直してください。それでチェックアウト前のトークン取得が何も返さなかったケース、つまりAuthentication failed. Please sign in again.が報告する状況は解消します。
Checkout response did not include a Stripe URL.は例外です。これは呼び出しが成功したことを意味します。再度支払おうとする前に、アカウント設定を開いて、すでにサブスクリプションが存在していないか確認してください。
サインインページとサインアップページでは、先にプランを選んでから後で認証した場合にもう2つのメッセージが表示されます。Signed in, but checkout could not start. Please choose your plan again.とYour account was created, but checkout could not start. Please sign in and choose your plan again.です。どちらもアカウント部分はうまくいき、引き渡しだけが失敗したことを意味します。あなたのアカウントは存在しています。価格ページに行き、再度プランを選んでください。
もう1つ、原因不明の失敗が起きるケースとして、チェックアウトを何度も連続して再試行するとレート制限に引っかかり、HTTP 429とToo many requests. Please wait and try again.が返ることがあります。ルートを問わず、アカウントへのすべてのリクエストは1分あたり30件という上限に対してカウントされます。もう一度クリックするのではなく、1分待ってください。
カードがイントロ体験版を使い切った場合
各カードは7日間のイントロ体験版を最大4回まで利用できます。この回数はアカウントではなくカードのフィンガープリントに紐づいているため、同じカードで新しいアカウントを開設しても回数はリセットされません。
カードがその上限に達しても、チェックアウトは拒否されません。選んだプランの通常料金でそのまま開き、Stripeのページには支払いボタンの上にThis card has already used its intro trials, so this starts at the full price ofという文言に続けてプランの価格が表示されます。そこで支払うと、体験期間なしですぐにプランが開始します。
これは拒否ではなく、再試行しても変わりません。回数はすでにそのカードに記録されているためです。まだ体験版が残っているカードであれば、イントロ価格は米ドルでStarterが$0.99、Proが$1.99、Powerhouseが$4.99です。
選べる方法は2つです。表示された通常料金を支払うか、まだ体験版を利用していないカードで支払うかです。
プランの料金、体験版の条件、そして更新時に何が起こるかは、すべて請求、体験版、解約方法にまとめています。
支払いは完了したのにアカウントがまだ無料プランのまま
課金されたカードがあるのにアカウントがまだ無料プランのように振る舞う場合、これはチェックアウトの失敗とは別の症状であり、専用のページがあります。
その状態で表示される文字列、どのアカウントがサブスクリプションを持っているかを確認する方法、サポートに何を送ればよいかについては、支払ったのにプランの機能がまだロックされているをお読みください。
Whiziにはわからないこと
3つの盲点をまとめます。存在しない答えを探して時間を無駄にしないためです。
Whiziはあなたの銀行がなぜカードを拒否したのかを一切知りません。そのやり取りはWhiziのコードベースの外にあるStripeのホスト型チェックアウトページで行われるためです。そのためチェックアウトの拒否には、あなたのアカウントに保存された拒否理由もなく、再試行ボタンもなく、Whiziが上書きできるものも何もありません。理由は銀行側にあります。
更新の失敗については事情が異なり、Whiziはきちんと知らせます。プラン名、金額、そしてStripeが理由を保持している場合はその銀行の理由を記載したメールが届き、チャット上部の赤いバナーがカードの更新かより安いプランでの継続かを提案します。iOSまたはAndroidアプリで購入したサブスクリプションはAppleまたはGoogle経由で更新され、それぞれが自社の決済失敗を処理します。
Whiziの請求はStripe経由で行われるため、どのカードがそもそも支払い可能かはWhiziではなくそちら側で決まります。ロシアやイランのカードでは登録を完了できません。ウクライナ、カザフスタン、トルコ、インドネシア、インドのカードは問題なく機能します。
- 本当のカード拒否は、Whiziではなく、Stripeを通じてあなたの銀行から届きます
- チェックアウトにおいて、Whiziには「カード拒否」というメッセージも、表示すべき拒否理由もありません
- Whizi側の文言のエラーが表示された場合、それは拒否ではありません
- セッション系のエラーは、サインアウトして再度サインインし、価格ページからやり直せば解消します
- Pricing is temporarily unavailableはサーバー側の問題です。ループで再試行せず、待ってください
- カードは最大4回までイントロ体験版を利用でき、それを超えるとチェックアウトは拒否ではなく通常料金を請求します
- 課金されたのに無料プランのままなのは別の症状で、subscription-not-activeで扱っています
よくある質問
なぜWhiziは支払いが失敗したと表示するのに、銀行には請求の形跡がないのですか?
表示された文字列は、Stripeに到達する前にサイト側が出したものだからで、請求は一切試みられていません。本物のバックエンドの拒否と見分ける簡単な方法があります。バックエンドの拒否はpricing_unavailableやinvalid_plan_or_cycleのようなエラーコードを含むJSONとして届き、ネットワークトレースにHTTPステータスが表示されます。ブラウザ側の文字列にはそのどちらもありません。表示されたものにコードが付いていなければ、あなたの銀行には何も届いていません。
チェックアウトで表示されるThis card has already used its intro trialsとはどういう意味ですか?
This card has already used its intro trialsとはどういう意味ですか?そのカードが7日間のイントロ体験版をすでに4回利用しており、これがカードごとの上限であることを意味します。そのためこのチェックアウトは体験期間なしでプランを通常料金から開始します。これは拒否でもエラーでもなく、回数はどのアカウントで使っても同じカードに引き継がれます。表示された通常料金を支払うか、まだ体験版が残っているカードを使ってください。
Pricing is temporarily unavailable.と表示されました。カードに問題があるのですか?
Pricing is temporarily unavailable.と表示されました。カードに問題があるのですか?いいえ。これはHTTP 503のpricing_unavailableで、カードを扱うチェックアウトのルートではなく、Stripeからローカライズされた価格表を読み込むルートから発生します。あなた側で直せる方法はないため、別のカードを試すのではなく待ってください。代わりにFailed to create Stripe checkout session.が表示された場合は、それとは別の文字列で発生源も別です。チェックアウトの呼び出しが失敗し、バックエンドがメッセージを返さなかったときのサイト側の代替表示です。
プロモーションコードが拒否されました。なぜですか?
チェックアウトはThe supplied discount must be an active 100% promotion code or coupon ID.をHTTP 400のinvalid_discountとして返します。チェックアウトの割引欄が受け付けるのは有効な100%割引のプロモーションコードまたはクーポンIDのみなので、期限切れのコードや部分割引のコードはそこで拒否されます。今すぐ利用したい場合は、そのコードを外して通常料金でチェックアウトしてください。
Whiziがチェックアウトで私のメールアドレスを拒否しました。何が起きたのですか?
Temporary email addresses are not allowed. Please use a permanent email address.が表示されたはずです。チェックアウトのルートは、サインイン中のアカウントのメールドメインが使い捨てリストに含まれている場合、これをHTTP 400のdisposable_email_blockedとして返します。同じ文字列はサインアップ時にはHTTP 403として使われます。アカウントに恒久的なアドレスを設定すれば、チェックアウトは進みます。
2回課金されました。どうすればよいですか?
むやみに解約せず、両方のStripeの領収書を添えてサポートに連絡してください。解約は別の操作であり、結果も別です。有効なサブスクリプションの場合、解約ルートはSubscription cancellation scheduled for end of billing period.と返すため、そのサブスクリプションはすでに支払い済みの期間の終わりまで有効に動きます。