Tất cả bài viết
Cẩm nangĐọc trong 8 phút

Apple và Google đều cho phép lùi ngày gia hạn gói đăng ký sau sự cố, nhưng giới hạn của hai bên hoàn toàn khác nhau

Khi ứng dụng của bạn ngừng hoạt động, bạn có thể lùi ngày gia hạn gói đăng ký thay vì chờ yêu cầu hoàn tiền. Bài viết giải thích cách hoạt động của việc lùi ngày gia hạn tối đa 90 ngày của Apple và tính năng hoãn thanh toán của Google Play, giới hạn của từng cửa hàng, và chi phí của mỗi lựa chọn.

Một tủ máy chủ với đèn cảnh báo màu hổ phách bên cạnh chiếc laptop hiển thị lịch, khoảnh khắc nhà phát triển quyết định lùi ngày gia hạn gói đăng ký sau sự cố

Điểm chính

  • App Store Server API của Apple cho phép nhà phát triển lùi ngày gia hạn của một gói đăng ký tự động gia hạn đang hoạt động và đã trả phí thêm từ 1 đến 90 ngày, để bù cho sự cố, sự kiện bị hủy hoặc buổi phát trực tiếp bị gián đoạn.
  • Apple cho phép lùi ngày gia hạn hai lần cho mỗi khách hàng trong vòng 365 ngày. Một khi đã có hiệu lực, việc lùi ngày gia hạn không thể đảo ngược, và Apple sẽ gửi email báo ngày gia hạn mới cho khách hàng.
  • Apple không lùi ngày gia hạn cho gói đăng ký đang trong thời gian ưu đãi miễn phí, đang thử lại thanh toán, đang trong thời gian ân hạn đã quá ngày hết hạn, hoặc đã hết hạn. Gói đăng ký cần có ít nhất một kỳ đã trả phí trước đó.
  • Những ngày được thêm qua việc lùi ngày gia hạn của Apple không được tính vào một năm dịch vụ trả phí giúp tỷ lệ chia sẻ doanh thu gói đăng ký của nhà phát triển tăng từ 70% lên 85%.
  • purchases.subscriptionsv2.defer của Google Play lùi ngày thanh toán tiếp theo của gói đăng ký, ít nhất một ngày và tối đa một năm cho mỗi lần gọi. Người dùng vẫn có toàn quyền truy cập mà không bị tính phí, và Google gửi thông báo SUBSCRIPTION_DEFERRED.
  • Lùi ngày gia hạn không trả lại tiền mặt, nên nhà phát triển giữ khoản thanh toán nhưng phải chịu chi phí tính toán, lưu trữ và lệnh gọi API trong những ngày được thêm mà không có lần gia hạn nào bù lại. Hoàn tiền thì trả lại giá đã mua, còn số tiền đã chi để phục vụ khách hàng đó thì không lấy lại được đồng nào.
  • Nếu sự cố khiến một giao dịch mua trong ứng dụng không được giao và Apple gửi CONSUMPTION_REQUEST, deliveryStatus trung thực là UNDELIVERED_SERVER_OUTAGE, và Apple yêu cầu consumptionPercentage bằng 0 với mọi trạng thái khác DELIVERED.

Thời gian ngừng hoạt động cho mọi người đăng ký một lý do hoàn tiền rõ ràng nhất, và bạn không thể ngăn họ dùng đến nó. Điều bạn có thể làm là trả lại những ngày đã mất trước khi ai đó yêu cầu. Cả hai cửa hàng ứng dụng đều cho phép bạn lùi ngày gia hạn gói đăng ký để khách hàng nhận thêm thời gian miễn phí thay vì tiền mặt. Apple giới hạn mỗi lần lùi ở 90 ngày và cho phép hai lần mỗi năm. Google cho phép hoãn thanh toán tối đa một năm cho mỗi lần gọi. Thủ tục, thông báo và chi phí bên dưới khác nhau đủ nhiều để một kế hoạch xử lý sự cố không thể áp dụng cho cả hai.

Sự cố ảnh hưởng thế nào đến rủi ro hoàn tiền của bạn

