Автоматически продлеваемая подписка для покупки в приложении

После покупки продукта через покупку в приложении (с автоматическим продлением) я нажимаю API на сервере, чтобы предоставить информацию о покупке.

Как узнать, что продукт является новым для доступа к API?

Когда пользователь отменяет эту подписку, как это узнать?


person Dev    schedule 21.06.2016    source источник
comment
Эта ссылка stackoverflow.com/questions/22680059 / может вам помочь.   -  person Arun Jain    schedule 27.07.2017


Ответы (2)


Swift 3: чтобы вы могли определить, когда пользователь отменил подписку, вам необходимо сделать следующее;

  1. Скачать квитанцию ​​приложения
  2. Подтвердите квитанцию, чтобы вы могли вернуть json, содержащий все словари покупок и подписок в приложении.
  3. Теперь внутри каждой квитанции есть поле в словаре под названием cancellation_date, если это покупка по подписке и иначе недоступно для других покупок в приложении. Если это nil, то отмены не произошло, но если это имеет значение, которое содержит дату отмены, тогда отмена произошла, и согласно Apple:

    Дата отмены Для транзакции, которая была отменена службой поддержки Apple, время и дата отмены.

    Обращайтесь с аннулированным чеком так же, как если бы покупка никогда не совершалась.

затем ссылка ниже объясняет все поля, которые вы можете использовать внутри квитанций;

https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html

Пример кода:

// Create receipt request
 let receiptRefreshRequest = SKReceiptRefreshRequest()

// Get the receiptUrl from the main bundle
 let receiptUrl = Bundle.main().appStoreReceiptURL

 //If the receipt file exist on local device
 if (receiptUrl as NSURL?)?.checkResourceIsReachableAndReturnError(nil) == true{

            // Get the file as data
            let receipt: Data = try! Data(contentsOf: receiptUrl!)


  }

теперь вы отправляете квитанцию ​​​​на сервер Apple, чтобы проверить ее, используя ваш сервер, как рекомендует Apple. После того, как вы получите обратный вызов от проверки, вы проверяете дату отмены.

person Jad    schedule 10.08.2016

Apple не предоставляет ничего встроенного в iOS или REST API, которые бы предоставляли вам простую информацию о подписке, а также нет никаких обратных вызовов, которые вы могли бы прослушать и на которые можно было бы ответить в отношении продления или отмены. У Apple есть API, который при получении локальной квитанции пользователя и «общего секрета», сгенерированного в iTunes Connect, возвращает объект JSON истории покупок пользователя для вашего приложения, включая информацию об их текущей подписке. Дополнительную информацию см. по этой ссылке

person kirti Chavda    schedule 21.06.2016