YPay Script - инструкция по установке и использованию

YPay Script - инструкция по установке и использованию


Примечание - поскольку скрипт собирает данные о пользователях - эти данные не должны быть доступны по http.

Соответственно, если вы планируете разместить скрипт на обычном хостинге, а не VPS (что предпочтительнее) - необходимо выбирать хостинг, где веб-сервер указывает на директорию public_html и есть возможность загружать данные как в public_html, так и на уровень выше (в public_html будет загружена только точка входа - index.php, а остальные файлы и папки будут находиться на уровень выше и будут недоступны по http - это важный ньюанс для безопасности данных).

Мы же рассмотрим установку скрипта на VPS/VDS с бесплатной панелью управления VestaCP , как оптимальный вариант (на VPS всегда можно внести правки в конфигурацию сервера самостоятельно, не ведя долгих переписок со службой поддержки хостинга).

СИСТЕМНЫЕ ТРЕБОВАНИЯ:

  • PHP 7.1 и выше:
  • Установленный ioncube loader
  • отключенный open_basedir

Шаг 1 - приобретаем VPS, устанавливаем панель управления VestaCP

Для работы скрипта подойдет любой виртуальный сервер (VPS либо VDS), с операционной системой CentOS 7 x64 без предустановленной панели управления.

Панель управления VestaCP мы установим самостоятельно по инструкции с оф. сайта, так как варианты с предустановленной панелью могут отличаться у разных хостеров по конфигурации, версиям PHP и т.д., в отличие от чистой версии ОС CentOS 7 x64.

1) Подключаемся к серверу по SSH (для windows можно использовать клиент putty, я же буду использовать консоль iTerm на Mac OS):

Подключение к серверу по ssh

2) Устанавливаем панель VestaCP в базовом варианте - для работы его будет достаточно. Следуем инструкции с официального сайта панели: https://vestacp.com/install/ :

инструкции по установке VestaCP

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

# Download installation script
Запуск установки vesta

Нажимаем y, вводим почту админа, можно вымышленную, и хостнейм сервера - можно оставить по умолчанию:

Ввод почты и хостнейма

Установка пошла, обещает устанавливаться около 15 минут но на деле все происходит обычно сильно быстрее. Наблюдаем за процессом установки и не вмешиваемся.

Установка запущена


В конце установки получаем данные доступа к свежеустановленной панели, сохраняем их.

Установка выполнена

3) Сразу же отключим open_basedir в шаблонах конфигурационных файлов apache, чтобы в дальнейшем не приходилось это делать вручную в конфигурационных файлах добавляемых на сервер доменов. Для этого нам нужны минимальные навыки работы в ssh:

Переходим в директорию шаблонов:

cd /usr/local/vesta/data/templates/web/httpd


Далее, c помощью редактора nano, или любого другого который знаете - редактируем файлы default.tpl (шаблон для http) и default.stpl (шаблон для https).

Если получаем предупреждение "bash: nano: command not found", значит нужно установить nano с помощью команды yum install nano -y:

Установка nano

Редактор установлен, редактируем шаблоны конфигов c помощью nano:

nano default.tpl

Меняем строку

php_admin_value open_basedir %docroot%:%home%/%user%/tmp

на:

php_admin_value open_basedir none

Должно получиться так:

Сохраняем файл с помощью комбинации клавиш Ctrl+x:

редактор спрашивает, сохранить ли файл, нажимаем y:

Нажимаем Enter, выходим из редактора, шаблон отредактирован.

То же самое проделываем с файлом default.stpl с помощью команды:

nano default.stpl

4) Обновим php до нужной версии - рекомендую 7.2 , и установим Ioncube:

С помощью nano открываем файл /etc/yum.repos.d/remi-php72.repo :

nano /etc/yum.repos.d/remi-php72.repo

В блоке [remi-php72] меняем enabled=0 на enabled=1:

Сохраняем файл так же как делали с шаблонами выше.

Запускаем обновление php и установку Ioncube loader с помощью команды:

yum update php* -y; yum install php-ioncube-loader -y

В результате должно получиться так (проверяем версию php с помощью команды php -v):

Шаг 2 - Добавляем домен на сервер

Домен должен быть привязан (направлен А-записью на IP сервера). Привязка домена к серверу или хостингу - это базовое понятие, которое должно быть известно любому веб-мастеру, поэтому расписывать подробно этот пункт не будем.

В нашем случае, у нас есть сервер 37.143.14.9 и домен ypayscript.com , уже привязанный к нему. Пингуем, проверяем:

Заходим в панель VestaCP (данные к ней нам высылает хостер, если панель предустановлена, либо сообщает инсталлятор в конце установки, если ставим панель сами), и добавляем домен

В разделе WEB добавляем наш домен:


Открываем домен в браузере по ссылке http://ypayscript.com/- результатом должна быть заглушка, если все сделано правильно:

