پاسخ کوتاه
اگر کارت شما واقعاً رد شده باشد، این رد شدن از سوی بانک شما و از طریق Stripe اتفاق افتاده، نه از سوی Whizi، پس راهحل استفاده از کارتی دیگر یا تماس با بانک شماست. اینکه چرا بانکها اصلاً پرداخت اشتراکهای AI را مسدود میکنند، و اینکه چطور بفهمید کدامیک از شش علت به شما برخورده، در پرداخت هزینه AI هنگام رد شدن کارت شما آمده است. Whizi هیچ پیام کارت رد شد در تسویهحساب نشان نمیدهد. اطلاعات کارت در صفحهٔ تسویهحساب میزبانیشدهٔ Stripe وارد میشود که بیرون از کدبیس Whizi قرار دارد، پس پاسخ بانک به Stripe میرسد و هرگز به Whizi نمیرسد.
پس اگر خطایی با لحن Whizi دیدید، رد شدن پرداخت نبوده است. یکی از رشتههای زیر بوده، و هرکدام علت و راهحل متفاوتی دارند.
سه موردی که بیشترین شباهت را به رد شدن پرداخت دارند:
| چه دیدید | یعنی چه | چه باید کرد |
|---|---|---|
This card has already used its intro trials, so this starts at the full price of و بهدنبال آن قیمت | آن کارت آزمایش مقدماتی 7 روزه را چهار بار مصرف کرده است، سقف مجاز برای هر کارت | مشکلی در کارت نیست. قیمت کامل نمایشدادهشده را بپردازید یا از کارتی استفاده کنید که هنوز آزمایش دارد |
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 | ایمیل حساب واردشده در فهرست دامنههای موقت است |
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 در دقیقه شمرده میشود. بهجای کلیک دوباره، یک دقیقه صبر کنید.
وقتی یک کارت آزمایش مقدماتی خود را مصرف کرده باشد
هر کارت میتواند آزمایش مقدماتی 7 روزه را تا چهار بار مصرف کند. این شمارش بر اساس اثر انگشت کارت است، نه حساب، پس باز کردن حساب جدید با همان کارت آن را از نو شروع نمیکند.
وقتی کارتی به این سقف برسد، تسویهحساب رد نمیشود. تسویهحساب با قیمت کامل پلنی که انتخاب کردهاید باز میشود، و صفحهٔ Stripe همین را بالای دکمهٔ پرداخت مینویسد: This card has already used its intro trials, so this starts at the full price of و بهدنبال آن قیمت همان پلن. پرداخت در آنجا بلافاصله پلن را شروع میکند، بدون هیچ هفتهٔ آزمایشی.
این رد شدن نیست، و هیچ تلاش دوبارهای آن را تغییر نمیدهد، چون شمارش از قبل روی کارت ذخیره شده است. برای کارتی که هنوز آزمایش دارد، هزینهٔ آزمایش مقدماتی $0.99 در Starter، $1.99 در Pro و $4.99 در Powerhouse به دلار آمریکا است.
دو گزینهٔ شما: قیمت کامل نمایشدادهشده را بپردازید، یا با کارتی پرداخت کنید که هنوز آزمایش خود را مصرف نکرده است.
قیمت پلنها، شرایط آزمایش مقدماتی و اتفاقی که هنگام تبدیل میافتد همه در صورتحساب، آزمایشها و نحوهٔ لغو آمده است.
پرداخت انجام شده اما حساب هنوز روی پلن رایگان است
کارتی که هزینه از آن کسر شده بهعلاوهٔ حسابی که هنوز مثل حساب رایگان رفتار میکند، نشانهای متفاوت از شکست تسویهحساب است و صفحهٔ مخصوص خودش را دارد.
شما پرداخت کردید اما امکانات پلن هنوز قفل است را بخوانید تا رشتههایی که در آن وضعیت ظاهر میشوند، بررسیای که نشان میدهد کدام حساب صاحب اشتراک است، و آنچه باید برای پشتیبانی بفرستید را ببینید.
چیزهایی که Whizi نمیتواند به شما بگوید
سه شکاف، تا وقت خود را صرف جستوجوی پاسخهایی نکنید که اصلاً وجود ندارند.
Whizi هرگز نمیبیند چرا بانک شما کارتی را رد کرده، چون آن تبادل در صفحهٔ تسویهحساب میزبانیشدهٔ Stripe اتفاق میافتد، بیرون از کدبیس Whizi. پس یک رد شدن در تسویهحساب هیچ دلیلی در حساب شما ذخیره نمیکند، هیچ دکمهٔ تلاش دوبارهای نیست، و هیچچیزی برای Whizi برای لغو کردن وجود ندارد. دلیل نزد بانک شماست.
تمدید ناموفق داستان دیگری دارد، و Whizi دربارهٔ آن به شما اطلاع میدهد. ایمیلی دریافت میکنید که نام پلن، مبلغ و، اگر Stripe دلیلی از بانک نگه داشته باشد، همان دلیل را نام میبرد، و یک نوار قرمز بالای چت پیشنهاد میدهد کارت را بهروزرسانی کنید یا با یک پلن ارزانتر با قیمت خودش ادامه دهید. اشتراکهایی که در اپ iOS یا Android خریداری شدهاند از طریق Apple یا Google تمدید میشوند، که خودشان پرداختهای ناموفق را مدیریت میکنند.
صورتحساب Whizi از طریق Stripe انجام میشود، پس اینکه کدام کارتها اصلاً میتوانند پرداخت کنند آنجا تصمیمگیری میشود، نه در Whizi. کارت روسی یا ایرانی نمیتواند ثبتنام را کامل کند. اوکراین، قزاقستان، ترکیه، اندونزی و هند سرتاسر کار میکنند.
- رد شدن واقعی کارت از سوی بانک شما و از طریق Stripe میآید، نه از Whizi
- در تسویهحساب، Whizi هیچ پیام کارت رد شد و هیچ دلیل رد شدنی برای نمایش ندارد
- متنی با لحن Whizi روی خطا یعنی رد شدن پرداخت نبوده است
- خطاهای نشست با خروج و ورود دوباره و تلاش مجدد از صفحهٔ قیمتگذاری برطرف میشوند
- Pricing is temporarily unavailable سمت سرور است: صبر کنید، در حلقه تلاش نکنید
- هر کارت تا چهار بار میتواند آزمایش مقدماتی بگیرد، پس از آن تسویهحساب بهجای رد شدن، قیمت کامل را دریافت میکند
- پرداخت شده اما هنوز روی پلن رایگان، نشانهای متفاوت است که در subscription-not-active پوشش داده شده
پرسشهای متداول
چرا Whizi میگوید پرداختم ناموفق بوده اما بانکم هیچ تلاشی نشان نمیدهد؟
چون رشتهای که دیدید پیش از رسیدن به Stripe توسط وبسایت مطرح شده، پس هیچ هزینهای تلاش نشده است. راه سریع برای تفکیک این از یک رد واقعی سمت بکاند: یک رد سمت بکاند به شکل JSON با یک کد خطا میرسد، مثل pricing_unavailable یا invalid_plan_or_cycle، و در ردیابی شبکه یک وضعیت HTTP نشان میدهد. یک رشتهٔ سمت مرورگر هیچکدام را ندارد. اگر آنچه دیدید هیچ کدی نداشت، هیچچیزی به بانک شما نرسیده است.
This card has already used its intro trials هنگام تسویهحساب یعنی چه؟
This card has already used its intro trials هنگام تسویهحساب یعنی چه؟یعنی این کارت آزمایش مقدماتی 7 روزه را چهار بار مصرف کرده، که سقف مجاز برای هر کارت است، پس این تسویهحساب پلن را با قیمت کامل و بدون هیچ هفتهٔ آزمایشی شروع میکند. این نه رد شدن است و نه خطا، و این شمارش با کارت به هر حسابی دنبال میشود. قیمت کامل نمایشدادهشده را بپردازید، یا از کارتی استفاده کنید که هنوز آزمایش دارد.
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. پاسخ میدهد، پس آن اشتراک تا پایان دورهای که قبلاً برای آن پرداخت شده ادامه مییابد.