Я пытаюсь проверить мою автоматически обновляемую подписку с помощью песочницы.Поэтому я получаю локальную квитанцию из mainBundle.appStoreReceiptURL? .Path и отправляю ее на мой сервер, который затем отправляет ее в App Store.Затем я анализирую ответ из магазина приложений.Все идет нормально.Мой код сервера продления подписки работает.
У меня есть две проверенные учетные записи iTunes, и я успешно приобрел и обновил свои автоматически обновляемые подписочные продукты для обеих учетных записей.Проблема в том, что иногда я получаю квитанцию обратно из магазина приложений, которая не совпадает с квитанцией текущей зарегистрированной учетной записи iTunes, но предыдущей и наоборот.Это происходит, когда мое приложение входит и выходит из фона или когда приложение закрывается и перезапускается.В результате это портит мою проверку подписки для определенного пользователя.Кто-нибудь может посоветовать?
Код моего сервера:
$base64EncodeReceipt = $_POST['receiptData'];
$response = getResponseFromAppStore($base64EncodeReceipt, $SHARED_SECRET);
echo $response;
КОНСОЛЬ: ЭТО результат, когда я выхожу, а затем снова войдите в приложение после того, как оно ушло в фоновый режим.Вы можете видеть, что я получаю другую квитанцию от original_transaction_id.
as user is signed in. check subscription status
StoreObserver.checkSubscriptionStatusAppDelegate()
applicationWillResignActive
checkSubscriptionStatusAppDelegate response json: {
diff = 267000;
"expDate_ms" = 1549103558000;
"expires_date" = "2019-02-02 10:32:38 Etc/GMT";
isSubscribed = 1;
"original_transaction_id" = 1000000499551500;
"transaction_id" = 1000000499563944;
}
regStatus: 1
subScriptionStatus: 1
SUBSCRIPTION UP-TO-DATE
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
as user is signed in. check subscription status
StoreObserver.checkSubscriptionStatusAppDelegate()
checkSubscriptionStatusAppDelegate response json: {
diff = "-88695000";
"expDate_ms" = 1549014602000;
"expires_date" = "2019-02-01 09:50:02 Etc/GMT";
isSubscribed = 2;
"original_transaction_id" = 1000000493992743;
"transaction_id" = 1000000499335032;
}