Quyết định hoàn tiền thuộc về cửa hàng, không phải bạn. Trên App Store, khách hàng gửi yêu cầu cho Apple và Apple quyết định. Bạn có thể nhận được thông báo CONSUMPTION_REQUEST và có 12 giờ để gửi dữ liệu sử dụng qua Send Consumption Information. Đó là toàn bộ tiếng nói của bạn.

Trên Google Play, người mua có thể được hoàn tiền trong vòng 48 giờ sau khi mua mà không cần hỏi ý bạn. Sau thời điểm đó, yêu cầu sẽ được chuyển đến bạn. Luồng duy nhất của Google yêu cầu bằng chứng từ bạn là một chargeback được đánh dấu để nhà phát triển xem xét, và bạn trả lời qua orders.reviewrefund trong vòng 24 giờ. Quyết định của ngân hàng về chargeback là quyết định cuối cùng.

Vậy là không cửa hàng nào cho bạn cách chặn hoàn tiền. Điều bạn kiểm soát được là người đăng ký có còn cảm thấy thiệt thòi khi dịch vụ hoạt động trở lại hay không. Thời gian đăng ký bổ sung, được cấp nhanh và thông báo rõ ràng, chính là công cụ mà cả hai cửa hàng tạo ra cho đúng mục đích đó.

Cách lùi ngày gia hạn gói đăng ký trên App Store

App Store Server API có hai endpoint cho việc này. Extend a Subscription Renewal Date tác động lên một gói đăng ký, được xác định bằng originalTransactionId. Extend Subscription Renewal Dates for All Active Subscribers tác động lên mọi người đăng ký đủ điều kiện của một productId, và bạn có thể giới hạn bằng storefrontCountryCodes khi sự cố chỉ ảnh hưởng đến một số khu vực.

Mỗi yêu cầu gồm ba thông tin: extendByDays, một số từ 1 đến 90; extendReasonCode; và requestIdentifier do bạn tạo. Mã lý do 3 nghĩa là sự cố dịch vụ hoặc ngừng hoạt động. Mã 1 là sự hài lòng của khách hàng, mã 2 là lý do khác, và mã 0 là không khai báo.

Những gói đăng ký nào Apple sẽ lùi ngày gia hạn

Chỉ các gói đăng ký tự động gia hạn đang hoạt động và có ít nhất một kỳ đã trả phí mới đủ điều kiện. Apple bỏ qua các trường hợp sau:

  • Gói đăng ký trong thời gian ưu đãi miễn phí, chẳng hạn bản dùng thử miễn phí.
  • Gói đăng ký không hoạt động đang ở trạng thái thử lại thanh toán.
  • Gói đăng ký trong thời gian ân hạn thanh toán có ngày hết hạn đã qua.
  • Gói đăng ký đã được lùi ngày gia hạn hai lần trong 365 ngày qua.
  • Gói đăng ký đã hết hạn.

Chia sẻ trong gia đình được áp dụng tự động. Khi Apple lùi ngày gia hạn của một gói đăng ký đã mua có hỗ trợ Chia sẻ trong gia đình, gói đăng ký của các thành viên trong gia đình cũng được lùi theo. Bạn không thể nhắm trực tiếp đến gói đăng ký của một thành viên gia đình.

Yêu cầu hàng loạt chạy chậm, vì vậy hãy theo dõi thông báo

Apple cho biết yêu cầu lùi ngày gia hạn cho tất cả người đăng ký đang hoạt động có thể mất vài giờ, thậm chí vài ngày, tùy theo số lượng người đăng ký của bạn. Phản hồi 200 chỉ có nghĩa là Apple đang xử lý. App Store Server Notifications V2 cho bạn biết kết quả:

Thông báoLoại phụÝ nghĩa
RENEWAL_EXTENDEDkhông cóNgày gia hạn của một gói đăng ký đã được lùi
RENEWAL_EXTENSIONFAILUREViệc lùi ngày gia hạn của một gói đăng ký thất bại
RENEWAL_EXTENSIONSUMMARYToàn bộ yêu cầu hàng loạt đã hoàn tất

