Chúng tôi đang sử dụng xác thực phía máy chủ để xác minh iTunes của chúng tôi khi mua ứng dụng. Khi một giao dịch được gửi đến SKPaymentTransactionObserver, chúng tôi lấy biên nhận từ appStoreReceiptURL để xác thực nó.Cách sử dụng một appStoreReceiptURL duy nhất để xác minh nhiều giao dịch StoreKit?
if let receiptPath = NSBundle.mainBundle().appStoreReceiptURL?.path where
NSFileManager.defaultManager().fileExistsAtPath(receiptPath),
let receiptData = NSData(contentsOfURL:NSBundle.mainBundle().appStoreReceiptURL!) {
return receiptData
}
Nhưng trong một số trường hợp, chẳng hạn như khi chúng ta đang khôi phục mua hàng, nhận được nhiều giao dịch với phương pháp:
public func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
Có vẻ như khá kỳ quặc để sử dụng các dữ liệu nhận cùng để xác minh từng giao dịch. Biên lai đơn có chứa dữ liệu về mỗi giao dịch không?
Trên ghi chú có liên quan, cách chúng tôi theo dõi đăng ký tự động tái tạo trên các thiết bị? Đó là nếu người dùng đã mua đăng ký trên iPad, họ có nhận được giao dịch cập nhật trên iPhone của họ không? Hay họ sẽ phải khôi phục việc mua hàng? –
Bạn sẽ cần phải cung cấp tùy chọn mua lại khôi phục (dù sao đi nữa, đây cũng là yêu cầu của Apple).Sau khi khôi phục ứng dụng trên thiết bị mới sẽ có biên nhận. –