Tôi đang làm việc trên một ứng dụng sử dụng Thanh toán trong ứng dụng của Google Play V3 để bán một mặt hàng có giá trị trong một khoảng thời gian nhất định. Sau khi người dùng mua hàng, tôi gửi dữ liệu mua đến máy chủ của chúng tôi và ngay lập tức tiêu thụ nó, nếu thành công. Sau đó, máy chủ cấp quyền truy cập vào dịch vụ bổ sung cho người dùng cụ thể này cho đến khi giai đoạn kết thúc. Lưu ý: Tôi không sử dụng đăng ký trong ứng dụng.Tiêu thụ các giao dịch mua bị hủy trên Thanh toán trong ứng dụng của Google Play
Tôi đang thử nghiệm giao dịch mua hàng với người dùng thử nghiệm ở chế độ hộp cát nơi thanh toán không được thực hiện. Hầu hết trong số họ là thành công và dòng chảy này hoạt động tốt. Tuy nhiên, đôi khi, giao dịch mua của tôi bị Google hủy ngay lập tức. Trong lịch sử đơn hàng trong tài khoản Google Checkout của tôi, tôi thấy dòng:
"Để bảo vệ bạn, Google đã hủy đơn đặt hàng này. Giao dịch là được coi là gian lận".
Ngay cả khi điều này xảy ra, tôi thấy rằng tôi nhận được "purchaseState": 0
trong dữ liệu mua, cho thấy thành công. Ngoài ra, cố gắng tiêu thụ sản phẩm này cũng dẫn đến thành công (gọi số IInAppBillingService.consumePurchase(version, package, token)
trả về 0). Truy vấn khoảng không quảng cáo của tôi sau đó cho thấy rằng tôi không có giao dịch mua (và do đó không hoàn tiền/hủy bỏ) và tôi có thể tự do mua lại cùng một mặt hàng. Đây là hành vi tương tự như trong trạng thái bình thường, chưa được kiểm soát.
- Google có thường xuyên hủy các đơn đặt hàng giống như cách bên ngoài hộp kiểm không?
- Các mặt hàng đã mua và tiêu thụ thành công vẫn có thể bị hủy (ví dụ: tiền được hoàn lại) vì lý do ngoài tầm kiểm soát của nhà phát triển không?
- Có thể biết về việc hủy các sản phẩm đã được tiêu thụ không?
Nếu bạn theo dõi các mặt hàng đã mua trên máy chủ, orderId của giao dịch mua cũng là ID của giao dịch thanh toán. Bạn có thể thực hiện một số loại xác minh ngay cả khi mục đã được sử dụng. – tomrozb