Tôi đang triển khai kịch bản đăng ký tự động tái tạo, nơi xác thực biên nhận sẽ được xử lý bởi mã phía máy chủ của tôi. Theo sau documentation của Apple, tôi sẽ lấy dữ liệu biên nhận từ NSBundle
và chuyển dữ liệu đó đến máy chủ của tôi, liên hệ với Apple để xác thực biên lai và thông báo cho ứng dụng về kết quả.Đăng ký tự động tái tạo iOS: luồng xác thực biên nhận
Bây giờ câu hỏi của tôi có liên quan đến dòng cần thiết liên quan đến xác nhận nhận:
Nếu người dùng mua một thuê bao, tiếp nhận của tôi sẽ được tự động cập nhật các thông tin từ mua đó? Nếu vậy, có cần phải xác thực rằng biên nhận ngay sau khi mua hàng hoặc tôi có nên "mở khóa" ứng dụng ngay lập tức không?
Trong trường hợp nào biên nhận của tôi bị thiếu trong số
NSBundle
? Nếu điều đó xảy ra, tôi cho rằng tôi nên sử dụngSKReceiptRefreshRequest
để làm mới biên nhận và gửi cho máy chủ để xác thực.Nếu người dùng cài đặt ứng dụng trong một thiết bị khác và khôi phục các giao dịch mua của mình
restoreCompletedTransactions
tôi có tự động nhận được biên lai cùng một lúc không? Tôi cho rằng tôi cần xác thực biên nhận sau khi khôi phục để đảm bảo có đăng ký đang hoạt động, đúng không?Khi máy chủ của tôi cố gắng xác thực biên nhận và biên nhận đó không hợp lệ, điều gì sẽ xảy ra ở phía ứng dụng? Làm mới biên nhận (sẽ yêu cầu người dùng xác thực) và chuyển nó tới máy chủ một lần nữa để xác thực lại mới?
Rui, bạn đã tìm ra những điểm yếu trong điều này chưa? Sẽ tốt hơn nếu bạn (hoặc ai đó khác) có thể cung cấp câu trả lời cho câu hỏi này. –