ДеньгиOnline

2017-01-16 19:48:04

Выставление счёта в общем случае

Пользователь выбирает товар или услугу на сайте Проекта и нажимает кнопку Оплатить. После этого Пользователю предоставляется возможность выбрать метод оплаты и платёжную систему и указать данные, необходимые для совершения платежа.

После получения необходимых данных от Пользователя Проект передаёт данные платежа методом GET/POST в кодировке windows-1251 обработчику ДеньгиOnline по адресу https://www.onlinedengi.ru/wmpaycheck.php. Параметры, которые Проект может передать в ДеньгиOnline, делятся на обязательные и дополнительные. Дополнительные параметры передаются только если это необходимо Проекту. Пользователь выбирает товар или услугу на сайте Проекта и нажимает кнопку Оплатить. После этого Пользователю предоставляется возможность выбрать метод оплаты и платёжную систему и указать данные, необходимые для совершения платежа.

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

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

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

Таблица передаваемых параметров

Параметр Описание параметра Формат параметра Обязательность
project Идентификатор Проекта, полученный в процессе технического подключения. цифровой код Да
amount  Сумма платежа в валюте выбранной Платёжной системы или в валюте, указанной параметром paymentCurrency (см.ниже). decimal(10.2)  разделитель - точка Да
paymentCurrency

Валюта счёта. Если параметр задан, то значение параметра amount должно быть в указанной валюте.

Конвертация суммы в валюту Платёжной системы, указанной в параметре mode_type, происходит автоматически.

Возможные значения: USD, RUB, EUR, UAH. Да
nickname 

Идентификатор пользователя или заказа. Используется в качестве описания/назначения платежа.

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

windows-1251 Да
mode_type Код метода оплаты и валюты платежа . код согласно приведённой таблице Да
order_id Идентификатор платежа в учётной системе Проекта. до 30 символов Нет
comment  Текстовый комментарий к платежу. Этот параметр замещает nickname при заполнении назначения/описания платежа. string (500) Нет
nick_extra Дополнительные сведения, необходимые для совершения платежа или сбора статистики на стороне Проекта. string (500) Нет
return_url_success Url возврата пользователя на сайт проекта в случае успешно выставленного/оплаченного счета http://dengionline.com/success Нет
return_url_fail Url возврата пользователя на сайт проекта в случае неуспешно выставленного/оплаченного счета http://dengionline.com/fail Нет
account_FirstName Имя плательщика латинскими буквами

string

/^[A-Za-z_\-\.,;:\\\@\/#\$%\&\*\(\)\[\] ]{1,150}$/

Да,

только для mode_type 

671 или 672

account_LastName Фамилия плательщика латинскими буквами

string

/^[A-Za-z0-9_\-\.,;:\\\@\/#\$%\&\*\(\)\[\] ]{1,150}$/

account_Address Адрес плательщика латинскими буквами

string

/^[A-Za-z0-9_\-\.,;:\\\@\/#\$%\&\*\(\)\[\] ]{1,50}$/

account_City Город плательщика латинскими буквами

string

/^[A-Za-z0-9_\-\.,;:\\\@\/#\$%\&\*\(\)\[\] ]{1,50}$/

account_CountryCode Двухбуквенный код страны

string

/^[A-Z]{2}$/i

account_PostalCode Почтовый индекс плательщика

string

/^[a-zA-Z0-9 ]{0,50}$/

account_Email Email плательщика

string

/^[A-Za-z0-9_\-\.@\+]{1,100}$/

account_Mobile Номер телефона плательщика

string

/^[0-9]{1,20}$/

account_ClientIP IP адрес плательщика

string

/^(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])){3}$/

 

После совершения Пользователем оплаты выставленного счёта происходит автоматическое перенаправление Пользователя на страницу результата платежа на сайте Системы или сайте Проекта, если Проект предоставил соответствующие URL в Технических настройках проекта в Личном кабинете.

В системе существует 3 страницы, которые могут быть показаны пользователю по завершению оплаты:

  • URL возврата пользователя на сайт проекта в случае успешного платежа (задается параметром return_url_success в запросе при выставлении счета),
  • URL возврата пользователя на сайт проекта в случае ошибки во время платежа (задается параметром return_url_fail в запросе при выставлении счета),
  • URL возврата пользователя на сайт проекта в случае сатуса платежа "в процессе обработки" (к примеру, платежи через Мегафон, Евросеть) (указывается в техническом опроснике при подключении, по умолчанию редирект будет происходит на URL сайта Проекта).

На данные URL методом GET/POST будут переданы следующие параметры:

  • project,
  • amount,
  • amount_rub,
  • nickname,
  • mode_type,
  • order_id,
  • nick_extra,
  • paymentid,
  • comment,
  • DOL_SIGN,

где*:

Параметр Описание параметра Формат параметра
amount_rub Сумма платежа в рублях. decimal(10.2) разделитель - точка
paymentid Уникальный идентификатор платежа в системе Деньги Online. integer (30)
DOL_SIGN Контрольная подпись запроса. Формируется как хэш по алгоритму md5 от конкатенации всех параметров, передаваемых в запросе, отсортированных в алфавитном порядке. Наименование параметра = значение параметра + секретное слово проекта. md5('amount=' . $amount . 'amount_rub=' . $amount_rub . 'mode_type=' . $mode_type . 'nick_extra=' . $nick_extra . 'nickname=' . $nickname . 'order_id=' . $order_id . 'paymentid=' . $paymentid . 'project=' . $project . секрет проекта)

При этом имена параметров, начинающиеся с $, являются значением этих параметров, т.е., например, $amount = 1.0000.

* Остальные параметры описаны в таблицах обязательных и дополнительных параметров выше.

Пример минимальной внешней формы

<form action="https://www.onlinedengi.ru/wmpaycheck.php" method="post"> 
<input type="hidden" name="project" value="..."> 
<input type="hidden" name="order_id" value="..."> 
<input type="hidden" name="paymentCurrency" value="..."> 
Ваш ник: <input type="text" name="nickname" value="..."> 
Сумма к оплате, в валюте платёжной системы: <input type="text" name="amount" value="..."> 
Способ оплаты: <select name="mode_type"> <option value="1001">WebMoney WMZ</option> <option value="1002">WebMoney WMR</option> ... </select>
<input type="submit" value="Оплатить!"> 
</form>