2. Оглавление
Оглавление
Оглавление
Оглавление.....................................................................................................................................................................................2
Введение........................................................................................................................................................................................3
Об этом руководстве.................................................................................................................................................................3
Целевая аудитория...................................................................................................................................................................3
Порядок разработки..................................................................................................................................................................3
История версий.........................................................................................................................................................................3
Введение в среду разработки Sandbox........................................................................................................................................4
Параметры тестовой среды.....................................................................................................................................................4
Интерфейс Web-приложения...................................................................................................................................................4
Основной экран приложения...............................................................................................................................................5
Заполнение параметров ..................................................................................................................................................6
Установка секретного ключа...............................................................................................................................................7
Просмотр финансовых операций.......................................................................................................................................8
Разработка платежного модуля..................................................................................................................................................10
Формирование заказа для оплаты.........................................................................................................................................10
Таблица 2.1 Поля формы оплаты.....................................................................................................................................10
Пример формы оплаты.....................................................................................................................................................13
Электронная подпись заказа.............................................................................................................................................14
Оплата заказа.........................................................................................................................................................................15
Извещение об оплате.............................................................................................................................................................16
Проверка платежа...................................................................................................................................................................16
При возврате покупателя на интернет-ресурс.................................................................................................................16
При извещении о платеже.................................................................................................................................................18
Типы транзакций................................................................................................................................................................19
Повторные платежи, пополнение банковских карточек.............................................................................................................20
WebPay™ developer guide 2
3. Введение
Введение
Введение
Об этом руководстве
Данное руководство описывает процесс разработки платежного модуля1 для приема платежей
в сети Интернет c помощью системы WebPay™ и использование тестовой среды
(sandbox2) для тестирования разрабатываемого модуля.
Целевая аудитория
Данный документ написан для Web разработчиков и специалистов желающих протестировать
разработанный платежный модуль, перед подключением к системе WebPay™.
Порядок разработки
1. Внимательно ознакомиться с настоящим руководством
2. Зайти и Web-приложение Sandbox (https://sandbox.webpay.by/) используя параметры
полученные в письме от службы поддержки компании «Веб Пэй»
3. Ознакомиться с интерфейсом Sandbox и заполнить необходимые поля (см. Заполнение
параметров)
4. Приступить к разработке платежного модуля согласно данной документации
5. Произвести тестирование модуля
6. По окончанию тестирования обратиться в службу поддержки компании «Веб Пэй», для
осуществления проверки специалистами компании
7. При получении замечаний, доработать модуль, исправив полученные замечания
8. Получить письмо с новыми параметрами, для перевода платежного модуля из тестовой
системы, в реальную платежную систему
9. Внести изменения в платежный модуль
История версий
История версий документа WebPay development guide.
Дата изменения Описание изменений
25 мая 2009 Версия документа 1.0.0
1 Программное обеспечение, разрабатываемое на сервере подключаемого клиента на языке программирования
2 Sandbox – среда для тестирования разрабатываемых модулей.
WebPay™ developer guide 3
4. Введение
История версий
1 Введение в среду разработки Sandbox
WebPay™ Sandbox — это самостоятельное Web-приложение, являющиеся прототипом
реальной системы и предназначено для тестирования и ознакомления с возможностями
реальной системы WebPay™.
По своим функциональным возможностям она ничем не отличается от рабочей копии, за
исключением того, что не выполняет реальный процессинг банковских карточек, т.е. никакие
действия не приводят к реальному перемещению средств на карточках.
Разработку и тестирование платежных модулей всегда необходимо проводить в тестовой
среде.
Параметры тестовой среды
URL адрес тестовой среды https://sandbox.webpay.by
Имя пользователя высылается в письме
Пароль высылается в письме
Уникальный идентификатор магазина высылается в письме
Интерфейс Web-приложения
Интерфейс Web-приложения тестовой системы Sandbox и реальной системы отличаются
только наличием специального баннера, указывающего на то, что данная среда является
средой тестирования. Перед началом разработки, рекомендуется зайти в Web-приложение,
ознакомиться с его содержимым и заполнить основные параметры Вашего биллинг аккаунта.
WebPay™ developer guide 4
5. Введение в среду разработки Sandbox
Интерфейс Web-приложения
Основной экран приложения
После входа в Web-приложение, Вам будет отображена следующая страница
На данной странице, отображается основная статистика по Вашему биллинг аккаунту, тут же
Вы сможете отобразить статистику за выбранный интервал времени. Слева отображена панель
навигации, которая предоставляет возможности управлять Вашим аккаунтом.
WebPay™ developer guide 5
6. Введение в среду разработки Sandbox
Интерфейс Web-приложения
Заполнение параметров
Перед началом работы, Вам необходимо заполнить основные параметры биллинга, для этого
необходимо перейти на страницу «Профайл» и заполнить обязательные поля.
На этой странице, необходимо заполнить все поля помеченные * (звездочкой). Поле «Company
Contact Email» необходимо для отсылки Вам уведомления о произошедших транзакциях на
Вашем биллинге.
Следующая страница «Настройки компании». На этой странице, необходимо задать имя или
IP-адрес почтового сервера (SMTP Host) и параметры авторизации почтового сервера. При
задании этих полей, всем покупателям Вашего магазина будет отсылаться уведомление от
Вашего имени. Рекомендуется заводить отдельный почтовый аккаунт, для отправки
уведомлений.
На поле «Secret Key» остановимся по подробнее.
WebPay™ developer guide 6
7. Введение в среду разработки Sandbox
Интерфейс Web-приложения
Установка секретного ключа
Секретный ключ, необходим для формирования электронной подписи каждого Вашего платежа
(см. Электронная подпись заказа). Этот параметр является обязательным к заполнению и без
него не возможно будет оплачивать Ваши товары или услуги.
Для установки «Секретного ключа» необходимо заполнить поле Secret key. Это поле может
содержать случайную последовательность символов
WebPay™ developer guide 7
8. Введение в среду разработки Sandbox
Интерфейс Web-приложения
Просмотр финансовых операций
Для просмотра всех финансовых операций, необходимо воспользоваться пунктом меню
«Платежи»
На данной странице отображены все финансовый платежи (транзакции). Каждая такая
транзакция привязана к Инвойсу (Invoice), у инвойса, может быть несколько транзакций, таких
как:
• Authorized – состояние авторизации платежа (денежные средства заблокированы на
банковской карточке покупателя). В этом состоянии покупатель не видит списанной с
него суммы, но данная сумма еще не перечислена на Ваш банковский счет.
• Completed – денежные средства списаны с банковской карточки
• System — системная транзакция.
В поле Invoice содержится номер к которому привязаны транзакции. Для просмотра всех
транзакции связанных с этим номером, а также значения с которыми был совершен платеж,
необходимо нажать на ссылку. В отрытой странице Вам будет представлена информация о
данном инвойсе.
WebPay™ developer guide 8
9. Введение в среду разработки Sandbox
Интерфейс Web-приложения
WebPay™ developer guide 9
10. Введение в среду разработки Sandbox
Интерфейс Web-приложения
2 Разработка платежного модуля
Разработка платежного модуля осуществляется на стороне сервера подключаемого клиента и
предполагает создание, либо внесение изменений в исходный код скриптов дорабатываемого
Web-приложения.
Принцип формирования и оплаты заказа
1) Формирование заказа. Создание html-страницы с обыкновенной html-формой. В качестве
полей должны быть указаны и заполнены поля необходимы для совершения оплаты (см. Поля
формы оплаты)
2) Переход на форму оплаты системы WebPay™ (https://secure.sandbox.webpay.by:8843),
для ввода реквизитов пластиковой карточки (переход осуществляется POST запросом)
3) Ввод данных пластиковой карточки
4) Оплата заказа
5) Возврат на html-страницу модуля оплаты (в случае если покупатель не нажмет кнопку
вернуться на форме оплаты, будет послано специальное извещение см. Извещение о оплате )
6) Проверка параметров платежа
7) Оказание услуги (доставка товара)
Формирование заказа для оплаты
Для оплаты заказа необходимо сформировать форму со специальными полями, значения и
описание полей представлены в Таблице 2.1 и POST методом перенаправить покупателя на
страницу оплаты.
Для тестирования это должен быть адрес https://secure.sandbox.webpay.by , для совершения
реальных платежей https://secure.webpay.by
Таблица 2.1 Поля формы оплаты
Название поля Описание поля Примечание
Основные поля формы оплаты
*scart Поле не содержит значения и обозначает тип запроса
Поле является
обязательным Пример: <input type='hidden' name='*scart'>
wsb_storeid Идентификатор магазина в системе WebPay™ Cодержит уникальный
Поле является идентификатор магазина.
обязательным Пример: <input type='hidden' name='wsb_storeid' value='123456789'> Данный идентификатор
создается при регистрации в
системе WebPay™ и
высылается в письме.
wsb_store Название магазина, которое будет отображаться на форме Максимальная длина поля
Поле является оплаты. 64 символа
обязательным
WebPay™ developer guide 10
11. Разработка платежного модуля
Формирование заказа для оплаты
Пример: <input type='hidden' name='wsb_store' value='Тестовый магазин'>
wsb_order_num Идентификатор заказа, присваиваемый магазином Максимальная длина поля
Поле является 64 символа
обязательным Пример: <input type='hidden' name='wsb_order_num' value='ORDER_1234'>
wsb_currency_id Идентификатор валюты. Буквенный трехзначный код На данный момент значение
Поле является валюты согласно ISO4271 это поля должно быть BYR
обязательным
Пример: <input type='hidden' name='wsb_currency_id' value='BYR'>
wsb_version Версия формы оплаты Текущий номер версии = 2
Пример: <input type='hidden' name='wsb_version' value='2'>
wsb_language_id Идентификатор языка формы оплаты На данный момент
поддерживаются два языка
Пример: <input type='hidden' name='wsb_language_id' value='russian'> формы оплаты
- русский (russian)
- английский (english)
Если данное поле не
указано, то форма оплаты
будет определять язык из
параметров браузера
покупателя.
wsb_seed Случайная последовательность символов участвующих в см. Электронная подпись
Поле является формировании электронной подписи заказа заказа
обязательным
Пример: <input type='hidden' name='wsb_seed' value='11123232001'>
wsb_signature Контрольное значение (электронная подпись) заказа см. Электронная подпись
Поле является результат выполнения функции sha1 (для версии 2. см. заказа
обязательным
поле wsb_version), либо md5, если версия протокола не
указана.
Данное значение является hex-последовательностью
Пример: <input type='hidden' name='wsb_signature'
value='8d4395dab7598c5f4b94d5bc4780f4af'>
wsb_return_url URL адрес на который возвращается покупатель в случае К данному URL добавляются
Поле является успешной оплаты значения Идентификатора
обязательным
заказа (wsb_order_num) и
Пример: <input type='hidden' name='wsb_return_url' специальное значение
value='http://yoursite.com/compete'>
Номера транзакции в
системе WebPay™.
wsb_cancel_return_u URL адрес на который возвращается покупатель в случае К данному URL добавляются
rl не успешной оплаты значения Идентификатора
Поле является заказа (wsb_order_num)
обязательным Пример: <input type='hidden' name='wsb_cancel_return_url'
value='http://yoursite.com/cancel'>
wsb_notify_url Данный URL вызывается вне зависимости от того, был ли К данному URL добавляются
переход по URL в поле wsb_return_url или нет. Основное значения Идентификатора
назначение это URL, это оповестить сайт о успешной заказа (wsb_order_num) и
оплате, в случае, если пользователь не нажал кнопку специальное значение
«Завершить» на форме оплаты. Номера транзакции в
системе WebPay™. (см.
Пример: <input type='hidden' name='wsb_notify_url' Извещение об оплате)
value='http://yoursite.com/notify'>
wsb_test Поле указывающие на проведение тестовой оплаты В тестовой среде Sandbox
значение данного поля
1 — производить тестовую оплату игнорируется и всегда
WebPay™ developer guide 11
12. Разработка платежного модуля
Формирование заказа для оплаты
0, или не указано поле — проводить реальную оплату принимается равным 1
Пример: <input type='hidden' name='wsb_test' value='1'>
Список товаров к оплате
wsb_invoice_item_n Наименование единицы товара Индекс {n}, должен
ame[{n}] начинаться с 0 и
Поле является увеличиваться на 1, для
обязательным Пример:
<input type='hidden' name='wsb_invoice_item_name[0]' value='Товар 1'> каждой последующей
<input type='hidden' name='wsb_invoice_item_name[1]' value='Товар 2'> позиции
…
<input type='hidden' name='wsb_invoice_item_name[N-1]' value='Товар N'>
wsb_invoice_item_q Количество единиц товара, целое число обозначающие, Индекс {n}, должен
uantity[{n}] количество единиц товара каждого наименования начинаться с 0 и
Поле является увеличиваться на 1, для
обязательным Пример:
каждой последующей
<input type='hidden' name='wsb_invoice_item_quantiny[0]' value='2'>
<input type='hidden' name='wsb_invoice_item_quantiny[1]' value='1'> позиции
…
<input type='hidden' name='wsb_invoice_item_quantiny[N-1]' value='1'>
wsb_invoice_item_pr Цена единицы товара, целое число определяющее Индекс {n}, должен
ice[{n}] стоимость каждой единицы товара (указывается в начинаться с 0 и
Поле является белорусских рублях) увеличиваться на 1, для
обязательным
каждой последующей
Пример:
позиции
<input type='hidden' name='wsb_invoice_item_price[0]' value='10000'>
<input type='hidden' name='wsb_invoice_item_price[1]' value='2000'>
…
<input type='hidden' name='wsb_invoice_item_price[N-1]' value='4000'>
wsb_tax Поле, значением которого является сумма налога, в Данное поле является не
белорусских рублях, добавляемая к общей сумме заказа обязательным.
Пример:
<input type='hidden' name='wsb_tax' value='1000'>
wsb_shipping_name Поле определяющие наименование(способа) доставки Данное поле является не
обязательным.
Пример:
<input type='hidden' name='wsb_shipping_name' value='Доставка курьером'>
<input type='hidden' name='wsb_shipping_price' value='2000'>
wsb_shipping_price Поле, значением которого является сумма доставки, в Данное поле является не
белорусских рублях, добавляемая к общей сумме заказа обязательным.
wsb_discount_name Поле названия скидки Данное поле является не
обязательным.
Пример:
<input type='hidden' name='wsb_discount_name' value='Дисконтная карта'>
<input type='hidden' name='wsb_discount_price' value='580'>
wsb_discount_price Поле, значением которого является сумма скидки, в Данное поле является не
белорусских рублях, вычитаемая из общей суммы заказа обязательным.
wsb_total Данное поле является вычисляемым. Значение этого поля Оплата не будет
Поле является является общей суммой оплаты заказа. произведена, если wsb_total
обязательным
и посчитанное значения
Правила вычисления общей суммы: товаров не будут совпадать.
wsb_total = Покупателю будет
wsb_invoice_item_quantiny[0] * wsb_invoice_item_price[0] +
отображена ошибка.
wsb_invoice_item_quantiny[1] * wsb_invoice_item_price[1] +
...
wsb_invoice_item_quantiny[N] * wsb_invoice_item_price[N] +
wsb_tax +
wsb_shipping_price -
wsb_discount_price
Пример:
<input type='hidden' name='wsb_total' value='19580'>
WebPay™ developer guide 12
13. Разработка платежного модуля
Формирование заказа для оплаты
Дополнительные поля
wsb_email Электронный адрес покупателя. Значение данного поля
будет автоматически
Пример:
подставлено в
<input type='hidden' name='wsb_email' value='yourname@yoursite.com'>
соответствующие поле
формы оплаты
wsb_phone Контактный телефон покупателя. Значение данного поля
будет автоматически
Пример: подставлено в
<input type='hidden' name='wsb_phone' value='8171231231'>
соответствующие поле
wsb_icn Внутренний уникальный идентификатор пластиковой См. Повторные платежи,
карточки Пополнение банковских
карточек
wsb_card Урезанный (триммированный) номер банковской карточки. См. Повторные платежи,
Пополнение банковских
карточек
Пример формы оплаты
<form action="https://secure.sandbox.webpay.by:8843/" method="post">
<input type="hidden" name="*scart">
<input type="hidden" name="wsb_version" value="2">
<input type="hidden" name="wsb_language_id" value="russian">
<input type="hidden" name="wsb_storeid" value="11111111" >
<input type="hidden" name="wsb_store" value="Название Вашего магазина" >
<input type="hidden" name="wsb_order_num" value="ORDER-12345678" >
<input type="hidden" name="wsb_test" value="1" >
<input type="hidden" name="wsb_currency_id" value="BYR" >
<input type="hidden" name="wsb_seed" value="1242649174">
<input type="hidden" name="wsb_return_url" value="http://your site url.com/success.php">
<input type="hidden" name="wsb_cancel_return_url" value="http://your site url.com/cancel.php">
<input type="hidden" name="wsb_notify_url" value="http://your site url.com/notify.php">
<input type="hidden" name="wsb_email" value="no@body.tld" >
<input type="hidden" name="wsb_phone" value="22-333-333" >
<input type="hidden" name="wsb_invoice_item_name[]" value="Товар 1">
<input type="hidden" name="wsb_invoice_item_quantity[]" value="2">
<input type="hidden" name="wsb_invoice_item_price[]" value="10000">
<input type="hidden" name="wsb_invoice_item_name[]" value="Товар 2">
<input type="hidden" name="wsb_invoice_item_quantity[]" value="1">
<input type="hidden" name="wsb_invoice_item_price[]" value="500">
<input type="hidden" name="wsb_total" value="21950" >
<input type="hidden" name="wsb_signature" value="40aa8af3ce7a1f7c3635ac2227475094a59d574c" >
<input type="hidden" name="wsb_tax" value="1050">
<input type="hidden" name="wsb_shipping_name" value="Стоимость доставки" >
<input type="hidden" name="wsb_shipping_price" value="980" >
<input type="hidden" name="wsb_discount_name" value="Скидка на товар" >
<input type="hidden" name="wsb_discount_price" value="580" >
<input type="submit" value="Купить">
</form>
WebPay™ developer guide 13
14. Разработка платежного модуля
Формирование заказа для оплаты
Электронная подпись заказа
Электронная подпись формируется для предотвращения изменений в форме платежа и
должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут
рассматриваться системой WebPay™.
Для формирования электронной подписи необходимо установить значение поля «Secret Key» в
настройках Вашего биллинг аккаунта (см. Установка секретного ключа).
В каждой форме заказа необходимо указывать поля
wsb_seed – случайная последовательность символов (можно использовать текущее значение
времени, к примеру unixtime)
wsb_signature – непосредственно сама электронная подпись. Она должна быть сформирована
согласно следующему правилу, значения следующих полей:
wsb_seed
wsb_storeid
wsb_order_num
wsb_test
wsb_currency_id
wsb_total
«Secret Key»
должны быть объединены в одну строку, порядок объединения не должен быть нарушен.
Далее в зависимости от указанной версии протокола (wsb_version), считается MD5 (если
версия не указана), либо SHA1 (для версии 2) объединенной строки.
Пример формирования электронной подписи (на языке программирования PHP):
$wsb_seed = 1242649174;
$wsb_storeid = 11111111;
$wsb_order_num = “ORDER-12345678”;
$wsb_test = 1;
$wsb_currency_id = “BYR”;
$wsb_total = 21950;
$SecretKey = “12345678901234567890”;
//Значение объединенной строки: 124264917411111111ORDER-123456781BYR2195012345678901234567890
// для версии протокола 2 (wsb_version = 2)
$wsb_signature = sha1($wsb_seed.$wsb_storeid.$wsb_order_num.$wsb_test.$wsb_currency_id.$wsb_total.
$SecretKey); // 7a0142975bc660d219b793c650346af7ffce2473
// если версия не указана
$wsb_signature = md5($wsb_seed.$wsb_storeid.$wsb_order_num.$wsb_test.$wsb_currency_id.$wsb_total.
$SecretKey); // 4decb461a593852da78af8fb4ef9e8e5
WebPay™ developer guide 14
15. Разработка платежного модуля
Оплата заказа
Оплата заказа
После формирования полей заказа и нажатия кнопки «Оплатить», покупатель должен быть
перенаправлен на страницу оплаты системы WebPay™ (тестовой, либо реальной), где
ему будет предоставлена возможность ввести реквизиты своей банковской
карточки
WebPay™ developer guide 15
16. Разработка платежного модуля
Оплата заказа
После успешной оплаты заказа, покупатель должен нажать кнопку «Завершить платеж и
вернуться», в этом случае форма оплаты перенаправит его по URL-адресу указанному в поле
wsb_return_url.
При ошибке оплаты, и нажатии кнопки «Закончить» покупатель будет перенаправлен на URL-
адрес указанный в поле wsb_cancel_return_url. В каждом из этих случаев, к URL-адресу будут
дописаны значения wsb_order_num, а в случае успешной оплаты, будет так-же дописано
значение номера транзакции в системе WebPay™.
ВАЖНО
Возможны ситуации, при которых покупатель, не нажмет кнопку «Вернуться» на форме
оплаты. Для уведомления о успешной операции система WebPay™, через некоторое
время отсылает специальное извещение (см. Извещение об оплате)
Извещение об оплате
При возврате на страницу интернет-ресурса в случае успешной оплаты (используется значение
указанное в поле wsb_return_url), биллинг передает в параметрах GET запроса, номер заказа
(значение поля wsb_order_num) и номер транзакции (поле wsb_tid) соответсвующий
проведенному платежу.
Если покупатель не нажал кнопку «Вернуться» с формы оплаты, биллинг известит интернет-
ресурс о проведенной операции по адресу wsb_notify_url (если он указан в поле формы, либо
задан в настройках аккаунта биллинга).
Интернет-ресурс в случае оповещения, должен ответить кодом 200 ("HTTP/1.0 200 OK"), если
сервер интернет-ресурса не отвечает положительно, а с момента начала отсылки
уведомляющих запросов прошел 1 час, на адрес магазина отсылается электронное письмо,
предупреждающее о сбое. Через 30 дней, если интернет-ресурс так и не смог принять
уведомление, отсылка запросов прекращается, о чем интернет-ресурс также извещается
электронным письмом.
При разработке, необходимо учесть, что может придти извещение о платеже (wsb_notify_url),
так и покупатель может вернуться на страницу интернет-ресурса указанному в поле
(wsb_return_url)
Проверка платежа
Прежде чем доставить товар (оказать услугу), интернет-ресурс, обязан проверить
совершенный покупателем платеж.
При возврате покупателя на интернет-ресурс
Для проверки платежа при возврате на страницу интернет-ресурса увазанному в поле
wsb_return_url, необходимо выполнить API команду биллинга «get_transaction».
Ниже приводится пример кода, для выполнения API команды в системе webpay.by. Необходимо
учитывать, что запрос к тестовой среде необходимо отсылать на адрес
https://sandbox.webpay.by, а к в реальной среде https://billing.webpay.by
WebPay™ developer guide 16
17. Разработка платежного модуля
Проверка платежа
Пример запроса на проверку платежа (PHP)
//////////////////////////////////////////////////
// API Request (webpay.by)
$postdata = '*API=&API_XML_REQUEST='.urlencode('
<?xml version="1.0" encoding="ISO-8859-1" ?>
<wsb_api_request>
<command>get_transaction</command>
<authorization>
<username>your_username</username>
<password>your_md5_password</password>
</authorization>
<fields>
<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 - валюта транзакции ( Примечание: представляет собой
буквенный, трех-значный код в соответствии с ISO 4217 )
• amount - сумма транзакции
• payment_method - метод совершения транзакции (возможные значения: cc -
банковская карта, test - совершена без реального процессинга карты)
• payment_type - тип транзакции
• order_id - номер заказа в системе webpay.by
• rrn - номер транзакции в системе Visa/MasterCard
• wsb_signature - электронная подпись *
* Электронная подпись вычисляется в случае если в настройках биллинга указан
Secret Key (см. Электронная подпись)
wsb_signature представляет собой hex-последовательность и является результатом
выполнения функции MD5. В качестве аргумента функции MD5 служит текстовая
последовательность, полученная путем простой конкатенации следующих полей:
• transaction_id
WebPay™ developer guide 17
18. Разработка платежного модуля
Проверка платежа
• batch_timestamp
• currency_id
• amount
• payment_method
• payment_type
• order_id
• rrn
• "Secret Key"
Поля должны быть сконкатенированны в указанном порядке.
При извещении о платеже
После совершения удачного платежа, система webpay.by будет отсылать специально
сформированный POST-запрос по адресу указанному в поле wsb_notify_url интернет-ресурса.
В этом запросе содержится информация по платежу. Полученную информацию интернет-
ресурс должен проверить в соответствии с требованиями выполнения заказа и ответить на
запрос кодом: "HTTP/1.0 200 OK"
Поля, содержащиеся в запросе:
• batch_timestamp - время совершения транзакции
• currency_id - валюта транзакции ( Примечание: представляет собой
буквенный, трех-значный код в соответствии с ISO 4217 )
• amount - сумма транзакции
• payment_method - метод совершения транзакции (возможные значения: cc -
банковская карта, test - совершена без реального процессинга карты)
• order_id - номер заказа в системе webpay.by
• site_order_id - номер (имя) заказа, присвоенное магазином
• transaction_id - номер транзакции
• payment_type - тип транзакции
• rrn - номер транзакции в системе Visa/MasterCard
• wsb_signature - электронная подпись *
* Электронная подпись вычисляется в случае если в настройках биллинга указан
Secret Key (см. Электронная подпись)
wsb_signature представляет собой hex-последовательность и является результатом
выполнения функции MD5. В качестве аргумента функции MD5 служит текстовая
последовательность, полученная путем простой конкатенации следующих полей:
• batch_timestamp
• currency_id
• amount
• payment_method
• order_id
• site_order_id
• transaction_id
WebPay™ developer guide 18
19. Разработка платежного модуля
Проверка платежа
• payment_type
• rrn
• "Secret Key"
Поля должны быть сконкатенированны в указанном порядке.
Типы транзакций
По типу транзакции (поле payment_type) делятся на следующие группы:
1 - Completed (Завершенная)
2 - Declined (Отклоненная)
3 - Pending (В обработке)
4 - Authorized (Авторизованная)
5 - Refunded (Возвращенная)
6 - System (Системная)
7 - Voided (Сброшенная после авторизации)
ВАЖНО:
При написании кода обработки дополнительных извещений, следует учитывать тип
транзакции. Данный тип уведомления предназначен для извещения интернет-ресурса о
успешно завершенных транзакциях и о транзакциях, которые в последствии отменены
самим интернет-ресурсом либо банком в соответствии с договором (возврат денег
покупателю).
Таким образом, успешной оплате соответствуют следующие типы:
1 - Completed (Завершенная)
4 - Authorized (Авторизованная)
А отмененным платежам (возврату денег), следующие:
5 - Refunded (Возвращенная)
7 - Voided (Сброшенная после авторизации)
WebPay™ developer guide 19