QIWI новый протокол

Статьи
Для начала вам нужно зарегистрировать свой магазин ishopnew.qiwi.ru
ishopnew.qiwi.ru/faq.html

Под катом небольшие готовые варианты. Может пригодиться.

cURL
$requestType = 'POST'; // Для REST запросы разного типа
$url = 'some url'; // Зависит от выполняемого действия
$parameters = array(); // Так же зависит от запроса
$loginPass = $id . ':' . $password; // ID магазина и пароль(пароль нужно получить у менеджера)
$headers = array(
    "Accept: text/json",
    "Content-Type: application/x-www-form-urlencoded; charset=utf-8"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $loginPass);

if ($requestType != 'GET') {
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $requestType);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($parameters));
}
$httpResponse = curl_exec($ch);
if (!$httpResponse) {
    // Описание ошибки, к примеру 
    echo curl_error($ch).'('.curl_errno($ch).')';
    return false;
}
$httpResponseAr = json_decode($httpResponse);
return $httpResponseAr->response;


Выставление счета пользователю
$requestType = 'PUT';
$url = 'https://w.qiwi.com/api/v2/prv/{prv_id}/bills/{bill_id}';
// {prv_id} – тут важно помнить, что это ваш ID магазина.
// {bill_id} – любое уникальное число, к примеру номер записи операции или номер счёта из базы.
$parameters = array(
    'user' => 'tel:+79999999999',
    'amount' => 0.1,
    'ccy' => 'RUB',
    'comment' => 'Оплата QIWI',
    'pay_source' => 'qw',
    'lifetime' => date('c', $timePlusHour),
    'prv_name' => 'QIWI',
);


Запрос статуса счета
$requestType = 'GET';
$url = 'https://w.qiwi.com/api/v2/prv/{prv_id}/bills/{bill_id}'; // Аналогично выше
$parameters = array();


Переадресация для оплаты счета
$url = 'https://w.qiwi.com/order/external/main.action?shop={prv_id }&transaction={bill_id}';
$url .= '&successUrl=' . $successUrl;
$url .= '&failUrl=' . $failUrl;
// {prv_id} и {bill_id} всегда постоянны для одного платежа. 
// $successUrl и $failUrl адреса ваших обработчиков успешных и неуспешных операций по оплате.


Отмена неоплаченного выставленного счета
$requestType = 'PATCH';
$url = 'https://w.qiwi.com/api/v2/prv/{prv_id}/bills/{bill_id}'; // Аналогично выше
$parameters = array(
    'status' => 'rejected'
); 


Возврат средств по оплаченному счету
$requestType = 'PUT';
$url = 'https://w.qiwi.com/api/v2/prv/{prv_id}/bills/{bill_id}/refund/{refund_id}'; // Аналогично выше, только {refund_id} должен быть уникален
$parameters = array(
    'amount' => $amount
); 


Проверка статуса возврата
$requestType = 'GET';
$url = 'https://w.qiwi.com/api/v2/prv/{prv_id}/bills/{bill_id}/refund/{refund_id}'; // Аналогично выше, только {refund_id} должен быть уникален и совпадать с указанным выше
$parameters = array(); 

0 комментариев

Сказать что-нибудь