@kuzyairon

Как предоставить товар покупателю по API ключу?

Суть заключается в следующем.
Делаю интернет магазин через Wordpress, после оплаты покупателя ему на почту приходит сообщение о покупке товара, там в письме имеется ключ, который он должен активировать POST запросом на сайте. Ключ должен быть одноразовый и не повторяющийся, и так же ограничение по времени у ключа так же должны иметься . Оплата проходит через Free-kassa
Вопросы следующие:
Как мне сгенерировать сам ключ ? Какие плагины для этого существуют?
Как клиент может авторизоваться по ключу ?
Как создать временные рамки живучести ключа (ссылки)?
нужно ли загружать сами ключи в БД для активации?

Должно получится что то вроде такого
site.ru/Home/Item/?key=PuZ0e36nAxIWIQDFklDf

Насколько я понимаю, все делается через API , но я могу ошибаться
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 2
@PavelFokeev
pavl1k.ru
Оплата проходит через Free-kassa

После оплаты на Ваш скрипт-обработчик приходит информация о платеже. Вы её проверяете, и если всё ок (хэш совпадает, сумма нужная и т.д.) -- генерируете ключ и сохраняете в БД, отправив его на почту клиенту.

Как мне сгенерировать сам ключ ? Какие плагины для этого существуют?
Стандартные функции PHP, гуглите "generate pass php"

Как клиент может авторизоваться по ключу ?

Пишите скрипт, который проверяет переданный через GET key в БД (наличие данного ключа в базе, время его жизни), и если всё ОК - выдаёт результат в виде товара.
Ответ написан
OtshelnikFm
@OtshelnikFm Куратор тега WordPress
Мои работы: otshelnik-fm.ru
Software License Manager плагин кое что умеет.

Но я подобное писал самостоятельно используя headless wordpress и rest api - так проще контролировать. И процесс полностью автоматический - без моего участия.

Там хитростей нет: в момент оплаты генерите пароль, отсылаете клиенту. Он его вводит у себя в форме активации вашего плагина-темы - запрос идет на ваш сайт. Вы проверяете активацию, ставите флаг активировано и записываете домен что пришел. Отправляете ему грубо говоря "ок". на стороне клиента увидел скрипт этот Ок и разблокировал функционал, записав в опции что лицензия прошла.
Временная активация - пишете дату активации и срок лицензии в отдельные таблицы бд. Часовым кроном сверяете например. Если лицензия закончилась - отсылаете на сервер клиента запрос - и там пишете в БД что срок лицензии кончился. Это выводит: или сообщение или блокировку функционала. Но блокировать работу функционала сразу - плохая практика. Вы можете кому-то без предупреждений поломать бизнес. Это отразится на вашей репутации как магазина так и разработчика. В итоге вас обходить стороной будут. Мне бы это не понравилось.

Другой вопрос что php защищать и типа активировать ключами - школьник это сможет обойти. А вот студиям, что захотят взломать активацию и массово ставить нуленые плагины/темы своим клиентам - будет грозить юр ответственность. Так что это защита в основном от совсем неопытных и от веб студий. Но не все студии понимают что взламывать часть приложения нельзя, хоть это и идет по GPL лицензии.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы