CÓ, tôi đã đọc tất cả tài liệu @ developer.android.com và tôi hiểu tất cả chỉ với một ngoại lệ cơ bản - những gì được giới thiệu.Thanh toán trong ứng dụng Android - những gì thực sự không phải dành cho?
Vì tất cả các phản hồi đơn đặt hàng từ Google Play được ký bởi khóa cá nhân không thể truy cập và đang được xác minh bằng khóa công cộng được ghép nối (trong trường hợp của tôi trên máy chủ bên ngoài, vì vậy nó cũng không thể truy cập được đối với người thứ ba)) không có cách nào để giả mạo.
Tất cả những người không phải chỉ là cách dự phòng để đảm bảo mua hàng. Và còn gì nữa, tài liệu không nói gì về tình huống này, khi:
- Tôi mua một mặt hàng;
- Tạo nonce và gửi cho Google Play;
- Có sự cố, vì vậy, tất cả các nonce đã biết của bạn bị mất;
- Ứng dụng của tôi đã khởi động lại và nhận được cuộc gọi lại từ Google Play;
- ... Và từ chối cuộc gọi này do không được công nhận nonce!
Trong trường hợp được mô tả ở trên, người dùng thanh toán cho một mặt hàng và không bao giờ nhận được nó, điều đáng xấu hổ. Tất nhiên tôi có thể lưu trữ nonces trong một số tập tin và đọc lại nó khi ứng dụng của tôi trở lại, nhưng nó vi phạm tất cả các nguyên tắc cho nonces.
IMHO ai đó vừa nói "Này, quá trình xác minh quá đơn giản, hãy thêm điều gì đó ngẫu nhiên hơn, nó sẽ trở nên thú vị hơn!". Vì vậy, ai đó đã làm.
Hoặc bạn có muốn mở một số trường hợp sử dụng khác không? Nếu không, tôi sẽ xóa toàn bộ phần không phải từ mã của tôi.
Nếu mua được quản lý, hãy nhớ luôn luôn có khả năng khôi phục mua hàng , người dùng sẽ cần nếu họ bao giờ 1. nhận thiết bị mới, 2. phải khôi phục cài đặt gốc cho thiết bị. – weston
Bạn nói đúng, tôi đã quên chúng vì tôi không có, nhưng làm thế nào nó được kết nối với nonces? –
Chỉ cần "người dùng của bạn trả tiền cho một mục và không bao giờ được nó" kịch bản không phải là một vấn đề nếu bạn xảy ra được sử dụng mua được quản lý, vì vậy không cần phải lo lắng về việc mất nonces trong trường hợp đó. Tôi không tuyên bố đó là một câu trả lời, chỉ là một bình luận! – weston