Với mỗi FAILURE, hãy lấy originalTransactionId từ giao dịch đã ký trong payload và thử lại bằng endpoint dành cho một gói đăng ký. Nếu bạn muốn thăm dò định kỳ, Get Status of Subscription Renewal Date Extensions cho biết yêu cầu đã hoàn tất chưa và bao nhiêu lần lùi ngày thành công hoặc thất bại.

Cách hoạt động của tính năng hoãn thanh toán trên Google Play

Phiên bản của Google là purchases.subscriptionsv2.defer, được gọi một lần cho mỗi mã thông báo mua hàng. Phần thân yêu cầu chứa một deferralContext gồm ba trường. etag lấy từ purchases.subscriptionsv2.get, và lệnh gọi sẽ thất bại nếu nó không khớp với etag mới nhất của gói đăng ký. deferDuration cho biết cần lùi ngày bao xa. Còn validateOnly, khi là true, sẽ chạy yêu cầu dưới dạng chạy thử mà không thay đổi gói đăng ký.

Hướng dẫn thanh toán của Google đặt phạm vi từ một ngày đến một năm cho mỗi lệnh gọi API. Muốn hoãn lâu hơn, hãy gọi lại trước khi ngày hết hạn mới đến. Với gói đăng ký tự động gia hạn, việc hoãn sẽ dời ngày gia hạn tiếp theo. Với gói trả trước, nó dời thời điểm hết hạn. Với gói đăng ký có tiện ích bổ sung, mọi mục đều được hoãn cùng một khoảng thời gian. Phản hồi liệt kê expiryTime mới của từng mục.

Trong thời gian hoãn, người dùng vẫn đăng ký với toàn quyền truy cập và không bị tính phí cho thời gian thêm. Google gửi thông báo theo thời gian thực cho nhà phát triển SUBSCRIPTION_DEFERRED. Phương thức cũ purchases.subscriptions.defer đã bị ngừng hỗ trợ, nên mã mới nên dùng phương thức v2.

Google không báo cho khách hàng của bạn, nên bạn phải tự làm

Apple gửi email cho khách hàng sau mỗi lần lùi ngày gia hạn thành công. Hướng dẫn thanh toán của Google hoàn toàn không đề cập đến thông báo nào cho người dùng. Nếu mục đích chính là ngăn yêu cầu hoàn tiền, người đăng ký phải biết rằng họ có thêm thời gian. Hãy tự thông báo, trong ứng dụng và qua email, và nói rõ bao nhiêu ngày cùng lý do.

So sánh Apple và Google

Apple App StoreGoogle Play
APIExtend a Subscription Renewal Date, cùng một endpoint hàng loạtpurchases.subscriptionsv2.defer
Thời lượng mỗi yêu cầu1 đến 90 ngày1 ngày đến 1 năm
Tần suấtHai lần mỗi khách hàng trong 365 ngàyKhông nêu giới hạn; gọi lại trước ngày hết hạn mới
Tùy chọn hàng loạtMột lệnh gọi cho mỗi productId, có thể lọc theo storefrontMột lệnh gọi cho mỗi mã thông báo mua hàng
Dùng thử miễn phíKhông đủ điều kiệnKhông được đề cập trong hướng dẫn của Google
Thông báoRENEWAL_EXTENDED, RENEWAL_EXTENSIONSUBSCRIPTION_DEFERRED
Báo cho khách hàngApple gửi emailDo bạn tự làm
Có thể đảo ngượcKhôngKhông được đề cập trong hướng dẫn của Google

Chi phí của việc lùi ngày gia hạn so với hoàn tiền

Hoàn tiền và lùi ngày gia hạn lấy tiền từ những nơi khác nhau. Hoàn tiền trả lại số tiền khách hàng đã thanh toán cho kỳ đó. Mọi khoản bạn đã chi để phục vụ khách hàng đó vẫn mất: tài nguyên tính toán cho từng phiên, lệnh gọi API mô hình, lưu trữ, và mọi khoản chi trả cho nhà sáng tạo có nội dung mà họ đã dùng.

