Я використовую версію 3 API оплати через додаток. У мене є один керований, невитратний товар. Я ще не випустив цю функцію у своєму додатку, тому хочу вирішити питання щодо вмісту корисного набору до покупки.
З "Найкращих практик безпеки" :
Встановіть рядок корисного навантаження розробника під час надсилання запитів на придбання
За допомогою API виставлення рахунків у програмі версії 3 ви можете включити маркер рядка "корисне навантаження розробника" під час надсилання запиту на покупку в Google Play. Як правило, це використовується для передачі рядкового маркера, який однозначно ідентифікує цей запит на придбання. Якщо ви вказали значення рядка, Google Play повертає цей рядок разом із відповіддю на покупку. Згодом, коли ви робите запити щодо цієї покупки, Google Play повертає цей рядок разом із деталями покупки.
Ви повинні передати ланцюговий маркер, який допомагає вашій програмі ідентифікувати користувача, який зробив покупку, щоб згодом ви могли переконатися, що це законна покупка цим користувачем. Для витратних елементів ви можете використовувати випадково сформований рядок, але для невитратних елементів слід використовувати рядок, який однозначно ідентифікує користувача.
Коли ви отримаєте відповідь від Google Play, обов’язково переконайтеся, що рядок корисного навантаження розробника відповідає маркеру, який ви надіслали раніше із запитом на придбання. Як додатковий засіб безпеки, слід виконати перевірку на власному захищеному сервері.
Справедливо чи неправильно, я вирішив не вживати «подальших заходів безпеки» щодо налаштування сервера для перевірки покупки. І я не зберігаю власний запис про покупку - я завжди викликаю API виставлення рахунків. Тож чи справді є якась причина для мене, щоб я перевірив це корисне навантаження? Сам API перевірки, безумовно, перевіряє особу користувача, перш ніж повідомляти про товар як придбаний, і якщо зловмисник зламав пристрій (або програму, або API Google play), я не бачу користі від проведення додаткової перевірки ідентифікацію користувача на пристрої, де його можна легко обійти. Або є причина для цього, про яку я не думаю?