API Giao dịch mua vô hiệu trên Google Play cung cấp danh sách các đơn đặt hàng được liên kết với các giao dịch mua mà người dùng đã vô hiệu. Bạn có thể dùng thông tin từ danh sách này để triển khai hệ thống thu hồi nhằm ngăn người dùng truy cập vào sản phẩm trong các đơn đặt hàng đó.
API này áp dụng cho các đơn đặt hàng một lần trong ứng dụng và Gói thuê bao trong ứng dụng.
Một giao dịch mua có thể được vô hiệu theo các cách sau:
- Người dùng yêu cầu hoàn tiền cho đơn đặt hàng.
- Người dùng huỷ đơn đặt hàng.
- Đơn đặt hàng được hoàn tiền.
Nhà phát triển huỷ hoặc hoàn tiền cho đơn đặt hàng.
Google huỷ hoặc hoàn tiền cho đơn đặt hàng.
Bằng cách sử dụng API này, bạn có thể tạo ra trải nghiệm cân bằng và công bằng hơn cho tất cả người dùng ứng dụng, đặc biệt nếu ứng dụng của bạn là một trò chơi.
Giành được quyền truy cập
Để làm việc với Voided Purchases API, bạn cần có quyền xem thông tin tài chính. Bạn cấp quyền bằng ứng dụng OAuth hoặc tài khoản dịch vụ của bạn. Nếu bạn đang sử dụng tài khoản dịch vụ, hãy bật nút "Xem thông tin tài chính báo cáo" quyền trong tài khoản này.
Để tìm hiểu thêm về cách nhận quyền truy cập được cấp phép vào API Nhà phát triển Google Play, hãy xem các hướng dẫn sau:
Xem giao dịch mua vô hiệu
Sử dụng phương thức GET
để yêu cầu danh sách các giao dịch mua vô hiệu. Trong yêu cầu của bạn,
đưa vào tên gói đủ điều kiện cho ứng dụng của bạn, chẳng hạn như
com.google.android.apps.maps
—và mã thông báo uỷ quyền
nhận được khi có quyền truy cập vào API.
GET https://www.googleapis.com/androidpublisher/v3/applications/ your_package_name/purchases/voidedpurchases?access_token=your_auth_token
Bạn cũng có thể thêm các thông số sau vào yêu cầu của mình, mỗi thông số tuỳ chọn:
- startTime
Thời gian tính bằng mili giây kể từ thời gian bắt đầu của hệ thống Unix của thời gian giao dịch mua vô hiệu mà bạn muốn xem trong phản hồi. Theo mặc định,
startTime
được đặt thành 30 ngày trước.API chỉ có thể hiển thị các giao dịch mua vô hiệu đã xảy ra trong quá khứ 30 ngày. Các giao dịch mua hàng cũ vô hiệu sẽ không được đưa vào phản hồi, bất kể giá trị bạn đã cung cấp cho
startTime
.- endTime
Thời gian tính bằng mili giây kể từ thời gian bắt đầu của hệ thống Unix của giao dịch mua vô hiệu mà bạn muốn xem trong phản hồi. Theo mặc định,
endTime
đã được đặt thành thời gian hiện tại.- kết quả tối đa
- Số lượng giao dịch mua vô hiệu tối đa xuất hiện trong mỗi câu trả lời. Theo mặc định, giá trị này là 1000. Xin lưu ý rằng giá trị tối đa cho thông số này là 1000.
- mã thông báo
- Mã thông báo tiếp tục từ câu trả lời trước, cho phép bạn xem thêm kết quả.
- loại
Loại giao dịch mua vô hiệu xuất hiện trong mỗi câu trả lời. Nếu đặt là 0, chỉ những giao dịch mua hàng trong ứng dụng vô hiệu mới được trả lại. Nếu bạn đặt chính sách này là 1, thì cả hai giá trị này trong ứng dụng đều bị vô hiệu các giao dịch mua và giao dịch mua gói thuê bao vô hiệu sẽ được trả lại. Giá trị mặc định là 0.
- includeQuantityBasedPartialRefund
Liệu có bao gồm các giao dịch mua hàng vô hiệu đối với khoản hoàn tiền một phần theo số lượng hay không, Ưu đãi này chỉ áp dụng cho giao dịch mua số lượng nhiều. Nếu giá trị là
true
,voidedQuantity
có thể trả lại các giao dịch mua vô hiệu bổ sung cho biết số tiền hoàn lại của một khoản tiền hoàn lại một phần theo số lượng. Chiến lược phát hành đĩa đơn giá trị mặc định làfalse
.
Phản hồi là một chuỗi JSON chứa danh sách các giao dịch mua vô hiệu. Nếu có
có nhiều kết quả hơn số kết quả đã chỉ định trong tham số yêu cầu maxResults
, phản hồi sẽ bao gồm giá trị nextPageToken
mà bạn có thể chuyển vào
để yêu cầu xem thêm kết quả. Kết quả đầu tiên trong danh sách cho thấy
giao dịch mua vô hiệu cũ nhất.
{ "tokenPagination": { "nextPageToken": "next_page_token" }, "voidedPurchases": [ { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "some_purchase_token", "purchaseTimeMillis": "1468825200000", "voidedTimeMillis": "1469430000000", "orderId": "some_order_id", "voidedSource": "0", "voidedReason": "4" }, { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "some_other_purchase_token", "purchaseTimeMillis": "1468825100000", "voidedTimeMillis": "1470034800000", "orderId": "some_other_order_id", "voidedSource": "2", "voidedReason": "5" }, ] }
Hạn mức
Voided Purchases API đặt các hạn mức sau đây cho từng gói:
- 6000 truy vấn mỗi ngày. (Ngày bắt đầu và kết thúc lúc nửa đêm theo Giờ Thái Bình Dương.)
- 30 truy vấn trong khoảng thời gian 30 giây bất kỳ.
Nguyên tắc đối với các yêu cầu ban đầu
Trong yêu cầu API ban đầu của mình, bạn có thể muốn tìm nạp tất cả dữ liệu có sẵn cho ứng dụng của bạn. Mặc dù ít có khả năng nhưng quá trình này có thể làm cạn kiệt hạn mức hằng ngày của bạn. Người nhận thu thập dữ liệu về các giao dịch mua hàng vô hiệu theo cách an toàn và nhất quán hơn, hãy làm theo các phương pháp hay nhất:
- Sử dụng giá trị mặc định cho tham số
maxResults
. Bằng cách đó, nếu bạn sử dụng toàn bộ hạn mức truy vấn của bạn trong một ngày, bạn có thể truy xuất thông tin chi tiết là 6.000.000 các giao dịch mua hàng vô hiệu. - Nếu câu trả lời có chứa giá trị cho
nextPageToken
, hãy chỉ định giá trị này chotoken
trong yêu cầu tiếp theo.
Các phương pháp hay nhất
Khi sử dụng API này trong ứng dụng của bạn, hãy nhớ rằng có rất nhiều lý do để vô hiệu hoá một giao dịch mua và không có giải pháp nào hiệu quả trong mọi trường hợp. Bạn nên cân nhắc đến người dùng khi thiết kế quy trình thu hồi chính sách và chiến lược của mình. Để làm như vậy, bạn có thể áp dụng các phương pháp được đề xuất sau:
- Sử dụng API này như một trong nhiều yếu tố trong một chiến lược toàn diện để giải quyết hành vi không mong muốn. Việc thu hồi quyền truy cập vào sản phẩm trong ứng dụng thường hiệu quả hơn khi được kết hợp với một ứng dụng có mức giá hợp lý cho lượt mua hàng trong ứng dụng, thiết kế ứng dụng ngăn chặn hành vi không mong muốn, một cơ sở người dùng mạnh mẽ văn hoá từ chối hành vi như vậy và hỗ trợ người dùng phản hồi nhanh chóng và hiệu quả các kênh.
- Quản lý chính sách thu hồi của bạn một cách thống nhất để đảm bảo sự công bằng cho tất cả người dùng.
- Hãy cân nhắc tạo một chính sách theo giai đoạn khi xử lý các hành vi không mong muốn. Cho Ví dụ: bắt đầu bằng các cảnh báo trong ứng dụng đối với các trường hợp vi phạm sớm, sau đó báo cáo các phản hồi khi hành vi không mong muốn của người dùng vẫn tiếp tục. Khi không còn cách nào khác, bạn có thể ngăn người dùng tương tác với ứng dụng của bạn.
- Khi bạn đưa ra chính sách thu hồi và mỗi lần cập nhật chính sách này, hãy sử dụng các kênh tiếp cận khác của ứng dụng để thông báo cho người dùng về các thay đổi. Cung cấp cho người dùng của bạn bạn cần dành thời gian để hiểu rõ những thay đổi này trước khi chúng có hiệu lực trong ứng dụng của bạn.
- Hãy minh bạch với người dùng và thông báo cho họ bất cứ khi nào bạn thực hiện hành động, chẳng hạn như thu hồi quyền truy cập của họ vào sản phẩm trong ứng dụng. Tốt nhất là người dùng có thể tranh chấp quyết định của mình và những tranh chấp đó sẽ được xử lý công bằng.
- Theo dõi các biểu mẫu phản hồi và diễn đàn cộng đồng để nắm được những điều thúc đẩy người dùng chúng hành xử theo cách không mong muốn và cách chúng thực hiện hành vi đó. Hành động dựa trên các thông tin chuyên sâu là tuyến phòng vệ đầu tiên.