ДеньгиOnline

2017-07-29 03:29:06

Денежные переводы

Обратите внимание:  сумма, которую оплачивает Пользователь, может отличаться от суммы выставленного счёта. 

Параметры запроса от Проекта в Систему 

При выставлении счёта на оплату с помощью денежных переводов в фоновом режиме параметр mode_type принимает специальное значение. 

К системам денежных переводов относятся следующие методы оплаты:

  1. система "Рапида" (mode_type=54);
  2. касса Евросети (mode_type=62).

При этом к набору параметров, передаваемых для выставления счёта в обычном режиме, добавляется еще два обязательных параметра: 

Дополнительные параметры для запроса выставления счёта на оплату денежными переводами:

Параметр Описание параметра Формат параметра Обязательность параметра
xml Идентификатор способа формирования ответа на запрос 1 Да
md5

Контрольная подпись запроса. Формируется как хэш по алгоритму md5 от конкатенации следующих параметров:

  1. секретный ключ проекта,
  2. ID проекта в Системе,
  3. значение параметра amount без нолей после запятой,
  4. значение параметра mode_type,
  5. значение параметра order_id

md5(секрет проекта.project.floatval(amount).mode_type.order_id)

Да

Параметры ответа Системы

После обработки переданных Проектом данных Система присылает ответ в формате XML и кодировке UTF-8, содержащий следующие тэги:

Параметр Описание параметра Формат параметра
status Код статуса выставления счёта

0 - запрос успешно обработан,

-1 - ошибка при запросе

comment Текстовая расшифровка статуса или перечисление всех обнаруженных ошибок string
ODpaymentData В случае успешного выставления счёта - его реквизиты. Реквизиты счёта должны быть показаны Пользователю для совершения оплаты В ноде ODpaymentData будут переданы тэги DataForUser, содержащие реквизиты счёта в формате <DataForUser title=”Наименование параметра” value=”Значение параметра />

Пример ответа в случае успешного выставления счёта:

<?xml version="1.0" encoding="UTF-8"?>
<response>
	<status>0</status>
	<comment>Запрос успешно обработан</comment>
	<ODpaymentData>
		<DataForUser title="Получатель платежа" value="Деньги Online" />
		<DataForUser title="Номер платежа" value="3672080" />
	</ODpaymentData>
</response>

Пример ответа в случае ошибки выставления счёта:

<?xml version="1.0" encoding="UTF-8"?>
<response>
	<status>-1</status>
	<comment><![CDATA[Некорректно заполнена Сумма платежа]]></comment>
</response>

Пример реализации запроса на выставления счёта для оплаты денежными переводами (PHP)

<?php 
$secret = 'XXXXXX'; 
$vars = array( 
	'project' => 123, 
	'nickname' => 'payment to test project', 
	'order_id' => '123456', 
	'amount' => 10, 
	'paymentCurrency' => 'RUB',
/* 
 * Для выставления счёта на другую систему нужно 
 * изменить значение параметра mode_type:
 * 54 - Рапида
 * 62 - Евросеть
 	*/ 
	'mode_type' => 62, 
	'xml' => 1, 
); 
 
$vars['md5'] = md5($secret.$vars['project'].floatval($vars['amount']).$vars['mode_type'].$vars['order_id']); 
 
$ch = curl_init('https://www.onlinedengi.ru/wmpaycheck.php'); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$res = curl_exec($ch); 
curl_close($ch); 
?>