Tài nguyên: ProductPurchase
Tài nguyên ProductPurchase cho biết trạng thái của giao dịch mua sản phẩm trong ứng dụng của người dùng.
| Biểu diễn dưới dạng JSON |
|---|
{ "kind": string, "purchaseTimeMillis": string, "purchaseState": integer, "consumptionState": integer, "developerPayload": string, "orderId": string, "purchaseType": integer, "acknowledgementState": integer, "purchaseToken": string, "productId": string, "quantity": integer, "obfuscatedExternalAccountId": string, "obfuscatedExternalProfileId": string, "regionCode": string, "refundableQuantity": integer } |
| Trường | |
|---|---|
kind |
Loại này đại diện cho một đối tượng inappPurchase trong dịch vụ androidpublisher. |
purchaseTimeMillis |
Thời gian mua sản phẩm tính bằng mili giây kể từ thời gian bắt đầu của hệ thống (ngày 1 tháng 1 năm 1970). |
purchaseState |
Trạng thái mua hàng của đơn đặt hàng. Giá trị có thể là: 0. Đã mua 1. Đã huỷ 2. Đang chờ xử lý |
consumptionState |
Trạng thái sử dụng của sản phẩm trong ứng dụng. Giá trị có thể là: 0. Chưa được sử dụng 1. Đã tiêu thụ |
developerPayload |
Chuỗi do nhà phát triển chỉ định chứa thông tin bổ sung về đơn đặt hàng. |
orderId |
Mã đơn đặt hàng được liên kết với giao dịch mua sản phẩm trong ứng dụng. |
purchaseType |
Loại giao dịch mua sản phẩm trong ứng dụng. Trường này chỉ được đặt nếu giao dịch mua này không được thực hiện bằng quy trình thanh toán tiêu chuẩn trong ứng dụng. Giá trị có thể là: 0. Kiểm thử (tức là mua từ tài khoản kiểm thử cấp phép) 1. Khuyến mãi (tức là mua bằng mã khuyến mãi). Không bao gồm giao dịch mua bằng Play Points. 2. Có tặng thưởng (tức là từ việc xem quảng cáo dạng video thay vì trả tiền) |
acknowledgementState |
Trạng thái xác nhận của sản phẩm trong ứng dụng. Giá trị có thể là: 0. Chưa được xác nhận 1. Đã xác nhận |
purchaseToken |
Mã thông báo mua hàng được tạo để xác định giao dịch mua này. Có thể không có. |
productId |
SKU sản phẩm trong ứng dụng. Có thể không có. |
quantity |
Số lượng liên quan đến giao dịch mua sản phẩm trong ứng dụng. Nếu không có, số lượng là 1. |
obfuscatedExternalAccountId |
Một phiên bản bị làm rối của mã nhận dạng được liên kết duy nhất với tài khoản của người dùng trong ứng dụng của bạn. Chỉ xuất hiện nếu được chỉ định bằng https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid khi giao dịch mua được thực hiện. |
obfuscatedExternalProfileId |
Một phiên bản bị làm rối mã nguồn của mã nhận dạng được liên kết riêng biệt với hồ sơ người dùng trong ứng dụng của bạn. Chỉ xuất hiện nếu được chỉ định bằng https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid khi giao dịch mua được thực hiện. |
regionCode |
Mã khu vực thanh toán gồm 2 chữ cái theo chuẩn ISO 3166-1 của người dùng tại thời điểm cấp sản phẩm. |
refundableQuantity |
Số lượng đủ điều kiện hoàn tiền, tức là số lượng chưa được hoàn tiền. Giá trị này phản ánh các khoản hoàn tiền một phần và hoàn tiền toàn bộ dựa trên số lượng. |
Phương thức |
|
|---|---|
|
Xác nhận giao dịch mua một mặt hàng trong ứng dụng. |
|
Tiêu thụ một giao dịch mua cho một mặt hàng trong ứng dụng. |
|
Kiểm tra trạng thái mua và sử dụng của một mặt hàng trong ứng dụng. |
Mã lỗi
Các thao tác của tài nguyên này sẽ trả về các mã lỗi HTTP sau:
| Mã lỗi | Lý do | Mô tả | Độ phân giải |
|---|---|---|---|
400 |
invalidPurchaseState |
Giao dịch mua không ở trạng thái hợp lệ để thực hiện thao tác đã yêu cầu. Ví dụ: bạn có thể đang cố gắng xác nhận một giao dịch mua đã được sử dụng hoặc huỷ một gói thuê bao không còn hoạt động. | Kiểm tra trạng thái hiện tại của tài nguyên bằng cách sử dụng Get API tương ứng trước khi thử thực hiện thao tác. Đảm bảo tài nguyên ở trạng thái phù hợp cho hành động. |
400 |
invalidValue |
Bạn đã cung cấp một giá trị không hợp lệ trong yêu cầu. Lỗi này thường xảy ra khi mã thông báo mua hàng bị lỗi hoặc không hợp lệ. | Hãy sửa giá trị trường không hợp lệ trong nội dung hoặc tham số yêu cầu dựa trên tài liệu tham khảo API. |
400 |
productNotOwnedByUser |
Mã thông báo mua hàng được cung cấp là hợp lệ, nhưng người dùng hiện không sở hữu sản phẩm. Điều này có thể xảy ra nếu giao dịch mua được hoàn tiền, thu hồi hoặc hết hạn trước khi được xác nhận. | Kiểm tra trạng thái hiện tại của tài nguyên bằng cách sử dụng Get API tương ứng trước khi thử thực hiện thao tác. Đảm bảo tài nguyên ở trạng thái phù hợp cho hành động. |
400 |
purchaseTokenMismatch |
Mã thông báo giao dịch mua được cung cấp không khớp với giao dịch mua, tên gói, mã nhận dạng gói thuê bao hoặc mã nhận dạng sản phẩm. | Xác minh rằng tất cả thông tin chi tiết trong yêu cầu đều chính xác và tương ứng với nhau. |
400 |
required |
Yêu cầu thiếu một trường hoặc tham số bắt buộc. | Tham khảo tài liệu API để đảm bảo bạn đã thêm tất cả các trường và tham số bắt buộc. |
400 |
unsupportedIabType |
Thao tác này không được hỗ trợ cho loại dịch vụ Thanh toán trong ứng dụng đã cho. | Đảm bảo phương thức API tương thích với loại mặt hàng đang được quản lý. |
403 |
userInsufficientPermission |
Người dùng không có đủ quyền để thực hiện thao tác được yêu cầu. | Đảm bảo người dùng được xác thực có các quyền cần thiết trong Google Play Console. Hãy xem phần Sử dụng tài khoản dịch vụ để biết thêm thông tin. |
404 |
notFound |
Không tìm thấy tài nguyên được yêu cầu. | Xác minh rằng các giá trị nhận dạng (ví dụ: mã thông báo giao dịch mua, tên gói, mã sản phẩm, mã thuê bao) là chính xác. |
409 |
concurrentUpdate |
Đã có một nỗ lực cập nhật một đối tượng đang được cập nhật đồng thời. | Thử lại yêu cầu với thời gian đợi luỹ thừa. Tránh sửa đổi đồng thời cùng một tài nguyên. |
5xx |
Generic error |
Lỗi chung trong máy chủ Google Play. | Hãy thử gửi lại yêu cầu. Nếu vấn đề vẫn tiếp diễn, hãy liên hệ với người quản lý tài khoản Google Play hoặc gửi yêu cầu hỗ trợ. Hãy cân nhắc kiểm tra Trang tổng quan về trạng thái của Play để xem có sự cố ngừng hoạt động nào đã biết hay không. |