2016-05-04 4 views
0

Недавно мы запустили приложение, которое имеет только потребительские покупки в приложении. Мы заметили много поддельных покупок - покупки с недействительными квитанциями, а также «действительные» квитанции, но массив «in_app» в ответе проверки от яблока представляет собой пустой массив. Мне нужно знать, как пользователи формируют такие «действительные» квитанции? Это получение загрузки приложения, а не покупка в приложении или что? Теперь я проверяю правильность проверки. Извлеките поле «in_app» в json-ответе от Apple, и если он не пуст, проверьте соответствия product_id или нет. Мне нужно знать, достаточно ли этого чека, или это лучшая проверка доказательств.Расходуемые в проверке покупок приложений

ответ

0

Все приложения имеют квитанцию. Те приложения, которые приобрели IAP, имеют поле in_app в их квитанции. Ваши пользователи подталкивают поддельный вызов в свой метод updateTransaction, и вы захватываете их квитанцию ​​(без IAP, потому что они не совершают покупку) и отправляют ее на ваш сервер. Другие пользователи могут поменять какую-то квитанцию ​​где-нибудь (например, один из 30 воров совершает покупку и выдает эту действительную квитанцию ​​и отправляет ее своим 29 воров). Если они прикрепляют эту квитанцию ​​на свое устройство, а затем нажимают вызов на обновленные транзакции, тогда ваш сервер получит свою действительную, но повторяющуюся квитанцию. Ваш сервер должен проверить *** дату получения и обнаружить, что он старше, чем недавний или, что еще лучше, старше, чем paymentRequest, который вам нужно будет отправить на ваш сервер. (лучше декодировать на устройстве - гораздо более безопасно)

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

+1

Я только понял, что для расходного материала вы можете проверить дубликат transaction_id и отклонить его. –

+0

Спасибо. Я обнаружил, что «original_transaction_id» - ставка. –

+0

@ PeterB.Kramer, как вы можете определить, какая транзакция связана с текущей покупкой, если в общей унифицированной квитанции есть история покупок пользователей ?? – Learn2Code

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