پاسخ کوتاه
اگر کارت شما واقعاً رد شده باشد، این رد شدن از سوی بانک شما و از طریق Stripe اتفاق افتاده، نه از سوی Whizi، پس راهحل استفاده از کارتی دیگر یا تماس با بانک شماست. اینکه چرا بانکها اصلاً پرداخت اشتراکهای AI را مسدود میکنند، و اینکه چطور بفهمید کدامیک از شش علت به شما برخورده، در پرداخت هزینه AI هنگام رد شدن کارت شما آمده است. Whizi هیچ پیام کارت رد شد در هیچجای خود ندارد. اطلاعات کارت در صفحهٔ تسویهحساب میزبانیشدهٔ Stripe وارد میشود که بیرون از کدبیس Whizi قرار دارد، و کنترلکنندهٔ وبهوک Stripe در Whizi هیچ پیام رد شدن پرداختی برای نمایش ندارد.
پس اگر خطایی با لحن Whizi دیدید، رد شدن پرداخت نبوده است. یکی از رشتههای زیر بوده، و هرکدام علت و راهحل متفاوتی دارند.
سه موردی که بیشترین شباهت را به رد شدن پرداخت دارند:
| چه دیدید | یعنی چه | چه باید کرد |
|---|---|---|
A $1 intro trial has already been used with this payment method. | آن کارت قبلاً آزمایش مقدماتی را دریافت کرده است | با نرخ عادی مشترک شوید یا از کارتی استفاده کنید که هنوز آن را دریافت نکرده. تلاش دوباره فایدهای ندارد |
Pricing is temporarily unavailable. | Whizi نتوانست جدول قیمت را از Stripe بخواند | کمی صبر کنید و دوباره امتحان کنید. هیچ کاری از طرف شما این را برطرف نمیکند |
Failed to create Stripe checkout session. | فراخوانی تسویهحساب شکست خورده و بکاند پیامی ارسال نکرده | یکبار دیگر امتحان کنید. اگر تکرار شد، با پشتیبانی تماس بگیرید |
هر خطایی که بکاند Whizi در تسویهحساب برمیگرداند
اینها از سرور میآیند، پس با یک وضعیت HTTP و یک کد خطا همراهاند که پشتیبانی میتواند در ردیابی شبکه با آن مطابقت دهد. هر بدنهٔ خطای بکاند به شکل JSON با ساختار {"error": {"code": "...", "message": "..."}} است، پس کد درست کنار پیام قرار دارد. ردیفهای زیر بر اساس وضعیت 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 درصدی نیست |
Temporary email addresses are not allowed. Please use a permanent email address. | 400 | disposable_email_blocked | ایمیل حساب واردشده در فهرست دامنههای موقت است |
A $1 intro trial has already been used with this payment method. | 403 | duplicate_trial_payment_method | اثر انگشت کارت قبلاً آزمایش مقدماتی را دریافت کرده |
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. | شناسهٔ کاربر هنگام تسویهحساب وجود نداشت |
Checkout response did not include a Stripe URL. | تسویهحساب موفق بود اما نه آدرس و نه شناسهٔ اشتراکی برنگرداند |
Something went wrong while starting your trial. Please try again. | خطای عمومی شروع آزمایش صفحهٔ قیمتگذاری |
برای هر مورد در این فهرست، خارج شوید، دوباره وارد شوید و تسویهحساب را از صفحهٔ قیمتگذاری از نو شروع کنید. این کار مواردی را برطرف میکند که دریافت توکن پیش از تسویهحساب چیزی برنگردانده، که همان چیزی است که Authentication failed. Please sign in again. گزارش میدهد.
Checkout response did not include a Stripe URL. استثناست: یعنی فراخوانی موفق بوده است. پیش از تلاش دوباره برای پرداخت، تنظیمات حساب خود را باز کنید و ببینید آیا اشتراکی از قبل آنجا هست.
دو مورد دیگر در صفحات ورود و ثبتنام زمانی ظاهر میشوند که ابتدا پلنی انتخاب کنید و بعد احراز هویت کنید: 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. هر دو یعنی بخش حساب کار کرده و فقط تحویل شکست خورده. حساب شما وجود دارد. به صفحهٔ قیمتگذاری بروید و دوباره پلن را انتخاب کنید.
یک علت آخر برای شکستی مرموز: تلاشهای پیاپی زیاد برای تسویهحساب میتواند محدودکنندهٔ نرخ را فعال کند، که HTTP 429 و Too many requests. Please wait and try again. برمیگرداند. هر درخواست روی حساب، صرفنظر از مسیر، به سقف 30 در دقیقه شمرده میشود. بهجای کلیک دوباره، یک دقیقه صبر کنید.
رد شدن آزمایش مقدماتی، که هیچ تلاش دوبارهای آن را برطرف نمیکند
A $1 intro trial has already been used with this payment method. کد HTTP 403 با کد duplicate_trial_payment_method است. این تنها خطای تسویهحساب در این صفحه است که هیچگاه با تلاش دوباره برطرف نمیشود.
این بررسی به کارت گره خورده، نه به حساب: این رد شدن زمانی برمیگردد که اثر انگشت کارت قبلاً آزمایش مقدماتی را دریافت کرده باشد.
یک نکته اگر دنبال این خطا میگردید: این رشته واقعاً «$1» مینویسد، حتی با اینکه هزینهٔ خود آزمایش مقدماتی $0.99 دلار آمریکا است. آن را با متن دقیقش تطبیق دهید، چون شکل «$1» دقیقاً همان چیزی است که سرور میفرستد.
دو گزینهٔ شما: با نرخ استاندارد پلنی که میخواهید مشترک شوید، یا با روش پرداختی که پیشتر آزمایش مقدماتی را دریافت نکرده پرداخت کنید.
قیمت پلنها، شرایط آزمایش مقدماتی و اتفاقی که هنگام تبدیل میافتد همه در صورتحساب، آزمایشها و نحوهٔ لغو آمده است.
پرداخت انجام شده اما حساب هنوز روی پلن رایگان است
کارتی که هزینه از آن کسر شده بهعلاوهٔ حسابی که هنوز مثل حساب رایگان رفتار میکند، نشانهای متفاوت از شکست تسویهحساب است و صفحهٔ مخصوص خودش را دارد.
شما پرداخت کردید اما امکانات پلن هنوز قفل است را بخوانید تا رشتههایی که در آن وضعیت ظاهر میشوند، بررسیای که نشان میدهد کدام حساب صاحب اشتراک است، و آنچه باید برای پشتیبانی بفرستید را ببینید.
چیزهایی که Whizi نمیتواند به شما بگوید
سه شکاف، تا وقت خود را صرف جستوجوی پاسخهایی نکنید که اصلاً وجود ندارند.
Whizi هرگز نمیبیند چرا بانک شما کارتی را رد کرده، چون آن تبادل در صفحهٔ تسویهحساب میزبانیشدهٔ Stripe اتفاق میافتد، بیرون از کدبیس Whizi. بررسی هر دو مخزن Whizi هیچ رشتهٔ کارت رد شد یا پرداخت رد شد از هیچ نوعی پیدا نکرد، و کنترلکنندهٔ وبهوک Stripe هیچ پیام رد شدن پرداختی حمل نمیکند. پس هیچ دلیل رد شدنی در حساب شما ذخیره نشده، هیچ دکمهٔ تلاش دوبارهای نیست، و هیچچیزی برای Whizi برای لغو کردن وجود ندارد. دلیل نزد بانک شماست.
Whizi همچنین هیچ پیامی برای تمدید ناموفق یا معوق ندارد. هیچ رشتهٔ رو به کاربر برای این مورد در هیچکدام از دو مخزن وجود ندارد، پس اگر بعداً یک هزینهٔ تمدید شکست بخورد، هیچ خطای Whizi آن را توضیح نمیدهد. تنها اعلان مرتبط با تمدید که وجود دارد یک اعلان فشاری با متن «اشتراک شما دیگر فعال نیست.» زیر عنوان «اشتراک Whizi بهروزرسانی شد» است، که وقتی وبهوک RevenueCat حسابی را به پلن رایگان همگام میکند، فرستاده میشود. این مسیر وبهوک RevenueCat است، پس گزارشی از شکست تمدید در Stripe نیست.
صورتحساب Whizi از طریق Stripe انجام میشود، پس اینکه کدام کارتها اصلاً میتوانند پرداخت کنند آنجا تصمیمگیری میشود، نه در Whizi. کارت روسی یا ایرانی نمیتواند ثبتنام را کامل کند. اوکراین، قزاقستان، ترکیه، اندونزی و هند سرتاسر کار میکنند.
- رد شدن واقعی کارت از سوی بانک شما و از طریق Stripe میآید، نه از Whizi
- Whizi هیچ پیام کارت رد شد و هیچ دلیل رد شدنی برای نمایش ندارد
- متنی با لحن Whizi روی خطا یعنی رد شدن پرداخت نبوده است
- خطاهای نشست با خروج و ورود دوباره و تلاش مجدد از صفحهٔ قیمتگذاری برطرف میشوند
- Pricing is temporarily unavailable سمت سرور است: صبر کنید، در حلقه تلاش نکنید
- آزمایش مقدماتی به اثر انگشت کارت گره خورده، نه به حساب
- پرداخت شده اما هنوز روی پلن رایگان، نشانهای متفاوت است که در subscription-not-active پوشش داده شده
پرسشهای متداول
چرا Whizi میگوید پرداختم ناموفق بوده اما بانکم هیچ تلاشی نشان نمیدهد؟
چون رشتهای که دیدید پیش از رسیدن به Stripe توسط وبسایت مطرح شده، پس هیچ هزینهای تلاش نشده است. راه سریع برای تفکیک این از یک رد واقعی سمت بکاند: یک رد سمت بکاند به شکل JSON با یک کد خطا میرسد، مثل pricing_unavailable یا invalid_plan_or_cycle، و در ردیابی شبکه یک وضعیت HTTP نشان میدهد. یک رشتهٔ سمت مرورگر هیچکدام را ندارد. اگر آنچه دیدید هیچ کدی نداشت، هیچچیزی به بانک شما نرسیده است.
A $1 intro trial has already been used with this payment method. یعنی چه؟
A $1 intro trial has already been used with this payment method. یعنی چه؟یعنی کارتی که وارد کردید قبلاً آزمایش مقدماتی را دریافت کرده. این رد شدن پرداخت نیست: Whizi اصلاً هیچ رشتهٔ کارت رد شد ندارد، و این یکی از مسیر تسویهحساب خود Whizi بهصورت HTTP 403 با کد duplicate_trial_payment_method میآید، که ارزش نقل کردن دارد اگر پیام بدهید. یا با نرخ استاندارد مشترک شوید یا از روش پرداختی استفاده کنید که آزمایش را دریافت نکرده.
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 درصدی را میپذیرد، پس کدی منقضی یا کد تخفیف جزئی همانجا رد میشود. آن را حذف کنید و اگر همین حالا به دسترسی نیاز دارید با قیمت عادی تسویهحساب کنید.
Whizi ایمیلم را در تسویهحساب رد کرد. چه اتفاقی افتاد؟
شما Temporary email addresses are not allowed. Please use a permanent email address. را دیدید. مسیر تسویهحساب آن را بهصورت HTTP 400 با کد disposable_email_blocked برمیگرداند، وقتی دامنهٔ ایمیل حساب واردشده در فهرست ایمیلهای موقت باشد. همین رشته در ثبتنام بهصورت HTTP 403 استفاده میشود. از یک آدرس دائمی روی حساب استفاده کنید تا تسویهحساب پیش برود.
دو بار از من هزینه گرفته شد. چهکار باید بکنم؟
با هر دو رسید Stripe با پشتیبانی تماس بگیرید، بهجای لغو کورکورانه. لغو کردن اقدامی جداست با نتیجهٔ خودش: برای اشتراکی فعال، مسیر لغو Subscription cancellation scheduled for end of billing period. پاسخ میدهد، پس آن اشتراک تا پایان دورهای که قبلاً برای آن پرداخت شده ادامه مییابد.