2016-03-30 6 views
1

В моем приложении у меня есть элементы для показа только для пользователей, которые платят за подписку. Пользователь может регистрироваться в приложении по электронной почте и паролю и может выйти, а на одном и том же устройстве может регистрироваться другой пользователь.Отключить восстановление IAP, когда та же учетная запись Apple, но другая учетная запись пользователя в приложении

Моя проблема заключается в том, что Apple Id в телефоне все тот же. Поэтому, когда другой пользователь регистрировался, он мог восстановить покупку, даже если он ничего не платил.

Так что мой вопрос: как я могу это исправить? Как подключить учетную запись Apple к моей учетной записи? Или, по крайней мере, когда-нибудь, пытаясь восстановить IAP, проверьте, что эта учетная запись Apple уже имеет эту подписку, но другой пользователь вошел в систему. Как другие приложения делают это? Спасибо

Редактировать: Я хочу использовать автообновление подписки в своем приложении, и я просто не знаю, как подключить его к моей учетной системе.

+0

Я думаю, что Apple отверг бы приложение с этой реализацией. В приложениях Покупки необходимо привязать к AppleID, и у вас не должно быть логинов, прежде чем пользователи смогут получить доступ к содержимому IAP. У меня только что было отклонено несколько приложений (теперь принято) из-за директивы 17.2: https://developer.apple.com/app-store/review/guidelines/ – r3c0d3

+0

Я работал над приложением, где мы делали то, что я описано ниже. Однако мы специально не использовали электронную почту, а скорее «имя пользователя». Они могли бы сделать их электронную почту, если захотят. Перед использованием приложения потребовалось войти в систему. –

ответ

5

Когда пользователь делает IAP, вы не будете знать идентификатор Apple, используемый для совершения покупки. Однако вы знаете, что это идентификатор транзакции для покупки. То, что вы захотите, будет хранить идентификатор транзакции оригинальной покупки с помощью вашей настраиваемой учетной записи.

Когда пользователь будет восстановлен, вы определите, соответствует ли идентификатор транзакции оригинального транзакции SKPaymentTransaction для пользовательской учетной записи. Если нет, то вы можете предположить, что это другой пользователь. Вы можете прочитать больше о том, что здесь:

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html

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

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

Смежные вопросы