Quản lý gói thuê bao và giao dịch mua hàng một lần

Bạn có thể cần phải áp dụng các biện pháp quản lý đối với gói thuê bao hoặc giao dịch mua hàng một lần như một phần công việc hằng ngày. Ví dụ: bộ phận dịch vụ khách hàng có thể cần hoàn tiền toàn bộ hoặc một phần cho người dùng hoặc bạn có thể cần thu hồi trong một số trường hợp. Bạn có thể quản lý đơn đặt hàng qua Play Console hoặc nếu bạn muốn quản lý chúng từ hệ thống của riêng mình, bạn có thể thực hiện điều đó bằng cách sử dụng API Nhà phát triển Google Play.

Huỷ gói thuê bao

Người dùng có thể huỷ gói thuê bao trên Google Play bất cứ lúc nào bằng Cửa hàng Play. tuy nhiên, bạn cũng phải cung cấp tuỳ chọn để người dùng huỷ gói thuê bao trong ứng dụng và trên trang web của bạn (nếu có).

Cách dễ nhất để cho phép người dùng tự nguyện huỷ là liên kết sâu đến Cửa hàng Play, nơi họ có thể xem và quản lý gói thuê bao của họ.

Bạn cũng có thể cần kích hoạt thao tác huỷ trong phần phụ trợ. purchases.subscriptions.cancel cho phép bạn huỷ giao dịch mua gói thuê bao. Ví dụ: bạn có thể sử dụng phương thức này để từ chối một dịch vụ cũ. Việc huỷ gói thuê bao sẽ không hoàn lại tiền và người dùng tiếp tục sẽ có quyền truy cập cho đến khi kết thúc kỳ thanh toán hiện tại. Việc huỷ gói thuê bao bằng phương thức này sẽ ngăn người dùng khôi phục gói thuê bao đó trong Cửa hàng Play, nhưng người dùng vẫn có thể đăng ký lại thông qua ứng dụng của bạn nếu họ cần thiết.

Thực hiện hành động này sẽ kích hoạt một nhà phát triển SUBSCRIPTION_CANCELED theo thời gian thực . Xử lý những trường hợp huỷ này theo mô tả trong Huỷ.

Hoãn thanh toán

Sử dụng subscriptions.defer để gia hạn thời hạn sử dụng cho một gói thuê bao. Trong thời gian hoãn, người dùng vẫn đăng ký nội dung của bạn mặc dù không bị tính phí cho khoản phí bổ sung bất cứ lúc nào. Khi bạn hoãn thanh toán cho một gói thuê bao, thông tin trạng thái sẽ được cập nhật tương ứng và bạn thấy giá trị này được phản ánh trong trường expiryTime trong thông tin về trạng thái mua hàng:

  • Đối với các gói thuê bao định kỳ đang hoạt động, khoản thanh toán trả sau sẽ kéo dài thêm ngày gia hạn.
  • Đối với các gói trả trước, chế độ thanh toán trả sau sẽ kéo dài thời gian hết hạn.

Một số ví dụ về cách bạn có thể sử dụng phương thức thanh toán trả sau:

  • Tặng quyền truy cập miễn phí cho người dùng dưới dạng ưu đãi đặc biệt, chẳng hạn như tặng một tuần miễn phí cho những người đăng ký hiện tại đã trả lời bản khảo sát phản hồi.
  • Cung cấp cho khách hàng quyền truy cập miễn phí như một hành động chăm sóc khách hàng, chẳng hạn như sau sự cố ngừng dịch vụ kéo dài có thể đã ảnh hưởng đến khả năng họ sử dụng dịch vụ của bạn.

Hệ thống có thể hoãn khoản thanh toán chỉ trong một ngày và tối đa một năm cho mỗi lệnh gọi API. Để hoãn việc ngừng sử dụng quyền thêm nữa, hãy gọi lại API trước khi đến ngày hết hạn mới.

Thực hiện hành động này sẽ kích hoạt một nhà phát triển SUBSCRIPTION_DEFERRED theo thời gian thực . Xem phần Hoãn thanh toán cho người đăng ký trong phần Giới thiệu về gói thuê bao để tìm hiểu cách xử lý những sự kiện này.

Ví dụ:

  1. Dịch vụ truyền trực tuyến Mục tiêu thể dục muốn chạy quảng cáo cho khuyến khích tập thể dục thường xuyên vào tháng 2.

  2. Họ quyết định cung cấp thêm một tháng sử dụng dịch vụ cho bất kỳ người đăng ký nào những người tập thể dục với Mục tiêu thể dục ít nhất 10 lần trong tháng Tháng 2.

  3. Họ theo dõi kết quả của thử thách và vào ngày 1 tháng 3, họ gọi API subscriptions.defer cho mọi giao dịch mua gói thuê bao đang hoạt động thuộc về người dùng đáp ứng thách thức trong tháng 2.

  4. Những người dùng này sẽ được hưởng thêm một tháng tập thể dục thường xuyên video không mất phí và người dùng cho tất cả bạn bè của họ biết cách Mục tiêu thể dục giúp trẻ luôn khoẻ mạnh!

Vấn đề về việc hoàn tiền và thu hồi

Trong nhiều trường hợp, bạn có thể muốn hoàn tiền hoặc thu hồi quyền truy cập vào một gói thuê bao hoặc giao dịch mua hàng một lần.

