Я ищу статус опроса, чтобы увидеть статус подписки (автоматическое продление) моих пользователей в любой момент времени. Процесс прост: если у вас есть строка данных квитанции для пользователя, вы можете отправить ее в Apple (на стороне сервера), и они вернут расшифрованный JSON квитанции. Вот мой код для получения данных квитанции при покупке автоматически обновляемой подписки:
if let appStoreReceiptURL = Bundle.main.appStoreReceiptURL,
FileManager.default.fileExists(atPath: appStoreReceiptURL.path) {
do {
let receiptData = try Data(contentsOf: appStoreReceiptURL, options: .alwaysMapped)
print(receiptData)
//Encrypted receipt data
let receiptString = receiptData.base64EncodedString(options: [])
} }
Когда я тестирую с пользователем песочницы, покупающим разные подписки в моем приложении снова и снова, я вижу, что квитанция строка данных изменяется, но неясно, дают ли старые строки актуальную историю транзакций при передаче на сервер Apple.
Учтите следующее: если подписанный пользователь отменяет свою подписку, не находясь в приложении, получает новый телефон, а затем загружает мое приложение, чтобы определить статус своей подписки, правильно ли использовать строку данных квитанции из их первая покупка на их старом телефоне, чтобы определить текущий статус подписки?
Мой вопрос: Нужно ли мне постоянно обновлять значение строки данных квитанции пользователя в моей базе данных, чтобы просматривать месяцы состояния их подписки потом? Как насчет другого устройства?