Извините, что позволил вам ждать так долго!
Проблема в том, что в Apples Руководство по программированию покупок в приложении ясно сказано, что я не могу брать невозобновляемые подпискибыть восстановленным.Мне придется хранить покупки самостоятельно и реализовать собственную функцию восстановления.
Я включил несколько идентификаторов в название продукта, которые сообщают мне, что это за продукт.(Это единственный способ хранить информацию о продукте без использования моего собственного сервера). Таким образом, название моих продуктов, например, com.mycompany.iphone.non_renewing_30d (этот продукт действительно настроен как невозобновляемый продукт)
Итак, когдапользователь совершает покупку, я храню эту информацию в базе данных CoreData iDevice.Я также включил свою функцию истечения срока действия, потому что у меня есть дата покупки и дата истечения срока годности продуктов (30 дней).
Когда время истекает, пользователь видит диалоговое окно с сообщением о совершении новой покупки.Я действительно не люблю реализацию яблок невозобновляемых подписок, потому что это говорит пользователю, что он / она уже купил продукт и просит их выкупить, но я должен был иметь дело с этим.
Я действительно предлагаюхранить информацию о покупке на устройстве iOS, поскольку вам не нужно создавать собственную функцию распознавания пользователя (например, идентификатор пользователя или адрес электронной почты), поскольку Apple отключила уникальность UDID.