Lùi ngày gia hạn thì giữ lại khoản thanh toán. Cái giá phải trả là dịch vụ bạn cung cấp mà không có lần gia hạn nào chi trả. Mỗi ngày được thêm, một người đăng ký đang hoạt động vẫn tiếp tục phát sinh những hóa đơn như cũ. Với người dùng ít, chi phí gần như bằng không. Với người dùng nhiều một tính năng AI, 30 ngày thêm có thể là 30 ngày gọi mô hình mà không có doanh thu nào bù lại. Hãy định số ngày theo thời gian sự cố, không theo lời xin lỗi bạn muốn đưa ra.

Thứ bạn mấtHoàn tiềnLùi ngày gia hạn
Khoản thanh toán gói đăng kýTrả lại cho khách hàngĐược giữ lại
Chi phí đã chi để phục vụ khách hàngMấtMất
Tính toán, lưu trữ và lệnh gọi API trong những ngày được thêmKhông có, quyền truy cập kết thúcBạn chi trả, chưa có lần gia hạn
Gói đăng ký sau đóKết thúc nếu hoàn tiền thu hồi quyền truy cậpVẫn hoạt động, gia hạn vào ngày mới

Chi phí hoa hồng trên Apple

Apple trả 70% mỗi lần gia hạn trong năm đầu tiên sử dụng dịch vụ trả phí của một người đăng ký và 85% sau đó. Trang về gói đăng ký của Apple cho biết những ngày lùi gia hạn không được tính là ngày dịch vụ trả phí. Vì vậy, lùi 30 ngày sẽ làm thời điểm người đăng ký đó chuyển sang mức 85% chậm thêm 30 ngày. Nếu bạn tham gia App Store Small Business Program, bạn vốn đã nhận 85%, và chi phí này không áp dụng.

Chi phí chargeback trên Google Play

Với các đơn hàng đặt sau ngày 3 tháng 8 năm 2026, một chargeback mà chủ thẻ thắng sẽ khiến nhà phát triển Google Play mất giá mua trừ phí dịch vụ của Play, cộng thêm phí ngân hàng. Một sự cố chính là loại sự kiện khiến khách hàng bực bội tìm đến ngân hàng của họ. Một lần hoãn thanh toán đến với họ trước sẽ rẻ hơn một vụ tranh chấp mà bạn không thể lật ngược.

Một tờ lịch treo tường có ngày được dời về sau bên cạnh điện thoại và hóa đơn lưu trữ đám mây, những chi phí nhà phát triển cân nhắc trước khi lùi ngày gia hạn gói đăng ký sau sự cố

Khi lùi ngày gia hạn không phải công cụ phù hợp

Giao dịch mua không phải gói đăng ký

Việc lùi ngày gia hạn chỉ áp dụng cho gói đăng ký. Nếu sự cố làm hỏng một vật phẩm tiêu hao hoặc một lần mở khóa vĩnh viễn, hãy giao lại vật phẩm đó. Nếu Apple gửi CONSUMPTION_REQUEST cho giao dịch đó, hãy báo cáo đúng những gì đã xảy ra. Trường deliveryStatus của Apple có một giá trị dành cho trường hợp này, UNDELIVERED_SERVER_OUTAGE, và Apple cho biết mọi trạng thái khác DELIVERED đều phải đi kèm consumptionPercentage bằng 0.

Khách hàng đã dùng hết cả hai lần lùi ngày của Apple

Giới hạn của Apple là hai lần lùi ngày gia hạn cho mỗi khách hàng trong 365 ngày. Hai sự cố trong một năm sẽ dùng hết cả hai, và sự cố thứ ba khiến bạn không còn gì để bù đắp qua cửa hàng. Hãy theo dõi số lần lùi ngày mà mỗi originalTransactionId đã dùng, để các thông báo FAILURE của yêu cầu hàng loạt không làm bạn bất ngờ.

Khách hàng đang dùng thử miễn phí

Apple không lùi ngày gia hạn cho gói đăng ký trong thời gian ưu đãi miễn phí. Người dùng thử mất những ngày miễn phí, không phải ngày đã trả tiền, nên rủi ro hoàn tiền thấp. Nếu muốn bù đắp cho họ, một tin nhắn trong ứng dụng tốn ít chi phí hơn bất kỳ lệnh gọi API nào.

