Недавно мы запустили приложение, которое имеет только потребительские покупки в приложении. Мы заметили много поддельных покупок - покупки с недействительными квитанциями, а также «действительные» квитанции, но массив «in_app» в ответе проверки от яблока представляет собой пустой массив. Мне нужно знать, как пользователи формируют такие «действительные» квитанции? Это получение загрузки приложения, а не покупка в приложении или что? Теперь я проверяю правильность проверки. Извлеките поле «in_app» в json-ответе от Apple, и если он не пуст, проверьте соответствия product_id или нет. Мне нужно знать, достаточно ли этого чека, или это лучшая проверка доказательств.Расходуемые в проверке покупок приложений
ответ
Все приложения имеют квитанцию. Те приложения, которые приобрели IAP, имеют поле in_app в их квитанции. Ваши пользователи подталкивают поддельный вызов в свой метод updateTransaction, и вы захватываете их квитанцию (без IAP, потому что они не совершают покупку) и отправляют ее на ваш сервер. Другие пользователи могут поменять какую-то квитанцию где-нибудь (например, один из 30 воров совершает покупку и выдает эту действительную квитанцию и отправляет ее своим 29 воров). Если они прикрепляют эту квитанцию на свое устройство, а затем нажимают вызов на обновленные транзакции, тогда ваш сервер получит свою действительную, но повторяющуюся квитанцию. Ваш сервер должен проверить *** дату получения и обнаружить, что он старше, чем недавний или, что еще лучше, старше, чем paymentRequest, который вам нужно будет отправить на ваш сервер. (лучше декодировать на устройстве - гораздо более безопасно)
*** Вы использовали, чтобы иметь возможность проверить transaction_id для дубликата transaction_id. К сожалению, вы больше не можете этого делать, поскольку restoreCompletedTransaction возвращает ту же самую транзакцию в качестве первоначальной покупки. Я рассказал об этом Apple, и они проигнорировали меня.
- 1. Расходуемые в магазине приложений для покупок
- 2. Запросить список истории покупок приложений
- 3. Расходуемые покупки в приложениях
- 4. В проверке сервера покупки приложений
- 5. Возможно ли создать в библиотеке покупок приложений
- 6. Расходуемые Данные о продуктах
- 7. Разработка приложения, предназначенного только для покупок приложений.
- 8. Используйте локальное хранилище для покупок приложений с обновлениями приложений
- 9. О проверке в разработке веб-приложений
- 10. 2 в модуле покупок приложений в одном приложении в iOS
- 11. Песочница пытается восстановить расходуемые IAP
- 12. Расходуемые покупки в приложениях в Android
- 13. Расходуемые покупки InApp для различного количества продукта
- 14. Использование приложений в качестве контента для покупок в приложении
- 15. Расходуемые и не потребляемые в iOS
- 16. Расходуемые в покупке приложения уже куплены
- 17. Не показывать Расходуемые, Не расходуемые, Подписка в управлении при покупке приложения
- 18. В модели сервера покупок приложений с использованием Titanium
- 19. Недопустимый идентификатор продукта в приложении «Приложения для покупок приложений»?
- 20. Настройка покупок в приложениях для примеров приложений OS X
- 21. Проверка покупок в приложении
- 22. Кнопка «Восстановить покупки» для покупок приложений, хранящихся на веб-сайте?
- 23. Напишите легко расходуемые рамки машинописного текста
- 24. Cordova In App Purchase Расходуемые продукты
- 25. Как перехватить отправленные/расходуемые сообщения RabbitMQ
- 26. Расходуемые покупки InApp для одного продукта?
- 27. В приложении покупок восстановить кнопку
- 28. stream_get_contents и в проверке приложений работает только иногда
- 29. «product.tags» в корзине покупок
- 30. Список покупок в Python
Я только понял, что для расходного материала вы можете проверить дубликат transaction_id и отклонить его. –
Спасибо. Я обнаружил, что «original_transaction_id» - ставка. –
@ PeterB.Kramer, как вы можете определить, какая транзакция связана с текущей покупкой, если в общей унифицированной квитанции есть история покупок пользователей ?? – Learn2Code