NOTIFY
UKRAINIAN PROCESSING CENTER
Kyiv
Доставка ответа по адресу NOTIFY_URL
Версия: 1.1
Доставка ответа по адресу NOTIFY_URL
Успешная и гарантированная переадресация браузера с параметрами результата оплаты является необходимым условием для получения магазином факта оплаты. В ряде случаев, однако, это может плохо сработать при разного рода ситуациях, таких как:
1) сбой работы браузера, зависание;
2) неадекватное поведение пользователя в момент передачи ответа;
3) пропадание соединения с интернет-провайдером
4) неправильная работа браузера при установленных пакетах защиты, которые могут вносить изменения в работу браузера.
Может произойти ситуация, когда оплата карточкой произведена, но магазину результат не доставлен. При этом потребуется разбирательство покупателя с магазином по факту проведения блокировки суммы денег с дальнейшей установкой состояния «Оплачено» либо с проведением возврата.
В таких случаях магазину рекомендуется внедрение схемы с доставкой ответа со стороны шлюза.
Для начала работы с данной схемой необходимо в интерфейсе администратора в разделе терминалы прописать адрес куда будет осуществляется отправка данных сообщений.
Торговая система (электронный магазин) передает ряд параметров при переходе на защищенную страницу шлюза:
.
<form action="https://secure.upc.ua/go/enter" method="post" >
<input name="Version" type="hidden" value="1" />
<input name="MerchantID" type="hidden" value="1752493" />
<input name="TerminalID" type="hidden" value="E7880293" />
<input name="PurchaseTime" type="hidden" value="090929152500" />
<input name="OrderID" type="hidden" value="ID0009992" />
<input name="Currency" type="hidden" value="980" />
<input name="TotalAmount" type="hidden" value="500" />
<input name="locale" type="hidden" value="ru" />
<input name="PurchaseDesc" type="hidden" value="Tarns_test_UPC" />
<input name="Signature" type="hidden"value="TEST_TEST"/>
<input type="submit"/>
</form>
.
Платежный шлюз инициирует отправку сообщения. Отправка осуществляется с ip адреса для тестового сервера – 195.85.198.16, для рабочего – 195.85.198.15 . Результаты обработки передаются методом HTTP/HTTPS POST со стороны шлюза на страницу магазина (80/443 порты).
Notify request message:
PurchaseTime = '090929152500'
ProxyPan = '499999*******0011'
Currency = '980'
ApprovalCode = '111111'
MerchantID = '1752493'
OrderID = '111111111111111111'
Signature = test'
Rrn = '2222222222'
XID = '333333-4444444'
Email = 's.sichnoy@upc.ua'
SD = '24ee6084a5343e3d'
TranCode = '000'
TerminalID = 'E7880293'
TotalAmount = '500'
.
Магазин возвращает ответ в теле выполняемой страницы. Каждый параметр и его значение в виде Параметр=Значение возвращаются на новой строке. Строки разделяются символом разделителя строк.
В ответе, дополнительно к оригинальным значениям параметров (MerchantID, TerminalID, OrderID, Currency, TotalAmount, XID, PurchaseTime), возвращает 3 новых параметра :
Параметр | Значение | Описание |
Response.action | approve / reverse | При значении ‘approve ‘ магазин со своей стороны подтверждает сделку При значении ‘reverse’ шлюз делает откат успешной транзакции и устанавливает признак завершения 503 – «Транзакция отменена магазином» |
Response.reason | An … 255 | Пояснение ответа магазина (опционально), например – причина для значения Response.action Формирование данного поля осуществляется на стороне магазина и необходимо оно сугубо для потреб магазина, у нас протоколируется только в логах транзакции. |
Response.forwardUrl | An … 255 | Значение URL для редиректа браузера пользователя, вместо SUCCESS_URL или FAILURE_URL Дает возможность использования динамических ссылок для переадресации клиента. |
echo "MerchantID="1752493"\n";
echo "TerminalID="E7880293"\n";
echo "OrderID="ID0009992"\n";
echo "Currency="980"\n";
echo "TotalAmount="980"\n";
echo "XID="333333-4444444"\n";
echo "PurchaseTime="090929152500"\n";
echo "Response.action=\n";
echo "Response.reason=\n";
echo "Response.forwardUrl=\n;
Также у администратора магазина есть выбор разрешать транзакции по которым не проходит доставка сообщения по NOTIFY_URL, либо запретить их. Данная схема позволяет автоматизированным системам учёта предоставленных услуг, которые используют информацию от платежного шлюза, избежать несоответствия данных в случае недоставки сообщения по NOTIFY_URL.
В случае если по каким то причинам схема доставки ответа со стороны шлюза не отработала - транзакция будет автоматически отменена.
В данном случае оригинальная транзакция имеет тип операции покупка и код транзакции 504/Данный запрос на оплату не разрешен платежным шлюзом, откат произведенный в автоматическом режиме платежным сервером имеет код транзакции 000/Транзакция завершена успешно.
Далее представлена логика доставки ответа со стороны шлюза.
Данный метод передачи ответа магазину является предпочтительным и настоятельно рекомендуется. Его использование позволяет существенно уменьшить количество некорректно завершенных транзакций (например, из-за сбоев браузера покупателя или его неверных действий). Даже в случае возникновения проблемных ситуаций магазин будет иметь достоверную информацию о результате обработки транзакции.