2015-03-07 2 views
1

Я знаю о функциях восстановления и ранее реализовал его в своих приложениях, но в нем все еще есть дыры. Я пытаюсь отобразить настроенные экраны на основе того, какие приложения у пользователя есть. Без взаимодействия с пользователем, я хочу попросить яблоко получить мне покупки в приложении, принадлежащие этому пользователю для этого приложения? Другие сообщения упомянуть, что я всегда должен следить, что с помощью вызова методов, как:Может ли Apple рассказать, какие покупки у пользователя есть?

NSUserDefaults.StandardUserDefaults.BoolForKey 

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

  1. Загружается приложение. Моя БД записывает, что у пользователя есть 0 покупок в приложении. Пользователь позже покупает 1 покупку в приложении. Мой БД также записывает это.
  2. Пользователь удаляет приложение по любой причине
  3. Через некоторое время он повторно загружает приложение. Моя БД в этот момент начинает новый и записывает, что пользователь 0 покупает.
  4. пользователь видит покупку в приложении (он уже купил) и снова нажимает на покупку.
  5. Здесь мой поток выполнения останавливается, и яблоко поднимается ... Apple предупреждает пользователя, что он уже купил приложение и предлагает его бесплатно.

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

Я использую Xamarin.

+1

Это то, к чему валидация квитанции. См. «NSBundle appStoreReceiptURL» и документацию проверки валидации с iOS 7. – rmaddy

ответ

0

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

1

Необходимо обновить файл квитанции, а затем просмотреть его. В нем будут перечислены все покупки, сделанные пользователем внутри этого приложения, независимо от того, на каком устройстве оно было. Этот код позволит вам проанализировать файл и посмотреть сделанные покупки: https://github.com/rmaddy/VerifyStoreReceiptiOS

+0

Но я думаю, что этот код нуждается в модификации/дальнейшей реализации, поскольку он не является полным, так что ни один пользователь не получает тот же код? – Unheilig

+0

Я думаю, что пользователь просил C#, потому что он сказал Xamarin. Есть ли это? – user1019042

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