Как создать автоматически обновляемую подписку для покупки в приложении, которая будет принята Apple? - PullRequest
0 голосов
/ 11 мая 2018

У меня проблема с отправкой приложения в Apple Store.Кажется, они не хотят, чтобы я создавал автоматически обновляемую подписку для покупки в приложении.Они хотят, чтобы я создал непотребляемый тип покупок в приложении.Вот все сообщение:

Ответ от Apple:

Спасибо за повторную отправку.После дальнейшей проверки мы обнаружили, что сохраняется следующая проблема:
Рекомендация 3.1.2 - Бизнес - Платежи - Подписки
Ваша покупка в приложении в настоящее время помечена как автоматическое продление подписки.Тем не менее, было бы более целесообразно использовать непотребляемый тип продукта покупки в приложении, потому что продукт используется для разблокировки функций приложения.Непотребляемые товары приобретаются пользователями только один раз и всегда доступны на всех устройствах, связанных с учетной записью iTunes этого пользователя.Автоматически обновляемые подписки предназначены для периодических приложений, таких как журналы и газеты.
Следующие шаги
Тип продукта нельзя изменить после создания продукта для покупки в приложении.Поэтому вам нужно будет создать новый продукт для покупок в приложении с правильным типом продукта.
Чтобы создать новые покупки в приложении:
- Войдите в iTunes Connect
- Нажмите «Мои приложения»
- Выберите ваше приложение
- Нажмите «Функции» для создания новых покупок в приложении
- Нажмите Сохранить
- После того, как вы завершили все изменения, нажмите кнопку «Отправить на проверку» вв верхней части страницы информации о версии приложения.
Текущие продукты будут отображаться как «Отклонено» в iTunes Connect.
Ресурсы
Подробнее о том, как предлагать покупки в приложении, см. в Справке разработчика iTunes Connect.
Примечание. Приложения, предлагающие продукты для покупки в приложении, которые должны быть восстановлены, должны включать функцию «Восстановление».Следующие типы покупок в приложении должны быть восстанавливаемыми:
- непотребляемые товары
- автоматическое продление подписки
- бесплатные подписки
Для получения дополнительной информации см. Раздел «Восстановление приобретенных товаров» в-Приобретение Руководство по программированию.

Я не понимаю, потому что они говорят, что Автообновление подписки предназначены для периодических приложений, таких как журналы и газеты. , но Deezer, Spotify, NetFlix, LinkedIn и т. Д. Не являются журналами и газетами, и они автоматически продлевают подписку.

Может быть, мой код не подходит для этого типа подписки?Если это так, вот мой код:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions{
    for(SKPaymentTransaction *transaction in transactions){
        //if you have multiple in app purchases in your app,
        //you can get the product identifier of this transaction
        //by using transaction.payment.productIdentifier
        //
        //then, check the identifier against the product IDs
        //that you have defined to check which product the user
        //just purchased

        switch(transaction.transactionState){
            case SKPaymentTransactionStatePurchasing: NSLog(@"Transaction state -> Purchasing");
                //called when the user is in the process of purchasing, do not add any of your own code here.
                break;
            case SKPaymentTransactionStatePurchased:
                //this is called when the user has successfully purchased the package (Cha-Ching!)
                [self doMonthlySubscription]; //you can add your code for what you want to happen when the user buys the purchase here, for this tutorial we use Monthly Subscription
                [self viewDidAppear:NO];
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                NSLog(@"Transaction state -> Purchased");
                break;
            case SKPaymentTransactionStateRestored:
                NSLog(@"Transaction state -> Restored");
                //add the same code as you did from SKPaymentTransactionStatePurchased here
                [self doMonthlySubscription]; //you can add your code for what you want to happen when the user buys the purchase here, for this tutorial we use Monthly Subscription
                [self viewDidAppear:NO];
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed:
                //called when the transaction does not finish
                if(transaction.error.code == SKErrorPaymentCancelled){
                    NSLog(@"Transaction state -> Cancelled");
                    //the user cancelled the payment ;(
                }
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                break;
            case SKPaymentTransactionStateDeferred:
                NSLog(@"Deferred");
                break;
        }
    }
} 

.

 - (void)doMonthlySubscription{
        [self.view setBackgroundColor:[UIColor blueColor]];
        isMonthlySubscription = YES;
        //set the bool for whether or not they purchased it to YES, you could use your own boolean here, but you would have to declare it in your .h file

        [[NSUserDefaults standardUserDefaults] setBool:isMonthlySubscription forKey:@"isMonthlySubscription"];
        //use NSUserDefaults so that you can load wether or not they bought it
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

Я действительно не понимаю, в чем проблема?

(Ясобираюсь иметь их на телефоне, я буду обновлять, если больше информации)

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