Проверка платежа
Проверка платежа
Прежде чем доставить товар (оказать услугу), Интернет-ресурс обязан проверить совершенный покупателем платеж.
Для проверки платежа при возврате на страницу Интернет-ресурса, указанную в поле wsb_return_url, необходимо выполнить API команду биллинга get_transaction (только для интернет-эквайринга).
Необходимо учитывать, что запрос к тестовой среде необходимо отсылать на адрес https://sandbox.webpay.by, а к реальной среде https://billing.webpay.by.
$postdata = '*API=&API_XML_REQUEST='.urlencode('
<?xml version="1.0" encoding="ISO-8859-1" ?>
<wsb_api_request>
<!-- Название метода -->
<command>get_transaction</command>
<authorization>
<!-- Логин от личного кабинета WEBPAY -->
<username>your_username</username>
<!-- Пароль от личного кабинета WEBPAY, зашифрованный в MD5 -->
<password>your_md5_password</password>
</authorization>
<fields>
<!-- ID транзакции, по которой осуществляется проверка.
Значение приходит в нотификаторе -->
<transaction_id>123456789</transaction_id>
</fields>
</wsb_api_request>
');
$curl = curl_init ("https://sandbox.webpay.by");
curl_setopt ($curl, CURLOPT_HEADER, 0);
curl_setopt ($curl, CURLOPT_POST, 1);
curl_setopt ($curl, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 0);
$response = curl_exec ($curl); curl_close ($curl);
echo $response;В результате выполнения запроса приходит XML-документ, содержащий следующие поля:
| Название | Описание |
|---|---|
transaction_id | Номер транзакции |
batch_timestamp | Время совершения транзакции |
currency_id | Валюта транзакции |
amount | Сумма транзакции |
payment_method | Метод совершения транзакции. Возможные значения:
|
payment_type | Тип транзакции. Успешной оплате соответствуют значения: 1 и 4 |
order_id | Номер заказа в системе WEBPAY |
rrn | Номер транзакции в системе VISA/MASTERCARD/БЕЛКАРТ |
wsb_signature | Электронная подпись (вычисляется в случае, если в настройках биллинг-аккаунта указан Секретный ключ) |
wsb_signature представляет собой hex-последовательность и является результатом выполнения функции MD5. В качестве аргумента функции MD5 служит текстовая последовательность, полученная путем простой конкатенации следующих полей:
transaction_idbatch_timestampcurrency_idamountpayment_methodpayment_typeorder_idrrnSecretKey
Поля должны быть объединены в указанном порядке.
Обратите внимание
В случае если по каким-либо причинам не был получен ответ от системы WEBPAY рекомендуем повторять отправку запроса с увеличивающейся периодичностью до 1 часа. Если система WEBPAY так и не отдала ответ, то отмечать такие операции и направлять их на support@webpay.by.