Извините за миллионный вопрос об автопродляемых подписках, но я его не понимаю. Я сделал все, как описано в Руководстве по покупке яблок в приложении, но это не решило проблему.
Моя проблема в том, что я создал автопродление подписок, но они не будут продлеваться автоматически.
Я создал класс наблюдателя платежных транзакций, который реализует интерфейс SKPaymentTransactionObserver. Этот класс будет установлен как paymentObserver при запуске приложения в методе viewDidLoad:
.
PaymentTransactionObserver * наблюдатель = [[PaymentTransactionObserver alloc] init];
[[SKPaymentQueue defaultQueue] addTransactionObserver: наблюдатель];
В paymenttransactionobserver у меня есть метод paymentQueue: updateTransactions: (такой же, как описано в документации Apple)
- (void) paymentQueue: (SKPaymentQueue *) очередь обновлена Транзакции: (NSArray *) транзакции {для (SKPaymentTransaction * транзакция в транзакциях) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchased:
[self completeTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
[self failedTransaction:transaction];
break;
case SKPaymentTransactionStateRestored:
[self restoreTransaction:transaction];
break;
default:
break;
}
}
Когда я куплю автовозобновляемый товар, товар будет успешно приобретен. Но он никогда не будет обновлен автоматически. Я думал о том, что наблюдатель транзакции каким-то образом будет освобожден, но этого не произойдет (в противном случае я бы получил уведомление от отладчика). Я также удалил наблюдателя, но он никогда не будет удален.
Я использовал отладчик, чтобы убедиться, что метод updateTranscations:
будет вызван, но ничего. Когда я покупаю тестовый продукт (в режиме песочницы) со временем автопродления в одну неделю, метод должен вызываться через 3 минуты, но это не так.
Что я делаю неправильно?
Кто-нибудь может помочь?
Br Nic