СМС регистрация на сайтах с InstantCMS (первая ветка)

1 июня 2015 - Feodor
СМС регистрация на сайте.

Если вы считаете, что регистрация на вашем сайте в чьих то глазах может стоить немного монет, или просто хотите ограничить это дело, сделав плату символической, но до сих пор не знали как это оформить...

В основе решения, имеющаяся в первой ветке система инвайтов.


================

Первое что нужно сделать в настройках сайта, регистрации установить "регистрация по инвайтам".

Далее, я предлагаю, в шаблоне либо полностью убрать блок показывающий по чьему приглашению зарегистрировался участник

Код PHP:
  1. :


либо сделать его видимым только админу.


Код PHP:
  1. :
  2.  
В меню пользователя на странице профиля так же есть есть ссылка с количеством доступных инвайтов.

В принципе, она показывается только тем пользователям, у которых есть доступные инвайты, можно её не трогать. Нет инвайтов - нет ссылки.

Далее, для удобства, предлагаю сократить количество символов в инвайте до 7 (что бы код приглашения было проще ввести из полученной смс в окно) и сделать весь код в верхнем регистре.


В файле

/components/users/model.php в двух местах

Код PHP:
  1. if(!preg_match('/^([a-z0-9])$/ui',$code))
заменить на

Код PHP:
  1. if(!preg_match('/^([A-Z0-9])$/ui',$code))

теперь инвайты будут вида A1Z8565



=================================================

Теперь нужно сгенерировать сами инвайты.

Я для этого использую notepad и опции "генератор столбца", "числа для вставки", "текст для вставки", запись, автозамены и редактор столбца, что бы в конце лишние символы, если в каких строках получилось больше 7 знаков. В прицнипе не сложно. В прикрепленном архиве есть файл примером. 1000 кодов были сгенерированы минут за 5.


==================================================

Теперь нужно внести эти инвайты в Базу данных.


Создать SQL запрос.

Опять же Notepad.

Создать файл, вставить первую строку

INSERT INTO `cms_user_invites` (`id`, `code`, `owner_id`, `createdate`, `is_used`, `is_sended`) VALUES


Затем с помощью записи и воспроизведения продублировать 1000 раз следующую строку


(номер_инвайта, 'код_инвайта', 1, '2014-08-18 14:14:58', 0, 1),


здесь: инвайт выдан на админа сайта пользователь (ид 1), и единица в конце говорит о том, что инвайт был активирован, то есть как бы отправлен кому то на почту и теперь ждет когда его используют.


Итак, продублировать эту строку 1000 раз, для тех кто не работал с базами данных, напоминаю, в конце последней строке в самом конце вместо запятой, должен стоять замыкающий символ ";"


Теперь с помощью редактора столбцов и генератора столбцов нужно проставить инвайтам в списке уникальные id (номер инвайта) которые бы не пересекались с уже имеющимися в базе, если они там есть (посмотрите что у вас в базе в таблице cms_user_invites какой номер крайнего инвайта и начинайте от следующей цифры), и с помощью редактора столбцов заменить "код_инвайта" на те коды, которые вы сгенерировали пять минут назад.


Теперь нужно в php Admin выполнить запрос и таким образом внести инвайты в базу данных.

Пример запроса с готовыми инвайтами в прикрепленном архиве.



==============================================


Осталось подключиться к какому нибудь смс биллингу и настроить раздачу приглашений по смс.


За основу скрипта, который будет отправлять смски с инвайтами использовал скрипт "магазина уинов" (когда то была такая индустрия уины для аськи были предметом торговли) имеющийся в документации биллинга smsbill.ru и скрипт отправляющий уведомления на email при покупке через смс взятый с биллинга x-bill.ru




Откройте в прикрепленном архиве файл registrator.php выполните настройки в строках 6, 81, 83



Один момент. На других смс биллингах входящие GET параметры могут иметь другие названия, в таком случае придется править блок "Получение данных", что бы этот обработчик правильно работал с вашим смс биллингом.


Последний этап



Из прикрепленного архива папку /smsrega вместе с содержимым залейте в корень сайта

в ней:

registrator.php - скрипт который будет принимать запрос, брать из текстового файла инвайт и отправлять его в ответ.
/data/codes.txt - текстовый файл, в который вы должны сложить ваши инвайты, сейчас там те инвайты что создал я
/data/base.txt - сюда будет записываться статистика по работе скрипта,
/logs - здесь будут создаваться логи работы скрипта обработчика


СМС биллинг


В панели смс биллинга создайте новый проект, в настройках проекта в качестве скрипта обработчика укажите путь до вашего файла registrator.php
Обычно биллинг предоставляет возможность тестировать обработчик, используйте возможность. В ответ на тестовую смс вам должен быть выдан код инвайта, откройте на своем сайте страницу /registration в качестве не авторизованного пользователя и введите код в окно, для продолжения регистрации.

В принципе это решение можно использовать и с Робокасса, Яндекс Деньги и т. п.

Ничто не мешает в дальнейшем, рядом с файлом registration.php положить похожий скрипт, который будет брать инвайты из того же текстового файла и таким образом настроить раздачу инвайтов при оплате через другие платежные системы. Но в таком случае, понадобится зарегистрироваться еще на каком нибудь сервисе предоставляющем услуги смс рассылок, а сам скрипт дополнить кодом, который будет отправлять ответные смс через этот сервис, тем кто оплатил регистрацию другим способом.

Может быть в будущем опишу подобный пример с другим платежным сервисом. Может быть это сделает кто то другой)


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

Перед началом работы делайте резервные копии изменяемых файлов и таблиц в базе данных, если что то пошло не так... я не виноват)))



Архив
http://www.instantcms.ru/users/files/download5308.html


Instantcms.ru


Похожие статьи:

Новости разработчиковЗаменяем название компонента, url и т.д. на примере FAQ

Новости разработчиковАнонс модуля "Поощрение пользователей"

Новости разработчиковЗагрузка расширений через админку

Новости разработчиковМодуль аккардион статей

Новости разработчиковКомпонент Сервис Ёлок ver.1.1

Теги:
Рейтинг: 0 Голосов: 0 611 просмотров
Комментарии (0)

Нет комментариев. Ваш будет первым!