Đây là lần đầu tiên tôi triển khai thanh toán trong ứng dụng trong ứng dụng Android và tôi đã lấy hầu hết mã ngay từ guideline và mọi thứ đều hoàn toàn bị mất. Tôi đã nghĩ đến việc hoàn lại tiền. Ứng dụng ví dụ đã hoàn tiền được triển khai, nhưng theo cách kỳ lạ! Hoàn nhận được trên ứng dụng như mua nhưng với tình trạng hoàn mà là hoàn toàn dễ hiểu nhưng nguồn gốc trông như thế này:Hoàn tiền thanh toán trong ứng dụng Android
// Count the number of times the product was purchased
while (cursor.moveToNext()) {
int stateIndex = cursor.getInt(2);
PurchaseState state = PurchaseState.valueOf(stateIndex);
// Note that a refunded purchase is treated as a purchase. Such
// a friendly refund policy is nice for the user.
if (state == PurchaseState.PURCHASED || state == PurchaseState.REFUNDED) {
quantity += 1;
}
}
// Update the "purchased items" table
updatePurchasedItem(productId, quantity);
mục bổ sung của nó ngay cả khi nó đã hoàn và tôi đã không có ý tưởng tại sao điều này? Mục hoàn lại có id đặc biệt hoặc tôi thiếu gì không? Tôi chỉ thử điều này với các sản phẩm thử nghiệm nên tôi không biết.
phương pháp updatePurchasedItem loại bỏ entry từ bảng nếu số lượng là 0 mà dường như hoàn toàn đúng, vì vậy tôi đã thay đổi mã của tôi để này
while (cursor.moveToNext()) {
int stateIndex = cursor.getInt(2);
PurchaseState state = PurchaseState.valueOf(stateIndex);
// Note that a refunded purchase is treated as a purchase. Such
// a friendly refund policy is nice for the user.
if(Consts.DEBUG)
Log.v(TAG, state == PurchaseState.PURCHASED ? "purchase" : "refund");
if (state == PurchaseState.PURCHASED) {
quantity += 1;
} else if(state == PurchaseState.REFUNDED) {
quantity = 0;
}
}
// Update the "purchased items" table
updatePurchasedItem(productId, quantity);
nhưng tôi nghi ngờ sẽ có sai mã trong ứng dụng ví dụ vì vậy tôi hoàn toàn không chắc chắn nếu tôi làm đúng!
Tôi nên xử lý điều này như thế nào? Làm ơn giúp tôi!
Nó chỉ có thể là một lỗi. Biến số lượng có đo tổng số lần mua hàng của một loại mặt hàng hay chỉ tất cả các giao dịch mua (kể cả loại 'hoàn tiền')? Tôi sẽ không ngạc nhiên nếu đó là một lỗi, vì ví dụ đăng ký tồn tại trên trang web dành cho nhà phát triển Android không hoạt động mà không có tinh chỉnh. – BDFun
Số lượng là số lượng mặt hàng đã mua vào thời điểm đó (tôi không nghĩ rằng thậm chí có thể mua nhiều hơn một mặt hàng cùng một lúc), và vì một số lý do nó tăng số lượng ngay cả khi mặt hàng được hoàn lại. updatePurchasedItem loại bỏ mục nhập nếu nó nhận được sản phẩm với số lượng là 0, nghĩa vụ phải cho biết hoàn lại tiền theo như tôi biết vì nó không sử dụng dữ liệu trạng thái ở bất kỳ nơi nào khác. Bạn có thể xem ví dụ tại đây http://developer.android.com/guide/google/play/billing/billing_integrate.html#billing-download – Ruuhkis