Bỏ qua để đến nội dung

Thanh toán - Checkout Flows (Payment)

DomainsDOL EnglishUX2.464 words12 min read
active
  • Mô tả luồng mua hàng cho DOL English Web V2 từ trigger đến hoàn tất thanh toán, giữ flow đơn giản: chọn cơ chế gói, chọn gói Pro/Pro Max, thanh toán, quay về đúng ngữ cảnh đang học.
  • Active scope của DOL English V2:
    • monthly auto-renew + annual 12 tháng auto-renew theo năm + one-time 3/6 tháng non-renew.
    • không dùng household/parent-child billing trong active scope này (thuộc Product KID).
  • Payment methods:
    • monthly/annual: Card + Momo.
    • one-time (3/6): Card + Momo + Bank QR/Chuyển khoản.
    • Bank QR/Chuyển khoản chỉ dùng cho one-time.
  • Overlap rule:
    • nếu user còn one-time active rồi mua gói auto-renew cùng scope,
    • auto-renew (monthly/annual) được queue và bắt đầu sau khi one-time hết hạn.
  • Cancel rule:
    • huỷ monthly có hiệu lực cuối chu kỳ.
  • Plan switching rule:
    • upgrade tier cao hơn: hiệu lực ngay + prorated charge cho phần chu kỳ còn lại,
    • downgrade tier thấp hơn: hiệu lực kỳ kế tiếp, không hoàn tiền giữa kỳ,
    • one-time pass: không hỗ trợ mid-cycle downgrade/cancel refund.
  • Checkout protection:
    • guest phải đăng nhập trước khi bước checkout bắt đầu.
  • Checkout required-data:
    • không bắt buộc goal/learning profile,
    • bắt buộc email đã verify,
    • với luồng mua Pro/Pro Max hoặc đăng ký khóa học: bắt buộc có số điện thoại liên hệ cho CS.
    • phone contact không cần verify và không được coi là auth factor.
  • Course boundary:
    • mua khóa học không bắt buộc Pro/Pro Max,
    • trang checkout khóa học chỉ gợi ý add-on subscription (optional, non-blocking).
  • Practice premium action: xem giải thích nâng cao, generate luyện tập mới, mở khóa đề giới hạn.
    • Modal hiển thị 2 cột: Mua theo nhu cầu vs Gói all-in-one.
    • Số lượng mặc định 1 bài (có stepper ±) với giá cập nhật realtime.
  • Video course detail: CTA Mua khóa học + upsell gói all-in-one của cùng chương trình.
  • Pricing page: danh sách sản phẩm theo chương trình; user chọn multiple all-in-one để thấy combo discount.
  • Empty credit state: hiển thị dialog Bạn còn 0 credit → gợi ý nâng credit/tháng (prorate) trước khi bán pack.
  • Premium theo chương trình: popup chọn gói phù hợp entitlement của feature (Pro hoặc Pro Max) và đi thẳng sang checkout.
  • Checkout/popup dùng 2 cơ chế gói trước:
    • Auto-renew
    • One-time
  • Nếu chọn Auto-renew:
    • chỉ hiển thị cycle con: Monthly hoặc Annual (12 tháng, tự gia hạn theo năm).
    • hiển thị note phương thức khả dụng: Card + Momo.
  • Nếu chọn One-time:
    • chỉ hiển thị duration con: 3 tháng hoặc 6 tháng (non-renew).
    • hiển thị note phương thức khả dụng: Card + Momo + Bank QR/Chuyển khoản.
  • UI không hiển thị đồng thời toàn bộ cycle/method của cả hai cơ chế.
  • Khi đổi cơ chế:
    • reset các lựa chọn không tương thích (cycle/duration/method cũ),
    • giữ nguyên context feature + tier đã chọn nếu vẫn hợp lệ.
  • Header theo ngữ cảnh (ví dụ: “Mở khóa giải thích chuyên sâu”).
  • Left panel (Mua lẻ): liệt kê sản phẩm đề xuất (AI credit, Practice pack), hiển thị giá + selector số lượng.
  • Right panel (All-in-one):
    • level 1: selector cơ chế Auto-renew | One-time;
    • level 2:
      • Auto-renew -> Monthly | Annual (12 tháng, tự gia hạn theo năm),
      • One-time -> 3 tháng | 6 tháng (không tự gia hạn);
    • chọn Pro hoặc Pro Max theo eligibility;
    • hiển thị note phương thức khả dụng theo cơ chế đang chọn (không show toàn bộ method cùng lúc).
    • Pricing cue: gói one-time 6 tháng có badge tiết kiệm so với 3 tháng.
  • Credit slider: điều chỉnh credit/tháng; hiển thị giá cập nhật realtime và quy đổi sử dụng; với gói tháng, nêu rõ không carry-over.
  • CTA primary: Tiếp tục thanh toán; secondary: Xem thêm gói khác (đi pricing page) hoặc Để sau.
  • Starters/Movers/Flyers: nhắc rõ “Full luyện tập mở khi bạn là học viên”; checkout chỉ bán khoá, không bán practice lẻ; cho phép preview/free sample trước.

