Comments
РЕЦЕПТ? ААААААААААААААААаааааааа *убежал, бешено вращая глазами*
<оффтоп>
Вот это да! Я тоже это заметил!
Рецепт, рецепт, рецепт… сделайте меня это развидеть! Теперь я всегда буду называть «receipt» рецептом :')
</оффтоп>
А за статью спасибо автору! Довольно интересная :)
Да и ситуация с «рецептом» интересная :) вроде бы абсолютно неправильный перевод, и в то же время здесь что-то есть. Что-то умиляющее, то, почему не хочется писать «исправьте!» :)
«Страшно представить, какую упущенную выгоду может получить приложение, если будет игнорировать серверное подтверждение платежа.»

Вот даже не знаю, мне кажется, что пользователи, которые пытаются какими-то «оккультными» методами совершить покупку внутри приложения никогда не будут пользоваться легальными платежами, даже в случае неудачи взлома.

Но все ровно, по-моему, серверная верификация нужна.
Упущенная выгода в том, что вы товар отдали, а денег не получили
Простите, какой товар? Пользователь уже купил/скачал приложение, а свистоперделки и монетки — не товар.
Я, допустим, продаю дополнительные фичи, использование которых идет через мой сервер и нагружает его. Больше юзеров => больше нагрузка => больше я плачу.
Для этого есть Apple, которая раздает ваше приложение желающим. (имею ввиду для раздачи фич)
Пользователь платить за толику счастья, которую ему приносит фича. Каждая проданная фича нагружает сервер, за который плачу я. А Apple получает свой процент с каждой проданной фичи за доставку
Очередной номер журнала, например. Другой цифровой именно что контент.
Не знаю как для кого, но когда речь заходит об iTunes, хочется бежать всеравно куда. Более непонятной, нелогичной, тяжелой и тормозной программы я еще не видел. iTunes вываливает ошибки xxxx, причем рекомендации всегда одни и теже: или переустановите iTunes на более новую версию, а если не помогло — переустановите Windows.
видимо Вы их себе уже переустановили. Google -> запрос -> itunes errors => 9 миллионов страниц
А как проверять валидность подписи (той, что signature в receipt'е)? На первый взгляд это простой base64, но он декодится во что-то невообразимое.
Подпись двоичная и закодирована в base64. Через iTunes можно проверить рецепт (извините) целиком. Как проверить, ну или создать подпись я не знаю
Окей, значит картинку в посте можно поправить. Все равно пост классный, несмотря на косячный русский местами. Сподвиг меня дописать iap-верификацию в своем приложении. Пишите еще :).
А платежи какой страны у вас фигурируют в статистике?
Это я к тому, что в Японии, например, процент receipt'ов, которые не прошли валидацию всегда лежит ниже 1% (по нашей статистике). И с ними тоже не всё так ясно, большинство ошибок 21002 приходят из-за проблем на стороне сервера валидации Apple (проверено повторной проверкой одного и того же receipt'а). А примерно месяц назад это вообще превратилось в катастрофу, Apple стал возвращать 21002 на каждый третий receipt, хотя все они были валидные. Пришлось как всегда извиняться перед клиентами и временно (на 2 недели!) выключить проверку на сервере, а Apple, опять же, как всегда, вышел из воды сухим и пушистым…
Бывшие советы, страны развитой демократии, Турция, Эмираты — основные страны. Результаты верификаций логгируются и при жалобе пользователя, мы перепроверяем платеж. Често скажу — не сталкивался с описанной вами ситуацией. Бывает, возникают нереальные таймауты на выполнении запросов к App Store, но не могу однозначно сказать, проблема на стороне серверов валидации Apple или где-то по сети между нами
Жаль, у нас почти есть все, даже подпись. Только вот придется подстраиваться индивидуально под API ваших личных серверов.
А никто не знает стороннего сервиса для всех этих заморочек с In-App Purchases?

Вокруг iOS уже выросло множество стартапов и сервисов, как грибов. Многие очень популярны и облегчают разработку.
Для аналитики есть AppAnnie, Flurry, AppFigures, и др.
Для push уведомлений есть UrbanAirship и пр.
TestFlight, Hockey App для бета-тестирования.

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

Я, например, слабо предстваляю как я стал бы реализовывать игру с внутриигровой валютой. Это же все нужно учитывать, хранить всю информацию на своем собственном серваке, быть уверенным, что юзер не потеряет свои покупки, отслеживать как эта внутриигровая валюта тратится, учитывать то, что юзер может использовать несколько устройств, и т.д. Или если юзер запустил приложение офлайн, потатил внутиигровую валюту, нужно же закешировать все эти изменения, синхронизировать их с базой на сервере, когда приложение будет онлайн. Это ж дофига работы. Как по мне вокруг этого дела можно спокойно поднять сервис.
Есть Urban Airship.
Я пользуюсь его API. Они берут по 10центов за каждое скачивание IAP.
IAP сервис они закрывают в июне, так что мне придется нанимать кого-то на написание скоего IAP сервера…
Я как раз занимаюсь разработкой такого сервиса. Планирую запустить в мае-июне этого года. Вот ссылка на него если интересно: in-app-purchase-server.com/
Супер, записался! Только перед запуском обязательно английский проверьте, ошибок там навалом.
А айтюнз часом не планирет развоорачивать свою платежную систему для оплаты услуг? Вот к примеру человек оплачивает какието услуги сервиса через инапы, но есть у сервиса и браузерный клиент — можно ли проводить аналогичные транзакции через него?
Хороший пример начального уровня на Swift (хотя это не важно, важнее php код) http://www.brianjcoleman.com/tutorial-receipt-validation-in-swift/
Only those users with full accounts are able to leave comments. Log in, please.