Описание API для кошелька wallet.onpay.ru (Beta)

Подключение платежной системы Onpay v. 1.0

Для подключения приема платежей необходимо на Вашем сайте или странице в соцсети разместить нашу платежную форму.
Это можно сделать в виде простой ссылки или всплывающего модального окна.

Простая ссылка:
Самый короткий вариант ссылки:
https://wallet.onpay.ru/open_form?value=100&recipient_phone=79991111111
Обязательные параметры:
value=100&recipient_phone=79991111111 (сумма руб. и получатель)
Не обязательные параметры:
&commissioner_phone=79992222222 - получатель комиссии
&payer_phone=79993333333 - плательщик
&commission=10 — комиссия в процентах не более 50%
&pay_for=test — наименование заказа
&comment=test — комментарий

Самый короткий вариант ссылки:
https://wallet.onpay.ru/open_form?value=100&recipient_phone=79991111111

Всплывающее модальное окно:
Для размещения всплывающего окна, необходимо подключить на сайте разместить скрипт:
<script src=«https://secure.onpay.ru/scripts/wallet_frame.js»></script>
Далее нужно добавить к обработчику события оплаты (например, при нажатии кнопки «Оплатить» на вашем сайте) следующий JS код, указав требуемую сумму, номер телефона получателя платежа и получателя комиссии, если таковой имеется.

В случае, если вам известен номер телефона плательщика, его можно указать на этом шаге. Если номер не известен, плательщик введет его во фрейме. Вы можете передать описание товара и комментарий в полях pay_for и comment.
Обязательные поля лишь:
recipient_phone: 79991111111
value: 100

Настройки API

(Только если хотите настроить на сайте автоматическую обработку платежей)

В личном кабинете кошелька Onpay на странице платежной ссылки.
https://wallet.onpay.ru/#/business_card присутствуют настройки API:

Настройки API

Логин — это номер телефона, на который зарегистрирован Личный Кабинет.
Для включения API нужно указать ключ и ссылку на модуль, взаимодействующий с API на вашем сайте. Эти же логин и ключ нужно указать в модуле.

Ключ — это произвольная строка, при помощи который ваш модуль будет подписывать ответы по API. Вы можете его сгенерировать при помощи кнопки «Изменить».
Поле «Ссылка на модуль» будет содержать ссылку на метод API на вашем сайте который будет отвечать на запрос подтверждения проведения перевода.

Ссылка на модуль — это ссылка на модуль на вашем сайте, который будет получать и отвечать на запросы API в формате POST.
Внимание! Если вы включили, но не настроили API платежи в Ваш адрес будут отклоняться!

Порядок работы API

При создании платежа выполняется POST запрос в модуль по ссылке, которая находится в Настройках API в поле «Ссылка на модуль».

Обработка PAY запроса. После заполнения данных, на URL будет присылаться уведомления при выполнении операций на пополнение баланса.
Основные операции:

Пополнение, оплата через форму.

Перевод от одного пользователя другому.

Оплата выставленного счета.

Отправляется POST запрос с параметрами:

{ «order_id»⇒«15491032», «value»⇒«200.0», «recipient_phone»⇒«79894444444», «sign»⇒«50d757df7ae7b5535100f7e3697ad597», «type»⇒«pay», «pay_type»⇒«payin», «payer_phone»⇒«+79034444444», «pay_for»⇒«79894444444», «comment»⇒«123123123», «timestamp»⇒«2018-02-28 12:43:33 +0300» }

Существует 3 различных типа пополнений.
pay_type:

payin - Пополнение

invoice - Оплатили счёт

transfer - Перевод

Формирование подписи выполняется следующим способом:
Хэш MD5 «wallet#{order_id}#{phone}#{value}#{user_api_key}»

order_id - номер заказа (ордера)

phone - телефон получателя

value - сумма пополнения

user_api_key - Ключ пользователя

Параметры запроса:

Название	Тип	Описание
order_id	integer (целое число)	Номер ордера в кошельке (например 1234567890)
payer_phone	string (текст 11 цифр)	Телефон плательщика (например 79991111111)
value	float (число с двумя знаками после запятой)	Сумма в рублях (например 100.00)
recipient_phone	string (текст 11 цифр)	Номер получателя (например 79992222222)
commission (может быть пустым)	float (число с двумя знаками после запятой)	Комиссия в процентах (например 3 или 3.00)
commissioner_phone (может быть пустым)	string (текст 11 цифр)	Телефон комиссионера (например 79993333333)
pay_for (может быть пустым)	string (текст 40 знаков)	Артикул или заказ (например Туфли АА243-17)
comment (может быть пустым)	string (текст 40 знаков)	Комментарий (например Привезите завтра с 11)
sign	string (текст 32 знака)	Подпись (например 9c2c61f27b088b654e7c3194fabe6ab4)
timestamp	string (Формат %Y-%m-%d %H:%M:%S)	Дата Время (например 2017-01-01 11:22:33)

В качестве подписи используется хэш по алгоритму md5 в шестнадцатеричной системе счисления, по строке:
order_id — Номер ордера в кошельке
recipient_phone — Номер получателя
valye — Сумма
user_api_key — Ключ который находиться в настройках API в кошельке
«wallet#{order_id}#{recipient_phone}#{value}#{user_api_key}»

Параметры ответа:

Название	Тип	Описание
order_id	integer (целое число)	Номер ордера в кошельке (например 1234567890)
pay_for	string (текст 40 знаков)	Артикул или заказ (например Туфли АА243-17)
payer_phone	string (текст 11 цифр)	Телефон плательщика (например 79991111111)
status	string (текст до 20 знаков)	Статус платежа: 0 — успех, все остальное отмена
sign	string (текст 32 знака)	Подпись (например 9c2c61f27b088b654e7c3194fabe6ab4)

Подпись хэш по алгоритму mb5 в шестнадцатеричной системы счисления, по строке:
«wallet#{order_id}#{phone}#{status}#{user_api_key}«

Статус 0 в случае успеха, любой другой - в случае неудачи.
Если статус 0 и подпись совпадает, то тогда идут последующие проверки и в случае удачи выполняется перевод.

Перевод на основную сумму можно отменить или принять, перевод комиссии скрыт и принимается при создании.

Пошаговый процесс успешной оплаты

Шаг 1 Клиент вводит свой номер телефона. Шаг пропускается, если телефон плательщика (payer_phone) уже указан в ссылке.

Шаг 2 Клиент вводит свой пароль от личного кабинета Wallet.Onpay.ru (Минимум 8 символов)

Шаг 3 Сообщение об успехе!