2013-02-12 3 views
2

я работаю с покупкой InApp, поэтому я реализовал рабочую модель, я передал этотКак проверить уже приобрели покупки InApp КСН

ссылка http://xcodenoobies.blogspot.in/2012/04/implementing-inapp-purchase-in-xcode.html.

Здесь, когда пользователь покупает товар, я храню некоторое значение в KeyChain, и я перекрестно проверяю это значение, чтобы подтвердить, что пользователь купил этот товар, и если нет, я попрошу пользователя купить товар.

Это работает, но у меня есть 4 продуктов, доступных для покупки, которые можно приобрести индивидуально, поэтому я думал о создании различных экземпляров KeyChain и хранения различных паролей для этих 4-х продуктов и перекрестной проверки, но keyChain может сохранять только одно имя пользователя и пароль.

Так что я хочу знать, что может быть альтернативой для this.Also NSUserDefaults не будет работать, так как она привязана к расслоению App и всякий раз, когда пользователь удаляет приложение, данные будут потеряны, и поэтому он будет предложено снова купить.

С уважением Ранджит

+0

Прежде всего, вы всегда должны иметь кнопку «Восстановить покупки» в своем приложении. это очень открытый вопрос, вы можете рассмотреть возможность хранения всей информации о покупке одним паролем (nnnn означало бы, что ни один из продуктов не был куплен, ynnn будет означать, что был куплен только первый продукт и т. д.), но это не изящное решение. Я бы предположил, что вы используете NSUserDefaults в любом случае –

+0

Но если вы используете NSUserDefaults при удалении приложения, данные в нем будут уничтожены – Ranjit

+0

, поэтому у вас должна быть кнопка восстановления, у StoreKit есть методы, которые позволят вам сделать это легко. В другом сценарии представьте, что вы используете Keychain, и пользователь покупает новый iPhone, и что? –

ответ

2

Если вы добавляете восстанавливаемой покупку в приложении (невозобновляемые подписка, бесплатная подписка или неплавящимся продукт), то набор Store API уже обеспечивает функциональность «восстановление транзакции» для вас: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/MakingaPurchase/MakingaPurchase.html

В вашем пользовательском интерфейсе вам нужно добавить кнопку «Восстановить покупки» на экран вашего продукта, который вызывает метод restoreCompletedTransactions. Это важно, потому что Apple может отклонить ваше приложение, если вы не предоставляете эту кнопку.

+0

Хорошо, спасибо, но как насчет NSUserdefaults и KeyChain – Ranjit

+1

'NSUserDefaults' уничтожается, когда приложение удаляется. Брелок для ключей безопасен, но привязан к устройству, а не к учетной записи пользователя (одна и та же учетная запись пользователя может быть на нескольких устройствах). Если вы хотите сохранить квитанцию. сохраните его на своем сервере или iCloud. –

+0

Привет @ Даниэль Мартин, я тестирую покупки inApp, я купил один элемент, затем я удалил приложение и снова его переустановил. Теперь, когда я нажимаю кнопку восстановления, он запрашивает пароль, после ввода пароля ничего не происходит. Я ничего не пропускаю. Пожалуйста, помогите мне – Ranjit