Желательно подключить также SSL-сертификат. Vesta хороша тем, что поддерживает автоматическое подключение бесплатных SSL-сертификатов LetsEncrypt, которые полностью валидны для браузеров и не уступают недорогим платным сертификатам.

Чтобы подключить сертификат, переходим в редактирование нашего домена.

Удаляем содержимое поле aliases (в него кстати в дальнейшем можно будет добавлять новые домены при необходимости смены домена скрипта):

Отмечаем опции для SSL:


Сохраняем, проверяем работу сайта по https://ypayscript.com/. Если все сделано правильно, то увидим такую картину:


Шаг 3 - загружаем скрипт по FTP на сервер:

Подключаться по фтп нужно от имени пользователя, для которого добавлен сайт. В нашем случае это admin:

Переходим в директорию /web/ypayscript.com, загружаем в нее содержимое архива со скриптом, за исключением директории public:

Также в эту же директорию нужно загрузить файл лицензии lic.dat , полученный от продавца после оплаты, иначе скрипт работать не будет!


Содержимое директории public из архива со с криптом загружаем в public_html на сервере:

Сохраняем,

Шаг 4: проверяем установку скрипта

Открываем сайт в браузере, если все сделано правильно - должна быть такая картина (главная страница не используется - поэтому скрипт выдает сообщение Page Not Found, здесь все верно!):

Шаг 5 - настройка скрипта для приема оплат

Вся настройка приема оплат производится за счет редактирования конфигурационного файла: src/Config.php:


По комментариям к переменным в конфиге, в принципе, все понятно, но давайте рассмотрим подробно каждый момент.

1) Выбираем режим работы:

  • tele2cards (p2p оплата на карты, рекомендуемый способ);
  • tele2phone - оплата на сим карты tele2;
  • yandex (оплата на кошельки яндекса по апи, на данный момент не рекомендуемый способ в связи с участившейся блокировкой кошельков).
  • kievstar - оплата на сим карты Kievstar (Украина), подходит только для установки оплат для Украины - в переменной $mode_UA.

Режимы задаем в переменных $mode (глобальный способ) и $mode_UA (режим для Украины) как на скрине выше.

Логика работы скрипта следующая - после ввода карты определяется страна карты по ее номеру. Если Украина - проводим платеж через режим, установленный в $mode_UA, если другая страна - то через режим, установленный в $mode.


Если выбран yandex:

1) Первым делом нужно получить Yandex API ID, делается это для того, чтобы получать по апи от яндекса задания на прием оплат. API ID нужен только для одного кошелька, а не для каждого, то есть получить его нужно только один раз.

Для этого сначала создаем приложение в яндекс деньгах по ссылке https://tech.yandex.ru/money/apps/?_openstat=settings%3Bother%3Bapps%3Bapi :

Заполняем поля примерно так (на самом деле эти данные ни на что не влияют и нам нужен только идентификатор приложения):

Вписываем идентификатор в конфиг, в переменную $yandexApiID:

Далее настраиваем кошельки на которые мы будем принимать оплаты:

Если выбран tele2cards: просто задать карты для приема средств в массиве $tele2cards:


Если выбран tele2phone: просто задаем кошельки для приема в массиве $tele2phones, без пробелов и без +, начиная с 7:

Если выбран kievstar - просто задаем кошельки для приема в массиве $kievstar_phones, без пробелов и без +, начиная с 380.

В переменной $rur_to_uah устанавливаем курс рубля к гривне.

После этого можно протестировать прием оплат на первом платеже который уже есть в конфиге:

Для каждого платежа формируются две ссылки:

1) http://ypayscript.com/start/pay1 - форма ввода емейла и имени, пригодится для сбора базы клиентов. Шаблон данной формы - templates/theme1.html

2) Наша форма ввода карты: http://ypayscript.com/card-input/pay1 . Шаблон данной формы - templates/cards/card1.html :

Настоятельно рекомендую проверить оплату на товаре на 1 рубль чтобы убедиться , что все настроено верно.

В случае успешного платежа - скрипт выполнит редирект пользователя на ссылку success_url платежа, в случае неуспешной - на fail_url.

Чтобы принимать оплаты - вешаем наши ссылки http://ypayscript.com/start/pay1 (можно сразу http://ypayscript.com/card-input/pay1 , если не нужно сохранять данные о пользователе) , где pay1 - идентификатор платежа из конфига, на наши лендинги продажи товаров на ссылку "купить", либо даем их покупателям напрямую - это уже зависит от того, что и как вы собираетесь продавать.

В последнем обновлении добавлена также статистика последних оплат и удобный вывод апселлов из конфига:

статистика

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

http://ypayscript.com/stat?key=secret

Где secret - значение переменной $secretKey из конфига:


Дополнительные материалы:

https://telegra.ph/YPay-Script---opisanie-skripta-i-FAQ-02-23 - описание скрипта с видео процесса приема оплаты.

http://project1147174.tilda.ws/page4952280.html - тестовая оплата на 1 рубль.

Report Page