Мои знания о покупке InApp получены из более старой библиотеки v2. Я не работал с новейшей версией 3. Тем не менее, надеюсь, я все еще могу быть полезным.
Да, использование полезной нагрузки разработчика в качестве дополнительной функции безопасности, безусловно, поможет, однако, стоит вам или нет, вероятно, более субъективно, чем объективная дилемма. В моем случае в моем клиенте уже был сервер, так как покупатели должны были загрузить 200 МБ файлов после покупки через приложение. Мы использовали полезную нагрузку разработчика для хранения информации о файле, разрешенном для загрузки. Эта информация имела решающее значение в сообщении приложению о том, как обрабатывать загруженные файлы.
Мы по-прежнему обеспечили дополнительную безопасность, переопределив локальный метод verifyPurchase()
с помощью вызова сервера. IE, поставляя наш собственный nonce для проверки. Делать это локально не очень безопасно.
Что касается вашей ситуации, я говорю, что это вопрос риска против стоимости. Каков риск того, что ваше приложение будет взломано и клиенты будут обходить покупки по сравнению со стоимостью внедрения дополнительной безопасности. Если ваше приложение загружается более 100 000 раз, у вас есть достаточный риск. Если более 1 миллиона раз, тогда существует высокий риск. Если только несколько тысяч, то пиратство, вероятно, пропустит ваше приложение. Если вы выбираете дополнительную безопасность, вам нужно настроить и запустить сервер, а затем добавить весь код и подтверждение связи, необходимые для приложения и сервера. Все это потребует времени и денег. Особенно в оплате сервера в течение срока службы вашего приложения.
Вы можете использовать функцию strcspn
:
if (strcspn($_REQUEST['q'], '0123456789') != strlen($_REQUEST['q']))
echo "true";
else
echo "false";
strcspn
возвращает длину части, не содержащей целых чисел. Мы сравниваем это с длиной строки, и если они различаются, значит, должно быть целое число.
Для этого нет необходимости вызывать механизм регулярных выражений.
Это должно вам помочь:
$numberOfNumbersFound = preg_match("/[0-9]+/", $yourString);
Вы можете получить больше от функция preg_match, поэтому посмотрите ее руководство
вы можете использовать этот шаблон для проверки вашей строки с помощью регулярных выражений:
$isNumeric = preg_match("/\S*\d+\S*/", $string) ? true : false;