Я просматриваю опрос статуса, чтобы в любой момент времени видеть статус подписки (автоматического продления) моих пользователей. Процесс прост: если у вас есть строка данных квитанции для пользователя, вы можете отправить ее в 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.
Учтите следующее: если подписавшийся пользователь отменяет свою подписку, не используя приложение, получает новый телефон, а затем загружает мое приложение, для определения статуса его подписки правильно ли использовать строку данных квитанции из своей первой покупки на своем старом телефоне. чтобы определить их текущий статус подписки?
Мой вопрос: Нужно ли мне постоянно обновлять значение строки данных квитанции пользователя в моей базе данных, чтобы через несколько месяцев просмотреть статус его подписки? Как насчет другого устройства?