2012-03-04 3 views
1

Я реализовал пару месяцев назад обновленную подписку на приложение в двух моих приложениях. Я сохранил старые квитанции своих пользователей и связался с Apple с моего сервера в конце периода подписки, чтобы проверить, продолжает ли подписка. Я заметил, что некоторые из моих пользователей автоматически обновляются из клиентского кода. Мое приложение после звонков [[SKPaymentQueue defaultQueue] addTransactionObserver:myObserver] и когда возвращается SKPaymentTransactionStatePurchased или SKPaymentTransactionStateRestored, он вызывает мой сервер, чтобы проверить квитанцию ​​и предоставить моим пользователям подписку.В App Purchase Subscription Auto Renewal

Я пытался в течение некоторого времени понять логику уведомления о транзакции, которое клиент получает в конце периода продления. Кто-нибудь знает, почему только некоторые пользователи получают уведомления, а остальные требуют, чтобы сервер пересмотрел свои квитанции? Я попытался подумать, может быть, это связано с призывом к addTransactionObserver. Возможно, эти пользователи убили приложение, когда оно было в фоновом режиме, и снова вошли в приложение после окончания периода подписки, из-за которого был запущен addTransactionObserver: и чтобы оно было отправлено. Если я могу получить всех своих пользователей для получения этого уведомления, мне больше не нужно будет запускать вызовы сервера в конце периода подписки, поскольку они будут уволены из клиента, когда это необходимо.

Любое понимание поможет понять эту загадку.

Благодаря

Roi

+0

Я никогда не видел 'SKPaymentTransactionStateRestored' срабатывает в' auto-renewable' subs в моем приложении :( –

ответ

2

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