BG | EN

Описание на процеса на извършване на плащания през eBG.bg

Иницииране и потвърждаване на плащане

За да извърши плащане, потребителят предприема следните стъпки:

  1. Посещава сайт на търговски обект и избира продукти/услуги
  2. Потвърждава поръчката, например избирайки бутон "Плати"

В следствие на това се извършва следната комуникация:

  1. Търговският обект генерира xml с данните за плащането, подписва ги със своя сертификат server side и прави http post заявка към интерфейса на eBG.bg. Заявката се прави от сървъра на търговския обект, а не от браузера на клиента.
  2. При получаване на заявка за иницииране на плащане, eBG.bg валидира подписа на съобщението спрямо регистрирания от търговския обект сертификат в eBG.bg. При успех - иницииране се плащане, поставя се в режим "непотвърдено" и в отговор на http post заявката се връща идентификатор на новосъздаденото плащане.
  3. В случай, че потребителят е подписал със сертификат данните за плащането и е отбелязал дадено платежно средство като такова по подразбиране, плащането се поставя в режим "в процес на обработка" и се инициира транзакция, например към Борика за превод от карта към виртуално ПОС устройство/банкова сметка.
  4. За улеснение на потребителя са налични различни възможности за потвърждаване на плащане:
    • на сайта на eBG.bg с парола или цифров сертификат
    • чрез SMS
    • на сайта на търговеца посредством цифров сертификат
  5. Сървърът на търговския обект информира потребителя за инициираното плащане - с линк за потвърждаване или показвайки номера на плащането и инструкции за потвърждаването му.

Ако потребителят използва цифров сертификат за потвърдаване на плащането на сайта на търговеца, той/тя:

  1. Въвежда своя КИН (може да се пази в акаунт на потребителя на сайта на търговския обект и да не е необходимо да се въвежда всеки път)
  2. Подписва с цифров сертификат данните за плащането (КИН, ТИН, сума, основание и т.н, представени в XML формат), които са генерирани от сайта на търговския обект. Подписването става client side и получената PKCS#7 структура се submit-ва пак към сайта на търговския обект.

Статус на плащане

По всяко време търговският обект може програмно да провери статуса на плащанията които е инициирал.

HTTP уведомления при промяна статуса на плащане може да бъдат активирани като от менюто Профил - Търговски обекти - Промени се укаже адрес на скрипт на търговеца, например: http://www.mysite.org/eBG.bg/paymentStatusChangedNotify.php

Изпращат се с POST заявка (application/x-www-form-urlencoded) два параметъра - data и signature. data елементът съдържа информация за плащането във xml формат, като в случай, че промяната статуса на плащането е в следствие отговор на Борика е налична информация за извършената банкова транзакция (STAN, дата/час, авторизационен код). Спазва се форматът на елемента paymentInformationResponse дефиниран в xml схемата. В ebg Payment Gateway Merchant API.pdf е добавено описание.

В директория http notify example има примерен php скрипт който логва всички уведомления. eBG.bg опитва да установи http връзка и да предаде уведомлението през разтящ интервал от време (30 сек, 1 мин, 5 мин, 1 час, 5 часа, 1 ден) докато не получи отговор с http status code 200 или не се надхвърли предварително фиксиран лимит.

Уведомления за промяна на статуса на плащане могат също да бъдат изпращани по e-mail или SMS.

Диаграма на процеса по извършване на плащане е достъпна на страницата "Често задавани въпроси" на портала. Прилагаме диаграма на статусите през които може да премине едно плащане. Във Visio форматът е налично описание на преходите между състоянията.

  1. Когато едно плащане е първоначално инициирано то се намира в статус unconfirmed.
  2. След избор на карта и потвърждаване от страна на потребителя преминава в accepted.
  3. Инициира се за заявка за авторизация на транзакция към Борика и се преминава в статус processing.
  4. При положителен отговор от Борика - completed.

При отрицателен отговор от Борика потребителят има възможност да избере друго средство за плащане и да потвърди с него плащането. Инициира се нова транзакция.

Ако дадено плащане е в статус unconfirmed или е след отрицателен отговор от Борика, то може да бъде отменено от клиента или търговеца или да изтече предварително зададен срок. И трите статуса са окончателни.

С оглед нуждите на няколко търговски обекта, сме добавили флаг за автоматична отмяна на плащането при отрицателен отговор от Борика, т.е. след като потребителят потвърди дадено плащане, след 30 сек, плащането ще бъде приведено в окончателно състояние.

Адреси на сървъри и тестови акаунти

Тестовият сървър на eBG.bg се намира на адрес http://demo.ebg.bg/.

Достъпни са акаунтите:

Примерни уеб магазини интегрирани с eBG.bg се намират на адреси: http://demo.ebg.bg/catalog/ (osCommerce) и http://demo.ebg.bg/store/ (CubeCart).

Към момента сме разработили модули за Php, Perl, Python, Java и .Net. Модулът за Php сме доработили за OpenCart, VirtueMart, osCommerce, Zen Cart и CubeCart.

Надяваме се, че информацията която ви предоставяме ще ви бъде от полза. Ако имате допълнителни въпроси, моля не се колебайте да се обърнете към нас.