UniFi — Интеграция платежного сервиса PayPal Standard с сетью беспроводного доступа (контроллер версии V3+)

Учетная запись PayPal Standard является бесплатной и поэтому Paypal во многом ограничила ее функционал. Одно из ограничений состоит в том, что для Paypal standard не разрешено использовать программные интерфейсы (API). Другими словами, Вы не можете привязать контроллер UniFi непосредственно к учетной записи Paypal Standard, как описано в справочном руководстве для интеграции с PayPal Pro. Чтобы все работало, Вам потребуется внешний web-сервер, позволяющий включить сервис мгновенного уведомления о платежах Paypal Instant Payment Notification (IPN) для успешной интеграции учетной записи Paypal Standard с беспроводной сетью UniFi.
Такая интеграция сложнее, ее настройка занимает больше времени. Кроме того, требуются некоторые усилия по обеспечению ее работоспособности, вследствие того, что в архитектуру вводятся новые объекты и это увеличивает ее сложность. Данный пример развертывания* разработан для демонстрации того, как учетную запись PayPal Standard можно интегрировать с беспроводной сетью UniFi, при этом мы не владеем собственным внешним web-сервером. Заметим, что мы (группа технической поддержки Ubiquiti UniFi) можем быть уверены лишь в том, что интерфейс нашего контроллера UniFi с внешними порталами является функционально корректным. Ответственностью собственника внешнего сервера является бесперебойность работы сервера и правильная обработка ошибок.
Пример, приведенный в данной статье был разработан в Paypal Sandbox , тестовой среде, предоставляемой Paypal разработчикам. Она обеспечивает такой же UI / API — интерфейс, что и обычный web-сайт PayPal. Если Вы обнаружите различия, сообщите об этом в PayPal.

2581

UniFi Integration with Paypal Standard

Интеграция UniFi с платежным сервисом Paypal Standard

Switch

Коммутатор

UniFi Controller

Контроллер UniFi

Redirect

Переадресация

External Portal Server

Внешний сервер портала

Buy Now

Купить сейчас

Ограничение ответственности

  1. Шаги процедуры, описанные ниже относятся к специализированному порталу на контроллере версии 3.2.1, поэтому используется соответствующая нумерация строк со ссылками. Если Вы используете контроллер версии меньше 3, рекомендуется игнорировать нумерацию строк со ссылками, либо, что предпочтительнее, выполнить обновление до версии 3.2.1. Эти шаги будут хорошо работать на будущих версиях 3.x.
  2. Рекомендуется сконфигурировать apache2 с SSL и установить коммерческий сертификат. В данной статье не рассматривается, как это сделать. Без SSL, обратная связь от PayPal к контроллеру при авторизации гостя не будет криптозащищенной.
  3. При точном соблюдении этих шагов Вашему гостю при доступе до аутентификации будут доступны около 17 миллионов IP-адресов. Так происходит потому, что IP-адреса PayPal имеют географическую привязку и происходит ротация IP-адресов. Чтобы найти подходящие IP-адреса для Вашего региона, необходимо выполнить поиск в следующих доменах:
    • paypal.com
    • ipnpb.paypal.com
    • sandbox.paypal.com
    • paypalobjects.com

Шаги процедуры

Часть I. Подготовка web-сайта внешнего портала (Apache, PHP, портал в примере с UniFi)

Данный пример использует Ubuntu 12.04 LTS, однако будет работать с любым дистрибутивом на базе Linux. Благодаря этим шагам, при работе под Ubuntu, менеджер пакета использует команду aptitude с соответствующим синтаксисом. Если Вы используете другую разновидность ОС Linux, см. руководство по менеджеру пакетов. Кроме того, для машины внешнего web-сервера необходим IP-адрес в интернете (для использования позже сервиса Paypal IPN необходима отправка сообщений по обратному каналу), либо на межсетевом экране должен быть включен «проброс порта».

  1. Установите Apache2 и PHP5:

apt-get install apache2 php5

  1. Убедитесь, что Apache2 работает, для этого в адресной строке браузера введите http://127.0.0.1 или, если используется отдельная машина, http://[Portal’s IP address]. Если Apache2 работает, Вам потребуется стандартная страница Apache2.
  2. Создайте каталог в /var/www , в котором будут храниться страницы Вашего портала:

mkdir /var/www/myportal

  1. Перейдите на основную страницу web-сервера:

cd /var/www

  1. Загрузите образец портала:

wget http://dl.ubnt.com/unifi/3.2.10/portal_sample_paypal.zip

    • Запишите на бумаге номер версии в URL
  1. Разархивируйте образец портала:

tar -xvf portal_sample_paypal.tar.gz

  1. Измените имя папки на более удобное для Вас:

mv portal_sample_paypal myportal

  1. Проверьте расширение используемого файла:

echo ‘<?php phpinfo(); ?>’ > info.php

    • Перейдите в http://[IP-адрес портала]
    • На клавиатуре нажмите Ctrl+F
    • Выполните поиск для «openssl» и «curl»
      • Должен быть установлен и по умолчанию включен OpenSSL.
      • Если curl не найден, Вы можете установить его командой
        1. apt-get install curl libcurl3 libcurl3-dev php5-curl php5-mcrypt
        2. nano /etc/php5/apache2/php.ini
        3. Прокрутите файл вниз и отыщите закомментированную строку с текстом «Dynamic Extensions» (Динамические расширения)
        4. Прокрутите файл дальше вниз за блок комментариев «Dynamic Extensions»
        5. Создайте новую строку и введите

extension=curl.so

        1. Сохраните файл и выйдите из редактора.
        2. Перезапустите apache2:

service apache2 restart

  • Перейдите в каталог портала:

cd myportal

  • Отредактируйте файл paypal_ipn.php:

nano paypal_ipn.php

    1. На клавиатуре нажмите Ctrl+W (на дальнейших шагах эта комбинация клавиш вызывает окно поиска)
      • Откроется панель поиска, введите в ней

username

и нажмите клавишу Enter на клавиатуре.

      • Поиск приведет Вас к строке 103, подтвердить которую можно, нажав комбинацию клавиш Ctrl+C.
    1. Удалите «ubnt», замените его именем пользователя контроллера (оставьте его в одинарных кавычках)
    2. В следующей строке, $password, удалите «ubnt» и замените его паролем к Вашему контроллеру (и опять, оставьте пароль окруженным одинарными кавычками)
    3. На следующей строке, $baseurl, измените IP-адрес (если требуется)
    4. На следующей строке, $site, измените имя сайта (если требуется)
    5. С особым вниманием отнеситесь к строкам 60, 62 и 64:

if (strcmp ($_POST[‘option_selection1’], «8-Hour Pass») == 0) {
} else if (strcmp ($_POST[‘option_selection1’], «1-Day Pass») == 0) {
} else if (strcmp ($_POST[‘option_selection1’], «3-Day Pass») == 0) {

Здесь используются имена Ваших пакетов, они должны  ТОЧНО СОВПАДАТЬ (В ТОМ ЧИСЛЕ И ПО РЕГИСТРАМ БУКВ) с именами пакетов, которые Вы ввели, когда создавали свои кнопки PayPal.
Если Вам потребуется ввести другие имена пакетов, Вы можете изменить имена в файле paypal_ipn.php.
Если Вы желаете добавить пакет, скопируйте и вставьте оператор else-if включая } и { и вставьте их перед оператором else.
Если Вы желаете удалить пакет, удалите его оператор else-if.

    1. Сохраните файл и выйдите из редактора.
  • Создайте журнал и файл cookie, назначьте соответствующие привилегии:
    1. touch log.txt
    2. chmod 777 log.txt
    3. touch unifi_cookie.txt
    4. chmod 777 unifi_cookie.txt

Часть II. Подготовка PayPal

В следующих шагах продемонстрировано, как создать две кнопки, — кнопку production (эксплуатация) и кнопку sandbox (тестирование).
Кнопку production (эксплуатация) следует использовать, когда Вы будете готовы начать прием реальных платежей от Ваших гостей.
Кнопку sandbox (тестирование) следует использовать для тестирования и проверки Вашего кода.
Учетную запись для тестирования невозможно использовать в среде эксплуатации. Учетную запись для среды эксплуатации невозможно использовать в среде тестирования. Необходимо соблюдать соответствие тестирование <—> тестирование  или эксплуатация <—> эксплуатация.

 

Создание учетной записи для тестирования

  1. Создайте учетную запись разработчика (если только Вы уже не сделали это) на https://developer.paypal.com/
  2. После того, как Вы зарегистрируетесь с этой учетной записью, используйте меню, чтобы перейти в Applications (Приложения).
  3. Меню будет находиться слева, выберите в нем Sandbox accounts (Учетные записи для тестирования)

2582

  1. В правом верхнем углу экрана выберите кнопку Create Account (Создать учетную запись).
    • Введите значения в соответствии со своими требованиями.
    • Для данной тестовой учетной записи рекомендуется выбрать баланс не менее $200.00
  2. Запишите на бумаге email-адрес, сгенерированный при создании учетной записи. Он будет использоваться при тестировании сайта.

 

Создание кнопки Sandbox (Тестирование)

Теперь, когда Вы создали учетную запись для тестирования, можно зарегистрироваться в PayPal Sandbox, используя эти идентификационные данные.

  1. Зарегистрируйтесь под своей учетной записью для тестирования на сайте https://www.sandbox.paypal.com/
  2. На главной странице Вы увидите опцию для «My Saved Buttons»(Мои сохраненные кнопки), щелкните по ней.

2583

3. Справа Вы увидите опцию для «Create new button»(Создать новую кнопку), щелкните по ней.

2584

4. Структурируйте Вашу кнопку так, как показано на странице ниже

2585

  1. Имейте в виду, что Item Name (Имя объекта), Name of drop-down menu (Имя раскрывающегося меню) и Price (Цена) могут бытьизменены в соответствии с Вашими требованиями
    Однако, Menu option name (Имя меню опции) должно совпадать с тем, которое Вы указали в файле paypal_ipn.php (чувствительно к регистру букв)
  2. Щелкните кнопку Create (Создать)
  3. Теперь Вы имеете код, который необходимо скопировать в буфер обмена. Скопируйте код.
  4. Вернитесь обратно в Ваш сервер портала

nano index.php

  1. Отыщите блок комментариев встроках 44-50.
  2. Удалите все знаки «звездочка» (*)
  3. Вставьте Ваш код, начиная со строки 45, внутри блока комментариев HTML
    • Если Вы желаете посмотреть на свою кнопку sandbox ( тестирование) на портале, удалите блок комментариев, сохраните файл и выйдите из редактора, затем загрузите страницу index.php в браузер.
  4. Сохраните файл и выйдите из редактора.

 

Создание кнопки Production (Эксплуатация)

  1. Зарегистрируйтесь под своей учетной записью PayPal на сайте https://www.paypal.com/
  2. На главной странице Вы увидите опцию для «Tools»(Инструменты), щелкните по ней.
  3. Теперь у Вас должна быть опция для «PayPal Buttons» (Кнопки PayPal).
  4. Структурируйте Вашу кнопку так, как показано на странице ниже

2586

  1. Имейте в виду, что Item Name (Имя объекта), Name of drop-down menu (Имя раскрывающегося меню) и Price (Цена) могут бытьизменены в соответствии с Вашими требованиями
    Однако, Menu option name (Имя меню опции) должно совпадать с тем, которое Вы указали в файле paypal_ipn.php (чувствительно к регистру букв)
  2. Щелкните кнопку Create (Создать)
  3. Теперь Вы имеете код, который необходимо скопировать в буфер обмена. Скопируйте код.
  4. Вернитесь обратно в Ваш сервер портала
  5. nano index.php
  6. Отыщите блок комментариев, начинающийся со строк 36-42.
  7. Удалите все знаки «звездочка» (*)
  8. Вставьте Ваш код, начиная со строки 37, внутри блока комментариев HTML
    • Если Вы желаете посмотреть на свою кнопку Production ( Эксплуатация) на портале, удалите блок комментариев, сохраните файл и выйдите из редактора, затем загрузите страницу index.php в браузер.
  9. Сохраните файл и выйдите из редактора.

 

Просмотр Ваших кнопок

Теперь Вы можете посмотреть кнопки, удалив блок комментариев, окружающий кнопку.
Для целей тестирования, код кнопки Production (Эксплуатация) должен быть закомментирован.
Для целей эксплуатации, должен быть закомментирован код кнопки Sandbox (Тестирование).
Для просмотра Вашего кода

  1. Откройте web-браузер
  2. Перейдите на http://[IP-адрес Вашего портала]/[Ваш путь к файлам без /var/www]

 

Часть III. Подготовка контроллера

  1. Зарегистрируйтесь в Вашем контроллере UniFi
  2. Выберите нужный сайт портала из раскрывающегося меню в верхнем левом углу экрана.

2587

3. В секции «Settings»>»Guest Control»>»Guest Policies» (Настройка — Управление гостем — Правила для гостей) выберите опцию «Enable Guest Portal» (включить гостевой портал), если только Вы уже не сделали этого ранее.

4. Выберите «External Portal Server» (Внешний сервер портала)

5.В поле Custom Portal IP Address (IP-адрес портала, настроенного в соответствии с специальными требованиями) введите IP-адрес Вашего портала. Не  включайте такие лексемы, как «http://», «https://» или путь. По умолчанию UniFi возьмет все, что введено в поле, впереди добавит http:// , а в конце /guest/s/[имя сайта]

2588

Добавьте IP-адреса PayPal в список Allowed Subnets (Разрешенные подсети)

    • IP-адреса PayPal упорядочены географически, так что Вы можете захотеть отыскать IP-адреса, ограничиваясь следующими доменами:
      • paypal.com
      • ipnpb.paypal.com
      • sandbox.paypal.com
      • paypalobjects.com
    • Вы можете сделать это, используя

dig paypal.com

с сервера Вашего портала, а затем скопировать и вставить IP-адреса, которые были с записью А возвращены в разрешенные подсети, добавить в конец «/32» , чтобы указать единственный IP-адрес.

    • Дальнейшую информацию см. в: https://ppmts.custhelp.com/app/answers/detail/a_id/92
    • Альтернативный вариант: Вы можете к своим разрешенным подсетям (Allowed Subnets) добавить следующие:
      • 173.0.0.0/16
      • 64.4.0.0/16
      • 2.22.0.0/16
      • 23.0.0.0/8
      • Примечание: Добавление вышеперечисленных подсетей позволит Вашим гостям получить доступ к 16 973 816 адресам до авторизации в сети, однако на момент написания статьи вышеперечисленные подсети заключают в себе все известные IP-адреса PayPal. Рекомендуется, чтобы Вы отыскали IP-адреса PayPal для Вашего региона и добавили их.
    • Щелкните Apply (Применить) и все настройки будут синхронизированы с Вашими точками доступа UAP.
  • В «Settings»>»Wireless Networks» (Настройки — Беспроводные сети):
    • Если у Вас уже сконфигурирован Guest SSID (Гостевой SSID), щелкните по Edit (Редактировать), выберите опцию Guest Policy (Правила для гостей), затем щелкните Apply (Применить).
    • Если Вам требуется задать новый Guest SSID (Гостевой SSID), щелкните Create (Создать), заполните соответствующие поля, убедитесь, что опция Guest Policy (Правила для гостей) выбрана, затем щелкните Apply (Применить).

 

Часть IV. Тестирование

Чтобы протестировать Ваш новый портал:

  1. nano index.php
  2. Убедитесь, что код кнопки Sandbox (Тестирование) не закомментирован.
  3. Обеспечьте устройство, способное работать с WiFi, привязанное к Guest SSID (Гостевой SSID).
  4. Как только гость будет привязан, откроется вкладка браузера на которой будет отображен Ваш портал с кнопкой Sandbox (Тестирование).
    • Если страница портала еще не открылась и Ваше WiFi-устройство не установило связь с порталом, то это может происходить по многим причинам.
      1. Сайт портала включен в список подсетей с ограничениями. Добавьте IP-адрес портала в список разрешенных подсетей и добавьте в конец адреса /32. Щелкните Apply (Применить), чтобы внести изменения.
      2. Межсетевой экран препятствует связи гостей с порталом.
      3. Убедитесь, что Вы можете войти на сайт портала с другого компьютера той же локальной сети.
  5. Щелкните Buy Now (Купить сейчас). Должно открыться окно регистрации PayPal.
    • Если окно регистрации PayPal не открылось, то скорее всего некорректен Ваш список разрешенных подсетей. Скорректируйте список и повторите все снова.
  6. Зарегистрируйтесь в PayPal под Вашей учетной записью для тестирования
  7. Заплатите (это не реальная оплата, так как во время нее Вы находитесь под учетной записью для тестирования).
  8. Проверьте контроллер UniFi, вкладку Guests (Гости). На ней Вы должны видеть Мас-адрес Вашего устройства и кнопку справа с надписью «Unauthorize» (Прекратить авторизацию).
  9. Поздравляем! Вы успешно интегрировали платежный сервис PayPal Standard с контроллером UniFi.

 

Часть V. Эксплуатация

Чтобы перевести Ваш новый портал в режим эксплуатации:

  1. nano index.php
  2. Убедитесь, что код кнопки Production (Эксплуатация) не закомментирован.
  3. Убедитесь, что код  кнопки  Sandbox (Тестирование) закомментирован.
  4. Сохраните файл и выйдите из редактора.

 

Часть VI. Заключение

Теперь у Вас есть работающий гостевой портал, интегрированный с платежным сервисом PayPal Standard, готовый к приему платежей PayPal. Если в какой-то момент Вам потребуется протестировать PayPal-часть портала, Вы можете просто закомментировать код кнопки Production (Эксплуатация) и убрать комментарии с кода кнопки Sandbox (Тестирование), выполнить тестирование а затем вернуть все блоки комментариев на место. после этого снова включится режим эксплуатации.

 

 

Примечания

* — Мы НЕ будем поддерживать сценарии для этого примера. Пример не должен использоваться в сети предприятия (для производства продукции). Предполагается, что читатель статьи знаком с языками HTML/PHP и услугами Paypal. Это только ПРИМЕР, не пытайтесь просто применить его, сначала подумайте над тем, как изменить каждую его строку в соответствии с Вашими бизнес-условиями.

  1. UniFi — часто задаваемые вопросы (FAQ)
  2. Руководство пользователя Paypal Sandbox
  3. Руководство по мгновенному уведомлению о платежах Paypal

Все авторские права и другие права интеллектуальной собственности на данные материалы являются собственностью Компании «Рутстор» (ROOTSTORE). При использовании данного материала ссылка на сайт rootstore.ru обязательна.

 

Авторизация
*
*
Регистрация
*
*
*
*
Генерация пароля
Заказать звонок



Купить в 1 клик