Danh sách kiểm tra cho sự cố tiếp theo

  • Ghi lại thời điểm sự cố bắt đầu và kết thúc, cùng các sản phẩm và khu vực bị ảnh hưởng.
  • Chọn số ngày đủ bù cho thời gian đã mất. Trên Apple, dùng mã lý do 3 và giữ trong khoảng 1 đến 90.
  • Trên Apple, gửi một yêu cầu hàng loạt cho mỗi productId, giới hạn bằng storefrontCountryCodes khi chỉ một số khu vực bị ảnh hưởng.
  • Theo dõi RENEWAL_EXTENSION FAILURE và thử lại từng trường hợp bằng endpoint dành cho một gói đăng ký.
  • Trên Google Play, lặp qua các mã thông báo mua hàng đang hoạt động, đọc từng etag, chạy với validateOnly trước, rồi mới hoãn thật.
  • Tự thông báo cho người đăng ký Google Play về thời gian được thêm, vì Google sẽ không làm việc đó.
  • Cập nhật thời hạn quyền truy cập dựa trên RENEWAL_EXTENDED và SUBSCRIPTION_DEFERRED, không dựa trên phép tính ngày của riêng bạn.
  • Lưu nhật ký sử dụng theo từng tài khoản, để nếu yêu cầu hoàn tiền hoặc chargeback vẫn xảy ra, bằng chứng của bạn sẵn sàng trong 12 giờ cho Apple và 24 giờ cho Google.

Câu hỏi thường gặp

Tôi có thể lùi ngày gia hạn gói đăng ký App Store bao nhiêu lần?
Hai lần cho mỗi khách hàng trong vòng 365 ngày. Mỗi lần có thể từ 1 đến 90 ngày, và gói đăng ký đã được lùi hai lần trong 365 ngày qua sẽ không đủ điều kiện cho lần tiếp theo.
Apple có báo cho khách hàng khi tôi lùi ngày gia hạn gói đăng ký của họ không?
Có. Sau khi lùi ngày gia hạn thành công, Apple gửi email cho khách hàng kèm ngày gia hạn mới. Hướng dẫn thanh toán của Google Play không mô tả thông báo nào như vậy, nên trên Android bạn nên tự thông báo cho người đăng ký.
Tôi có thể hoãn gói đăng ký Google Play trong bao lâu?
Hướng dẫn thanh toán của Google nêu từ một ngày đến một năm cho mỗi lệnh gọi purchases.subscriptionsv2.defer. Muốn hoãn thêm, hãy gọi lại API trước khi ngày hết hạn mới đến. Người dùng vẫn có toàn quyền truy cập và không bị tính phí cho thời gian được hoãn.
Tôi có thể hoàn tác việc lùi ngày gia hạn của Apple không?
Không. Apple cho biết sau khi việc lùi ngày gia hạn gói đăng ký có hiệu lực, không có cách nào đảo ngược. Hãy kiểm tra sản phẩm, số ngày và các storefront trước khi gửi yêu cầu.
Việc lùi ngày gia hạn có ảnh hưởng đến tỷ lệ chia sẻ doanh thu 85% của tôi trên Apple không?
Có. Apple không tính những ngày lùi gia hạn là ngày dịch vụ trả phí, nên mỗi lần lùi sẽ làm chậm thời điểm người đăng ký chuyển từ 70% sang 85% đúng bằng số ngày bạn đã thêm. Nhà phát triển tham gia App Store Small Business Program vốn đã nhận 85%.
Tôi có thể lùi ngày gia hạn cho gói đăng ký đang dùng thử miễn phí không?
Trên App Store thì không. Apple loại trừ các gói đăng ký trong thời gian ưu đãi miễn phí, cùng với trạng thái thử lại thanh toán, thời gian ân hạn đã hết và các gói đăng ký đã hết hạn. Chỉ những gói đăng ký đang hoạt động có ít nhất một kỳ đã trả phí mới đủ điều kiện.

Nguồn và tài liệu đọc thêm

RefundHalt

Chế độ tự động xử lý hoàn tiền cho App Store và Google Play

Đọc tiếp

Yêu cầu hoàn tiền tiếp theo đã đang trên đường đến.

Thiết lập RefundHalt trong khoảng thời gian bạn cần để đọc thêm một email hỗ trợ về khoản hoàn tiền mà mình chưa kịp phản biện.