Проверка покупки расходных материалов в приложении для Mac OS X на стороне сервера

ПРИМЕЧАНИЕ. Это для Mac OS X, а не для iOS.

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

Похоже, я получаю квитанцию ​​​​из storekit, когда пользователь завершает покупку. Когда я отправлю это на свой веб-сервер (с WCF), он проверит получение, отправив JSON в Apple. Когда Apple подтвердит получение, она выполнит операцию, которая будет стоить мне немного денег. Во время проверки квитанции мое исследование говорит мне, что расходная квитанция всегда будет действительной и на самом деле не «потребляется». Должен ли я просто отслеживать каждую квитанцию, когда-либо отправленную на мой сервер, и следить за тем, чтобы она не использовалась? Я сделаю все, что в моих силах, чтобы поддержать этот список, но я боюсь, что в какой-то момент он потеряется, и надеюсь на другой способ.

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


person JonF    schedule 20.02.2012    source источник
comment
На удивление мало информации о том, как справиться с чем-то подобным. Лучшее, что я могу придумать, это дать пользователю какие-то кредиты, когда они покупают расходные материалы. Затем кредиты должны храниться на стороне сервера, чтобы предотвратить подделку. Если это способ сделать это, я думаю, мне нужно будет добавить какой-то логин/пароль пользователя, если нет способа однозначно идентифицировать каждую установку (базовое приложение бесплатное, поэтому у него нет квитанции)   -  person JonF    schedule 01.03.2012


Ответы (1)


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

person JonF    schedule 06.03.2012