Как работать с подпиской на автоматическое продление, если приложение закрывается между ними? - PullRequest
0 голосов
/ 24 апреля 2019

Как справиться с ситуацией, если в рамках плана автоматического обновления в приложении приложение покупки закрылось / зависло после того, как яблоко выполнило свою часть транзакции, а делегат Storekit еще не вызван.

#pragma mark - SKPaymentTransactionObserver

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions {

    for (SKPaymentTransaction *transaction in transactions) {
        switch (transaction.transactionState) {
            case SKPaymentTransactionStatePurchasing:
                [self handlePurchasingStateTransaction:transaction inQueue:queue];
                break;
            case SKPaymentTransactionStatePurchased:
                [self handlePurchasedStateTransaction:transaction inQueue:queue];
                break;
            case SKPaymentTransactionStateFailed:
                [self handleFailedStateTransaction:transaction inQueue:queue];
                break;
            case SKPaymentTransactionStateRestored:
                [self handleRestoredStateTransaction:transaction inQueue:queue];
                break;
            case SKPaymentTransactionStateDeferred:
                [self handleDeferredStateTransaction:transaction inQueue:queue];
                break;

            default:
                break;
        }
    }
}

Наше приложение для iOS предоставляет подписки на основе автоматического продления. Когда пользователь приобретает какой-либо тарифный план, мы информируем наш сервер о зарегистрированном пользователе и его плане и предоставляем услуги на основе этого плана.

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

Если пользователь впервые покупает план, у нас нет исходного идентификатора транзакции.

Мы хотим идентифицировать этого платного пользователя и предоставлять услуги на основе плана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...