Hoàn tiền toàn bộ cho một đơn đặt hàng theo mã đơn hàng

Với orders.refund API, bạn có thể hoàn lại toàn bộ tiền cho mọi đơn đặt hàng trong vòng ba năm kể từ khi mua. Phương thức orders.refund nhận được một tham số thu hồi cho biết liệu có hay không sẽ bị thu hồi quyền truy cập ngoài việc hoàn tiền.

Nếu bạn đưa ra lệnh thu hồi với lệnh gọi hoàn tiền cho giao dịch mua gói thuê bao, gói thuê bao sẽ bị chấm dứt ngay lập tức và kích hoạt một SUBSCRIPTION_REVOKED Thông báo theo thời gian thực dành cho nhà phát triển. Đọc thông tin quản lý vòng đời của gói thuê bao hướng dẫn phần Thu hồi để tìm hiểu cách xử lý những sự kiện này.

Ví dụ:

  1. Để chào mừng ngày khởi đầu của World Cup mới, ứng dụng thể thao điện tử Tổ chức Football-Not-Soccer quyết định rút thăm tặng áo thi đấu ảo miễn phí cho tất cả người dùng mua bộ công cụ mới cho đội nhóm trong 24 giờ đầu tiên.

  2. Môn Football-Not-Soccer sử dụng orders.refund API mà không truyền tham số thu hồi để hoàn tiền cho giao dịch mua áo thi đấu người chiến thắng.

Thu hồi và hoàn tiền cho gói thuê bao bằng mã thông báo giao dịch mua

Đối với một số trường hợp sử dụng nhất định, bạn có thể cần thu hồi quyền truy cập vào gói thuê bao của người dùng và hoàn tiền. Play Billing cung cấp các phương thức thu hồi, bao gồm cả phương thức thu hồi tiền hoàn lại và tiền hoàn lại theo tỷ lệ thông qua subscriptionsv2.revoke API. Với điểm cuối này, bạn có thể chỉ định revocationContext để xác định cách tính khoản tiền hoàn lại.

Thực hiện hành động này sẽ kích hoạt một Nhà phát triển SUBSCRIPTION_REVOKED theo thời gian thực Thông báo. Ứng dụng của bạn phải xử lý các trường hợp huỷ này theo mô tả trong Thu hồi.

Ví dụ:

  • Mua bằng mã thông báo giao dịch mua 1a2b3c4d5e6f7g8h9i0j
  • Ứng dụng có tên gói là com.your.app
  • Mục đích hoàn lại tiền theo tỷ lệ

Yêu cầu POST qua HTTP:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke

Nội dung yêu cầu:

{
  "revocationContext": {
    "proratedRefund": {}
  }
}

Hoàn tiền toàn bộ

Nếu bạn cần phải chấm dứt gói thuê bao và hoàn lại toàn bộ phí kỳ thanh toán hiện tại, hoàn lại toàn bộ tiền. Sử dụng purchases.subscriptionsv2.revoke và đặt "fullRefund": {} làm loại hoàn tiền.

Ví dụ:

  1. Maria có gói thuê bao 30 ngày tự động gia hạn để xem trực tuyến SuperMovies hàng tháng. Maria gặp phải một số sự cố kỹ thuật khiến cô không thể truy cập vào nội dung. Cô ấy liên hệ với bộ phận dịch vụ khách hàng vào ngày thanh toán thứ 3 cho biết cô chưa bao giờ có quyền truy cập vào gói thuê bao đó.

  2. Dịch vụ khách hàng tìm thấy thông tin về giao dịch mua gói thuê bao của Maria trong hệ thống của họ và kích hoạt một lệnh gọi đến purchases.subscriptionsv2.revoke yêu cầu hoàn lại toàn bộ tiền.

  3. Dịch vụ khách hàng nói với Maria rằng cô ấy phải nhận được 100% doanh thu giá thuê bao đã được hoàn lại và cô ấy không đăng ký gói đó nữa.

Hoàn tiền theo tỷ lệ

Trường hợp bạn cần chấm dứt gói thuê bao và hoàn lại một phần số tiền còn lại thời gian cấp quyền, hoàn lại tiền theo tỷ lệ. Sử dụng purchases.subscriptionsv2.revoke và đặt "proratedRefund": {} làm loại hoàn tiền.

Ví dụ:

  1. Maria có gói thuê bao 30 ngày tự động gia hạn để xem trực tuyến SuperMovies hàng tháng. Cô đã sử dụng dịch vụ này được một thời gian. Maria liên hệ với bộ phận dịch vụ khách hàng vào ngày 15 của chu kỳ thanh toán, trong đó nói rằng cô đang chuyển ra nước ngoài và sẽ không thể sử dụng dịch vụ này nữa khi bắt đầu ngày tiếp theo.

  2. Dịch vụ khách hàng tìm thấy thông tin về giao dịch mua gói thuê bao của Maria trong hệ thống của họ và kích hoạt một lệnh gọi đến purchases.subscriptionsv2.revoke yêu cầu hoàn tiền theo tỷ lệ.

  3. Dịch vụ khách hàng nói với Maria rằng cô ấy nên nhận được khoảng 50% doanh thu giá của gói thuê bao đã được hoàn lại và quyền truy cập vào dịch vụ đó bị chấm dứt ngay lập tức.