QIWI новый протокол
Для начала вам нужно зарегистрировать свой магазин ishopnew.qiwi.ru
ishopnew.qiwi.ru/faq.html
Под катом небольшие готовые варианты. Может пригодиться.
cURL
Выставление счета пользователю
Запрос статуса счета
Переадресация для оплаты счета
Отмена неоплаченного выставленного счета
Возврат средств по оплаченному счету
Проверка статуса возврата
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 комментариев
Вставка изображения
Сказать что-нибудь