Восстановление транзакций для невозобновляемых подписок без регистрации


AppStore reviewer требует от нас приобрести Non-renewing subscriptions Тип не будет принуждать пользователя к регистрации. Он имеет в виду также пользователя не регистрировать он также может приобрести Non-renewing subscriptions Тип

И Apple Document requires Non-renewing subscriptions must можно восстановить. Он сказал:

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

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

Но проблема заключается в следующем : когда пользователь не зарегистрируется, мой сервер также даст ему уникальный идентификатор пользователя, незарегистрированный пользователь сохранит идентификатор пользователя в .plist . Они также могут восстанавливать транзакции. Но когда он удаляет мое приложение , а затем загружает один раз , идентификатор пользователя теряется, поэтому он не может восстановить транзакции. Он будет обычным пользователем по умолчанию.

Отклонит ли appStore мое приложение по следующей причине:

Не может восстанавливать транзакции для невозобновляемых подписок без регистрации, которая удалите приложение перед восстановлением

Если appStore откажется, как исправить это, ТХ все.

3 6

3 ответа:

Я отправил свое приложение в appStore.

Я восстанавливаю транзакции для невозобновляемых подписок, которые регистрируются или входят в систему.

Я не восстанавливаю транзакции для невозобновляемых подписок, которые не "регистрируются"и" удаляют мое приложение".

Мое приложение одобрено

  • Регистрация должна быть необязательной для невозобновляемых элементов inapp.
  • Вы можете дать им сообщение, что если вы хотите использовать его на нескольких устройствах, то вам нужно зарегистрироваться и войти в систему.
  • при регистрации личная информация, такая как электронная почта и мобильный телефон, должна быть необязательной, и вы должны объяснить им, почему вы сохранили электронную почту в регистрации (например, восстановление пароля).
  • Как и предыдущий комментарий, если inapp для невозобновляемого элемента не так дорого, они могут принять заявление. Но если приложение стоит дорого, они не позволят вам нарушить ни одно из своих правил.
Примечание: Вы можете использовать механизм для использования UUID и хранить его в связке ключей. Если вы переустановите приложение, вы можете получить его из keychain снова и с помощью того же UUID, вы можете управлять истечением срока действия на вашем сервере.

Apple предлагает использовать iCloud для сохранения данных о покупке:

#if USE_ICLOUD_STORAGE
NSUbiquitousKeyValueStore *storage = [NSUbiquitousKeyValueStore defaultStore];
#else
NSUserDefaults *storage = [NSUserDefaults standardUserDefaults];
#endif

NSData *newReceipt = transaction.transactionReceipt;
NSArray *savedReceipts = [storage arrayForKey:@"receipts"];
if (!receipts) {
    // Storing the first receipt
    [storage setObject:@[newReceipt] forKey:@"receipts"];
} else {
    // Adding another receipt
    NSArray *updatedReceipts = [savedReceipts arrayByAddingObject:newReceipt];
    [storage setObject:updatedReceipts forKey:@"receipts"];
}

[storage synchronize];
По крайней мере, это лучше, чем выбрасывать информацию о покупке, когда пользователь удаляет приложение. Заставить клиента платить дважды за услугу-это не лучший пользовательский опыт.