Câu trả lời ngắn gọn
Nếu thẻ của bạn thực sự bị từ chối, sự từ chối đó đến từ ngân hàng của bạn qua Stripe, không phải từ Whizi, nên cách khắc phục là dùng thẻ khác hoặc gọi cho ngân hàng. Vì sao ngân hàng chặn các khoản thanh toán đăng ký AI ngay từ đầu, và cách nhận biết bạn gặp phải nguyên nhân nào trong sáu nguyên nhân, có trong bài paying for AI when your card is declined. Whizi không hề có thông báo thẻ bị từ chối ở bất kỳ đâu. Thông tin thẻ được nhập trên trang checkout do Stripe lưu trữ, nằm ngoài codebase của Whizi, và bộ xử lý webhook Stripe của Whizi không có thông báo thanh toán bị từ chối nào để hiển thị cho bạn.
Vậy nên nếu bạn thấy một lỗi mang văn phong của Whizi, đó không phải là một lần từ chối thẻ. Đó là một trong các chuỗi thông báo bên dưới, và mỗi chuỗi có một nguyên nhân và một cách khắc phục khác nhau.
Ba thông báo dễ nhầm nhất với việc bị từ chối thẻ:
| Bạn đã thấy gì | Điều đó có nghĩa là gì | Bạn nên làm gì |
|---|---|---|
A $1 intro trial has already been used with this payment method. | Thẻ đó đã dùng gói dùng thử giới thiệu rồi | Đăng ký với mức giá thông thường, hoặc dùng một thẻ chưa từng dùng gói đó. Thử lại sẽ không có tác dụng |
Pricing is temporarily unavailable. | Whizi không đọc được bảng giá từ Stripe | Chờ rồi thử lại sau. Không có gì phía bạn có thể sửa được lỗi này |
Failed to create Stripe checkout session. | Cuộc gọi checkout thất bại và backend không cung cấp thông báo nào | Thử lại một lần. Nếu vẫn lặp lại, liên hệ hỗ trợ |
Mọi lỗi mà backend của Whizi trả về khi checkout
Những lỗi này đến từ máy chủ, nên chúng đi kèm một mã trạng thái HTTP và một mã lỗi mà đội hỗ trợ có thể đối chiếu trong bản ghi mạng. Mọi nội dung lỗi từ backend đều là JSON theo dạng {"error": {"code": "...", "message": "..."}}, nên mã lỗi nằm ngay cạnh thông báo. Các dòng bên dưới được sắp theo mã trạng thái HTTP.
| Thông báo | HTTP | Mã | Xảy ra khi nào |
|---|---|---|---|
A plan and billing cycle are required. | 400 | invalid_checkout_request | Nội dung yêu cầu checkout không thể phân tích được |
Invalid plan or billing cycle. | 400 | invalid_plan_or_cycle | Gói hoặc chu kỳ không khớp với mức giá Stripe nào đã biết |
No subscription item found for the active subscription. | 400 | subscription_item_missing | Một lần đổi gói tại chỗ chạy trên một gói đăng ký không có mục nào |
The supplied discount must be an active 100% promotion code or coupon ID. | 400 | invalid_discount | Mã cung cấp không phải là mã khuyến mãi giảm 100 phần trăm hoặc mã coupon đang hoạt động |
Temporary email addresses are not allowed. Please use a permanent email address. | 400 | disposable_email_blocked | Email của tài khoản đang đăng nhập nằm trong danh sách tên miền email tạm |
A $1 intro trial has already been used with this payment method. | 403 | duplicate_trial_payment_method | Dấu vân tay của thẻ đã dùng gói dùng thử giới thiệu rồi |
User not found. | 404 | not_found | Tuyến checkout không đọc được dòng người dùng của bạn |
Pricing is temporarily unavailable. | 503 | pricing_unavailable | Bảng giá theo khu vực không đọc được từ Stripe |
Cách xử lý từng lỗi. Lỗi từ chối gói dùng thử giới thiệu có mục riêng bên dưới. Pricing is temporarily unavailable. là lỗi phía máy chủ: HTTP 503, xuất hiện khi không đọc được bảng giá theo khu vực từ Stripe, và không có cài đặt nào trên tài khoản của bạn thay đổi được nó. Failed to create Stripe checkout session. hoàn toàn không phải thông báo từ máy chủ, đó là lý do nó không nêu lý do nào: đó là văn bản dự phòng của chính website, hiển thị khi cuộc gọi checkout thất bại và backend không cung cấp thông báo nào. Cả hai đều nên chờ rồi thử lại.
A plan and billing cycle are required. và Invalid plan or billing cycle. đều có nghĩa là yêu cầu không mang theo gói nào mà máy chủ nhận ra, nên hãy bắt đầu lại từ trang giá và chọn gói cùng nút chuyển hàng tháng hoặc hàng năm ở đó thay vì dùng lại một liên kết checkout cũ hoặc đã bị chỉnh sửa.
User not found. có nghĩa là phiên đăng nhập của bạn trỏ đến một dòng người dùng mà máy chủ không đọc được. Hãy đăng xuất, đăng nhập lại, rồi bắt đầu checkout lần nữa.
No subscription item found for the active subscription. xảy ra trong lúc đổi gói chứ không phải lần mua đầu tiên, và không thể tự sửa từ giao diện. Hãy liên hệ hỗ trợ.
Các lỗi website hiển thị trước khi checkout kịp mở ra
Những lỗi này đến từ trình duyệt, không phải từ máy chủ, nên chúng không có mã HTTP. Chúng đều mang một ý nghĩa chung: có gì đó thất bại trong lúc Whizi chuẩn bị tài khoản của bạn để chuyển sang Stripe, nên chưa có khoản thu nào được thử.
| Thông báo | Xảy ra khi nào |
|---|---|
Failed to create Stripe checkout session. | Cuộc gọi checkout thất bại và backend không cung cấp thông báo nào |
Could not open checkout. Please try again. | Cuộc gọi checkout của cửa sổ nâng cấp bị lỗi mà không có thông báo |
Authentication failed. Please sign in again. | Việc lấy token trả về rỗng trước khi checkout |
Failed to save user before checkout. | Cuộc gọi lưu người dùng trước checkout không thành công |
Could not prepare your account for checkout. | Trang giá không lưu được người dùng trước checkout |
Missing user or Stripe customer details. | ID người dùng bị thiếu vào lúc checkout |
Checkout response did not include a Stripe URL. | Checkout thành công nhưng không trả về URL lẫn ID đăng ký nào |
Something went wrong while starting your trial. Please try again. | Lỗi khởi động dùng thử chung của trang giá |
Với bất kỳ mục nào trong danh sách này, hãy đăng xuất, đăng nhập lại, rồi bắt đầu checkout lần nữa từ trang giá. Điều đó xử lý được các trường hợp việc lấy token trả về rỗng trước khi checkout, chính là điều mà Authentication failed. Please sign in again. báo cáo.
Checkout response did not include a Stripe URL. là ngoại lệ: nó có nghĩa là cuộc gọi đã thành công. Trước khi thử thanh toán lại, hãy mở phần cài đặt tài khoản và kiểm tra xem đã có gói đăng ký ở đó chưa.
Có thêm hai thông báo xuất hiện trên trang đăng nhập và đăng ký khi bạn chọn gói trước rồi xác thực sau: Signed in, but checkout could not start. Please choose your plan again. và Your account was created, but checkout could not start. Please sign in and choose your plan again. Cả hai đều có nghĩa là phần tài khoản đã hoạt động và chỉ có bước chuyển tiếp là thất bại. Tài khoản của bạn vẫn tồn tại. Hãy vào trang giá và chọn gói lần nữa.
Một nguyên nhân cuối cùng gây ra lỗi khó hiểu: thử lại checkout nhiều lần liên tiếp có thể kích hoạt bộ giới hạn tốc độ, trả về HTTP 429 và Too many requests. Please wait and try again. Mọi yêu cầu trên tài khoản, dù ở tuyến nào, đều tính vào một giới hạn 30 lần mỗi phút. Hãy chờ một phút thay vì bấm lại.
Lỗi từ chối gói dùng thử giới thiệu, thứ mà không lần thử lại nào xóa được
A $1 intro trial has already been used with this payment method. là HTTP 403 với mã duplicate_trial_payment_method. Đây là lỗi checkout duy nhất trong bài mà một lần thử lại sẽ không bao giờ xóa được.
Việc kiểm tra được gắn với thẻ chứ không phải với tài khoản: lỗi từ chối này trả về khi dấu vân tay của thẻ đã dùng gói dùng thử giới thiệu rồi.
Một chi tiết nếu bạn đang tìm lỗi này: chuỗi thông báo thật sự ghi là "$1", dù khoản thu dùng thử thực tế là $0.99 tính bằng USD. Hãy đối chiếu theo đúng câu chữ, vì dạng "$1" chính xác là điều máy chủ gửi đi.
Bạn có hai lựa chọn: đăng ký với mức giá tiêu chuẩn cho gói bạn muốn, hoặc thanh toán bằng một phương thức chưa từng dùng gói dùng thử này.
Giá các gói, điều khoản dùng thử và điều gì xảy ra khi chuyển đổi đều có trong bài billing, trials and how to cancel.
Đã thanh toán thành công nhưng tài khoản vẫn ở gói miễn phí
Một chiếc thẻ đã bị trừ tiền cộng với một tài khoản vẫn hoạt động như gói miễn phí là một triệu chứng khác với việc checkout thất bại, và nó có trang riêng của mình.
Đọc bài you paid but the plan features are still locked để biết các chuỗi thông báo xuất hiện trong trường hợp đó, cách kiểm tra tài khoản nào đang giữ gói đăng ký, và những gì cần gửi cho đội hỗ trợ.
Những điều Whizi không thể cho bạn biết
Ba khoảng trống, để bạn không mất thời gian đi tìm những câu trả lời không tồn tại.
Whizi không bao giờ biết lý do ngân hàng của bạn từ chối một chiếc thẻ, vì việc trao đổi đó diễn ra trên trang checkout do Stripe lưu trữ, nằm ngoài codebase của Whizi. Một đợt rà soát cả hai kho mã của Whizi không tìm thấy chuỗi thẻ bị từ chối hay thanh toán bị từ chối nào cả, và bộ xử lý webhook Stripe không mang thông báo thanh toán bị từ chối nào. Vậy nên không có lý do từ chối nào được lưu trong tài khoản của bạn, không có nút thử lại, và không có gì để Whizi ghi đè lên. Lý do nằm ở phía ngân hàng của bạn.
Whizi cũng không có thông báo nào cho một lần gia hạn thất bại hay quá hạn. Không có chuỗi hiển thị cho người dùng nào tồn tại ở cả hai kho mã, nên nếu một khoản thu gia hạn thất bại sau này, bạn sẽ không nhận được lỗi nào từ Whizi giải thích điều đó. Thông báo duy nhất liên quan đến gia hạn tồn tại là một thông báo đẩy ghi "Your subscription is no longer active." dưới tiêu đề "Whizi subscription updated", được gửi khi một webhook RevenueCat đồng bộ tài khoản xuống gói miễn phí. Đó là đường webhook của RevenueCat, nên nó không phải là một báo cáo về việc gia hạn Stripe thất bại.
Việc thanh toán của Whizi chạy qua Stripe, nên thẻ nào có thể thanh toán được là do bên đó quyết định chứ không phải Whizi. Một thẻ của Nga hay Iran không thể hoàn tất đăng ký. Ukraine, Kazakhstan, Thổ Nhĩ Kỳ, Indonesia và Ấn Độ hoạt động trọn vẹn.
- Một lần từ chối thẻ thật sự đến từ ngân hàng của bạn qua Stripe, không phải từ Whizi
- Whizi không có thông báo thẻ bị từ chối và không có lý do từ chối nào để cho bạn thấy
- Một lỗi mang văn phong của Whizi nghĩa là đó không phải một lần từ chối thẻ
- Các lỗi phiên đăng nhập được xử lý bằng cách đăng xuất rồi đăng nhập lại, sau đó thử lại từ trang giá
- Pricing is temporarily unavailable là lỗi phía máy chủ: hãy chờ, đừng thử lại liên tục
- Gói dùng thử giới thiệu được gắn với dấu vân tay của thẻ chứ không phải với tài khoản
- Đã bị trừ tiền nhưng vẫn ở gói miễn phí là một triệu chứng khác, được nói đến trong subscription-not-active
Câu hỏi thường gặp
Vì sao Whizi báo thanh toán của tôi thất bại nhưng ngân hàng lại không thấy lần thử nào?
Vì chuỗi thông báo bạn thấy được website đưa ra trước khi Stripe kịp được gọi đến, nên chưa có khoản thu nào được thử. Cách nhanh để phân biệt điều đó với một lần từ chối thật từ backend: một lần từ chối từ backend đến dưới dạng JSON mang theo một mã lỗi, chẳng hạn pricing_unavailable hay invalid_plan_or_cycle, và hiển thị một mã trạng thái HTTP trong bản ghi mạng. Một chuỗi thông báo từ trình duyệt không có cả hai thứ đó. Nếu điều bạn thấy không mang mã nào, thì chưa có gì chạm đến ngân hàng của bạn.
A $1 intro trial has already been used with this payment method. nghĩa là gì?
A $1 intro trial has already been used with this payment method. nghĩa là gì?Nó có nghĩa là chiếc thẻ bạn nhập đã dùng gói dùng thử giới thiệu rồi. Đây không phải một lần từ chối thẻ: Whizi hoàn toàn không có chuỗi thẻ bị từ chối nào, và thông báo này đến từ chính tuyến checkout của Whizi dưới dạng HTTP 403 với mã duplicate_trial_payment_method, đáng để trích dẫn nếu bạn liên hệ. Hãy đăng ký với mức giá tiêu chuẩn hoặc dùng một phương thức thanh toán chưa từng dùng gói dùng thử.
Tôi nhận được Pricing is temporarily unavailable. Có phải do thẻ của tôi không?
Pricing is temporarily unavailable. Có phải do thẻ của tôi không?Không. Đó là HTTP 503 pricing_unavailable, và nó đến từ tuyến đọc bảng giá theo khu vực từ Stripe, không phải từ tuyến checkout xử lý thẻ. Không có cách khắc phục nào phía bạn, nên hãy chờ thay vì thử một thẻ khác. Nếu bạn thấy Failed to create Stripe checkout session. thay vào đó, đó là một chuỗi riêng với nguồn gốc riêng: văn bản dự phòng của website khi cuộc gọi checkout thất bại và backend không cung cấp thông báo nào.
Mã khuyến mãi của tôi bị từ chối. Vì sao?
Checkout trả về The supplied discount must be an active 100% promotion code or coupon ID. dưới dạng HTTP 400 invalid_discount. Trường mã giảm giá khi checkout chỉ chấp nhận một mã khuyến mãi giảm 100 phần trăm hoặc mã coupon đang hoạt động, nên một mã đã hết hạn hay một mã giảm giá một phần sẽ bị từ chối ở đó. Hãy xóa mã đó và checkout ở mức giá thông thường nếu bạn cần dùng ngay.
Whizi từ chối email của tôi khi checkout. Chuyện gì đã xảy ra?
Bạn đã thấy Temporary email addresses are not allowed. Please use a permanent email address. Tuyến checkout trả về nó dưới dạng HTTP 400 disposable_email_blocked khi tên miền email của tài khoản đang đăng nhập nằm trong danh sách email tạm. Cùng chuỗi này được dùng ở trang đăng ký dưới dạng HTTP 403. Hãy dùng một địa chỉ email lâu dài cho tài khoản và checkout sẽ tiếp tục được.
Tôi bị trừ tiền hai lần. Tôi nên làm gì?
Hãy liên hệ hỗ trợ kèm cả hai biên nhận Stripe thay vì hủy một cách mù quáng. Hủy là một hành động riêng với kết quả riêng: với một gói đăng ký đang hoạt động, tuyến hủy trả lời Subscription cancellation scheduled for end of billing period., nên gói đó sẽ chạy đến hết kỳ đã được thanh toán.