ДеньгиOnline

2017-07-29 03:29:06

QIWI-кошелек

При выставлении счёта на оплату QIWI-кошельком в фоновом режиме параметр mode_type принимает специальное значение mobilePayment.

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

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

Параметр Описание параметра Формат параметра Обязательность параметра
mode_type Идентификатор фонового метода оплаты mobilePayment Да
sendQIWIPayment Идентификатор платёжной системы QIWI-кошелёк 1 Да
qiwi_phone Номер кошелька с кодом страны string
например: +79211234567
Да
md5

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

  1. секретный ключ проекта,
  2. ID проекта в Системе,
  3. значение параметра nickname,
  4. значение параметра amount,
  5. значение параметра qiwi_phone,
  6. секретный ключ проекта
md5(strtolower(секрет
проекта.project.nickname.
floatval(amount).phone.секрет проекта))
Да

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

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

Параметр Описание параметра Формат параметра
status Код статуса выставления счёта 0 - запрос успешно обработан,
-1 - ошибка при запросе
comment Текстовая расшифровка статуса или перечисление всех обнаруженных ошибок string
ODpaymentID В случае успешного платежа - идентификатор платежа в Системе integer
iframeSRC Кодированная Ссылка для встраивания в iframe. (Для декодирования использовать функцию base64_decode) string

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

<?xml version="1.0" encoding="UTF-8"?>
<response>
	<status>0</status>
	<comment>Запрос успешно обработан</comment>
	<ODpaymentID>3386642</ODpaymentID>
	<iframeSRC>aHR0cHM6Ly93Ln.......Vl</iframeSRC>
</response>

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

<?xml version="1.0" encoding="UTF-8"?> 
<response>
	<status>-1</status>
	<comment><![CDATA[Контрольная подпись не верна]]></comment>
</response>

Пример реализации запроса на выставления счёта на оплату электронным кошельком QIWI (PHP)

<?php 
$secret = 'XXXXXXX'; 
$vars = array( 
	'project' => 123, 
	'nickname' => 'payment to test project', 
	'mode_type' => 'mobilePayment', 
	'amount' => 100, 
	'qiwi_phone' => '9211234567', 
	'sendQIWIPayment' => 1,
	'paymentCurrency' => 'RUB'
); 
 
$vars['md5'] = $vars['md5'] = md5(strtolower($secret.$vars['project'].$vars['nickname'].floatval($vars['amount']). $vars['qiwi_phone'].$secret)); 
 
$vars = http_build_query($vars); 
 
$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); 
?>