Возникла следующая проблема: я пытаюсь восстановить покупки по подписке с автоматическим продлением. Кажется, что все работает со вновь созданными учетными записями песочницы, но не очень хорошо работает с учетными записями песочницы, которые существуют уже некоторое время.
Я вызываю restoreCompletedTransactions, и я получаю кучу транзакций, проходящих через очередь с транзакцией: восстановлено, и их свойство .original содержит старую приобретенную транзакцию.
Так что все вроде бы нормально. Поэтому я отправляю квитанцию, и квитанция не содержит транзакций с истекшим сроком действия, и наш бэкэнд, как и следовало ожидать, не сработает.
Но если я попытаюсь купить новую подписку, мне скажут: «Вы уже подписался на это ". который является транзакцией состояния = .failed.
Я не уверен, что является причиной этого, но похоже, что вещь, которая проверяет, есть ли у меня подпрограмма, идет по реальным датам App Store, а вещь, которая воспроизводит старые транзакции, идет по времени песочницы, то есть один год = один день в песочнице.
Это правда? Как правильно поступить здесь?