Для проведения ежемесячных платежей необходимо провести первый платеж по карте клиента.
Это делается через личный кабинет на сайте, клиент сам проводит первую оплату.
В этом случае сайт должен взаимодействовать с КлабИС средствами API, передавая необходимые данные об оплате.
1. Администратор - Параметры - Интернет-эквайринг: добавляются все реквизиты, полученные в Payonline
- Merchant ID и Приватный ключ - это параметры, которые вы получаете от PayOnline.
- Callback URL - это полный адрес, на который настроена служба web-service + некоторый уникальный путь, например:
http://IP:порт/payonline/
- IP клиента - параметр, который требует сервис PayOnline при проведении авторизации. При оплаты с сайта будет передаваться реальный ip клиента, с которого он зашел, оставить пустым.
2. Настройка служб - web-service
- настраивается и устанавливается служба web-service, которая производит отправку регулярных платежей, принимает запросы API при оплате с сайта.
3. Менеджер - Контракт клиента - Оплата - Регулярные платежи
- проведение регулярных платежей описано в инструкции: Автоплатеж.
API: RESTful API
В разделе Авторизация описано, как предоставить доступ.
Методы, которые могут быть полезны для поиска клиента:
- contracts/memberships - контракты клиентов - именно отсюда нам нужен id (привязаны к анкетам по persons_profile_id)
- persons/profiles - анкеты клиентов (можно найти анкету по email)
- persons/phones - телефоны клиентов (можно найти анкету по номеру телефона)
При проведении оплаты с Payonline приходит callback, нужно пересылать его на http://IP:порт/payonline/success?client_id=id (где id - из contracts_memberships). (Адрес указан с учетом того, что web-service запущен на http://IP:порт/ а в настройках программы указан Callback URL: http://IP:порт/payonline)
Можно пересылать не весь callback, нас из него интересуют только параметры TransactionID, OrderId, PaymentAmount, RebillAnchor.
GET или POST запрос - неважно, главное, чтобы были указанные параметры + client_id.
Если в ответ не вернулся код 200, значит что-то пошло не так, оплата в базе не создана.
Авторизация та же, что и для API.