Locked Feature Upgrade Entry (DOL English Web V2 Confirmed)

Phần tiêu đề “Locked Feature Upgrade Entry (DOL English Web V2 Confirmed)”
  • Entry luôn bắt đầu bằng quick popup khi user bấm vào AI feature đang bị khoá.
  • Offer-set theo yêu cầu feature:
    • Nếu feature mở được bằng Pro: popup hiển thị cả ProPro Max.
    • Nếu feature yêu cầu Pro Max: popup chỉ hiển thị Pro Max.
  • Default preselect:
    • Nếu có cả ProPro Max, preselect mặc định gói tối thiểu đủ mở feature.
    • User vẫn có quyền đổi gói trước khi xác nhận.
  • Khi popup có cả 2 gói:
    • bắt buộc user chọn rõ một gói trước khi chuyển bước.
  • Popup luôn có link Xem chi tiết gói.
  • Sau khi chọn gói hợp lệ, chuyển nhanh sang bước checkout kế tiếp.
  • Checkout không được ép user nhập mục tiêu học tập.
  • Checkout không được ép user hoàn thành learning profile/academic profile.
  • Dữ liệu bắt buộc trong checkout chỉ là dữ liệu liên quan thanh toán và xử lý giao dịch.
  • Nếu goal/profile chưa có, checkout vẫn chạy bình thường; phần cá nhân hóa tiếp tục bằng nudge non-blocking sau đó.
  1. Mechanism, Cycle/Duration, Tier & Credit
    • Chọn cơ chế: Auto-renew hoặc One-time.
    • Nếu Auto-renew: chọn cycle Monthly hoặc Annual (12 tháng, tự gia hạn theo năm).
    • Nếu One-time: chọn duration 3 tháng hoặc 6 tháng (không tự gia hạn).
    • Chọn tier: Pro hoặc Pro Max.
    • Hiển thị note phương thức khả dụng theo cơ chế đã chọn:
      • Auto-renew -> Card + Momo
      • One-time -> Card + Momo + Bank QR/Chuyển khoản
    • Chọn credit/tháng (nếu áp dụng): slider/stepper; hiển thị giá và quy đổi sử dụng; nêu rõ không carry-over với gói tháng.
  2. Summary
    • Danh sách chương trình đã chọn + promotion (combo, sequential giảm 10% khi mua tiếp).
    • Cảnh báo: huỷ 1 chương trình sẽ mất combo từ kỳ sau; one-time không mua thêm gói cùng chương trình.
    • Mã khuyến mại (nếu chiến dịch) + tuỳ chọn invoice.
    • Credit policy: gói tháng mất credit dư khi hết kỳ; One-time hết hạn mất credit.
  3. Profile & Contact
    • Kiểm tra email đã verify trước khi tiếp tục.
    • Kiểm tra số điện thoại liên hệ (cho luồng Pro/course); nếu thiếu thì chặn và yêu cầu bổ sung.
    • Blocker UI cho phép nhập/cập nhật phone trực tiếp ngay tại cùng màn, không cần thoát flow.
    • Phone contact không cần OTP verify; chỉ cần dữ liệu hợp lệ để CS liên hệ.
    • Blocker phải giữ nguyên lựa chọn plan/cycle/context và resume đúng bước checkout sau khi đủ dữ liệu.
    • Không yêu cầu user nhập mục tiêu học tập ở bước này.
  4. Payment Method
    • Danh sách method chỉ hiển thị theo cơ chế đã chọn từ bước 1.
    • Auto-renew (Monthly/Annual) → Momo + Thẻ quốc tế; tick Lưu phương thức.
    • One-time (3/6 tháng) → QR/Chuyển khoản, Momo, Thẻ; không auto-renew.
    • Không hiển thị method không tương thích với cơ chế hiện tại.
    • Hiển thị promotion summary + giá cuối cùng.
  5. Review & Pay
    • Loading state chờ gateway.
    • Success → receipt + CTA Bắt đầu học / Quản lý gói.
    • Nếu checkout được gọi từ attempt/result context:
      • reload lại trang attempt/result hiện tại,
      • mở ngay phần vừa unlock theo entitlement mới.
    • Nếu checkout được gọi từ landing/exploration context:
      • return về đúng trang trước đó,
      • hiển thị popup chào mừng nâng cấp thành công.
  • Nếu checkout trong modal → giữ overlay, progress indicator; option Mở trong tab mới.
  • Combo discount áp dụng trước thuế, gắn id promotion; gói cao nhất làm gói chính, gói khác giảm 10% tại thời điểm mua.
  • Sequential discount: gói thứ 2 trong 7 ngày sau gói thứ 1 giảm 10%; gói thứ 3 trong 7 ngày sau gói thứ 2 giảm 10%.
  • Mid-cycle add-on: tính amount = pricePerDay * daysLeft, hiển thị rõ cho user.
  • Cancel 1 chương trình trong combo → confirm: “Giá còn lại trở về {basePrice} từ kỳ sau”; chọn gói cao tiếp theo làm gói chính.
  • Đổi tier:
    • nâng cấp (Pro -> Pro Max) trong chu kỳ đang chạy -> áp dụng ngay, thu phần chênh lệch theo prorate.
    • hạ cấp (Pro Max -> Pro) trong chu kỳ đang chạy -> ghi nhận lịch đổi ở kỳ kế tiếp, không hoàn tiền phần còn lại của kỳ hiện tại.
  • One-time pass:
    • không có cơ chế downgrade/cancel hoàn tiền giữa kỳ,
    • nếu mua thêm gói khác thì áp dụng rule overlap/queue hiện hành.
  • Nếu hạ Pro Max -> Pro khi còn AI credit:
    • giữ nguyên số dư credit,
    • lock usage cho các feature vượt entitlement hiện tại.
  • Thay đổi credit/tháng: tăng hiệu lực ngay (prorate), giảm hiệu lực kỳ sau.
  • Promotion removal when cancel: update summary + email confirm.
  • UI visibility policy:
    • mechanism-first, chỉ show method khả dụng của cơ chế đang chọn.
    • không render đồng thời toàn bộ method list cho cả auto-renew và one-time.
  • Subscription:
    • Momo auto-renew token; Thẻ quốc tế (saved token).
    • Không hỗ trợ QR/Chuyển khoản cho subscription.
  • One-time (3/6):
    • Cho phép Momo, Thẻ, QR/Chuyển khoản (có hướng dẫn nếu cần).
  • Queue overlap:
    • gói auto-renew mua trong lúc one-time còn hạn sẽ chờ tới thời điểm one-time kết thúc mới kích hoạt.
  • Cancellation effect:
    • monthly/annual cancel không cắt quyền ngay; hết quyền vào cuối chu kỳ đã thanh toán.
  • Payment failure: inline error + CTA Thử lại, Chọn phương thức khác.
  • Lịch thu tự động: ngày mua gói tháng.
  • Retry D0/D1/D3/D5/D7; grace 7 ngày.
  • Trong grace: học bình thường, không cấp credit tháng mới; hiển thị nhắc thanh toán.
  • Hết grace chưa thanh toán: gói huỷ; muốn dùng lại phải đăng ký mới.
  • Không hỗ trợ self-serve refund trong active scope hiện tại.
  • Refund theo support/manual policy.
  • Auto-refund do lỗi chấm AI hệ thống vẫn áp dụng theo contract fairness.
  • Success page/modal:
    • Card summary: sản phẩm, profile, giá, promotion, chu kỳ.
    • Buttons: Bắt đầu học, Quản lý gói, Xem hoá đơn.
    • Credit pack: hiển thị credit balance mới + link Xem lịch sử credit.
    • Subscription: hiển thị bảng Profile → Billable → Phí kỳ này; link Lịch sử credit pre-filter theo profile.
  • Email/SMS: gửi hóa đơn PDF + chi tiết promotion + hướng dẫn cancel/upgrade.
  • Invoice info: nếu chọn doanh nghiệp → gắn vào email + admin export.
  • Preserve selections khi user quay lại modal/pricing.
  • Checkout context stored per user (session) → auto-clean khi hoàn tất hoặc sau 30 phút.
  • Promotions locked khi user ở bước thanh toán (timeout 10 phút).
  • Partial failure (payment success nhưng áp quyền lỗi) → show fallback Đang cấp quyền, poll status, escalate admin.
  • Gateway timeout → retry option + support contact.
  • Webhook delay → show pending state (spinner) + allow user tiếp tục học free sample trong lúc chờ.
  • Promotion conflict → hiển thị rule (ví dụ “Không thể áp dụng cùng lúc 2 mã”).
  • Email chưa verify hoặc thiếu số điện thoại liên hệ (trong flow Pro/course) -> chặn checkout và yêu cầu bổ sung ngay tại blocker; phone không cần verify OTP.
  • checkout_trigger_view, checkout_trigger_choose_pro, checkout_trigger_choose_promax.
  • checkout_profile_selected, checkout_promo_applied, checkout_payment_success, checkout_payment_fail.
  • bundle_discount_applied, bundle_discount_removed, credit_pack_purchased.
  • contact_blocker_shown, invoice_requested.
  • checkout_profile_billable_toggle, checkout_per_profile_summary_viewed.
  • 2026-03-16: Khóa checkout active theo canon mới: guest phải login trước checkout; hard gate là email verified + phone contact; blocker chỉ xử lý inline phone completion, không có UI đổi kênh xác thực.
  • 2026-03-02: Cập nhật contact gate theo baseline auth mới: checkout yêu cầu email đã verify; phone là thông tin liên hệ CS bắt buộc cho luồng mua Pro/đăng ký khóa học, không còn gate xác thực theo số điện thoại.
  • 2026-02-27: Chuẩn hoá offer structure theo mechanism-first: chọn Auto-renew | One-time trước, chỉ hiển thị cycle/method tương ứng theo lựa chọn, không show toàn bộ method cùng lúc.
  • 2026-02-27: Cập nhật cycle active: thêm Annual 12 tháng auto-renew, loại bỏ One-time 12 tháng; one-time chỉ còn 3/6.
  • 2026-02-21: Thêm default preselect minimum-eligible tier cho lock popup, thêm contract resume checkout ở đúng bước sau contact completion, và khóa no-self-serve-refund baseline.
  • 2026-02-20: Chuẩn hóa switching baseline đơn giản: upgrade hiệu lực ngay + prorate charge; downgrade hiệu lực kỳ kế tiếp và không hoàn tiền giữa kỳ; one-time không hỗ trợ downgrade/cancel refund giữa kỳ.
  • 2026-02-20: Refine active scope theo Product Discovery: tách hoàn toàn flow household/parent-child sang Product KID; mở cycle active thành Monthly + One-time 3/6/12 (yearly); thêm yearly dual-label và rule downgrade Pro Max -> Pro giữ credit nhưng lock usage ngoài entitlement (checkout contact detail tiếp tục được refine ở 2026-03-02 và 2026-03-16).
  • 2026-02-19: Chốt contact gate checkout giai đoạn đầu (legacy baseline, đã được thay bởi cập nhật 2026-03-02 và 2026-03-16).
  • 2026-02-18: Bổ sung required-data boundary cho checkout: không ép goal/learning profile, chỉ bắt buộc dữ liệu liên quan thanh toán.
  • 2026-02-17: Thêm locked-feature upgrade entry contract theo feature (Pro eligible vs Pro Max only), explicit package choice khi có 2 gói, fast-path checkout, và post-payment return theo ngữ cảnh.