Aвторизація

Aвторизація

Тестове та робоче середовища

POST        https://ecg.test.upc.ua/go/pay

Тестове средовище

POST        https://secure.upc.ua/go/pay

Робоче середовище


Торгова система (електронний магазин) повинна передати ряд параметрів при переході на захищену сторінку шлюзу.

Ці параметри наведені в таблиці 1:



Таблиця №1

Параметр

Структура

Формат

Назва параметра

Комментар

Version

F

N

Значення версії інтерфейсу SG

Версія протоколу взаємодії. Діюча версія в даний момент '1'. Цей параметр є довідковим для обробника вхідних даних шлюзу.

MerchantID

L

an15

ідентифікатор торговця

Призначається обслуговуючим банком

TerminalID

F

an8

Идентификатор терминала

Призначається обслуговуючим банком

TotalAmount

F

N1..12

Сума замовлення

У дрібних одиницях валюти (копійки, центи)

Currency

F

n3

Валюта

Визначається договором з обслуговуючим банком

AltTotalAmount

F

N1..12

Сума замовлення (альтернативна валюта)

Необов'язковий

У дрібних одиницях валюти (копійки, центи)

AltCurrency

F

n3

Альтернативна валюта

Необов'язковий

Визначається, якщо магазин бажає відобразити суму платежу в іншій валюті.

PurchaseTime

F

n12..17

Час запиту в форматі yyMMddHHmmss або yyMMddHHmmssZ

  • yy - year, MM - month in year dd - day in month HH - hour in day (0-23) mm - minute in hour ss - second in minute, Z - time zone (RFC 822).
  • Формат зони - [+ | -] Hours Minutes. Наприклад +0300, -0200
  • Якщо в параметрі зона не вказана, вважається та ж зона, що і у шлюзу

locale

F

a2

Мова інтерфейсу (en, ru, uk)

Мова інтерфейсу захищених сторінках шлюзу

OrderID

L

Ans…20

Номер замовлення довжиною до 20 байт

Ідентифікатор замовлення. Має бути унікальним для кожного запиту на оплату, що відправлється магазином на платіжний шлюз.

SD

Var

an...99

Session Data -Дані сесії

Необов'язковий

Допоміжній параметр, может буті використаних торговельна система для управління Призначення для користувача сесіямі

PurchaseDesc

L

ans...125

Короткий опис покупки, товару

Необов'язковий

Може бути відображений на сторінці платіжного сервера. Рекомендується використовувати для зручності покупця. В цьому параметрі необхідно передавати призначення платежу, якщо це необхідно.

Signature

Var

Залежить від схеми

Значення MAC-коду або підпису

Довжина параметра залежить від обраної схеми обчислення

Delay

F

N1

Ідентифікатор платежу преавторізації

Для преавторизації, значення має дорівнювати «1», інакше 0 або порожньо

Ref3

L

ans..1 150

Додатковий ідентифікатор замовлення

Необов'язковий

Наприклад може передаватися - Номер квитка, Додатковий ідентифікатор замовлення, ПІБ, Номер мобільного телефону ...

email

Електронна поштаЕлектронна пошта.
Приклад передачі даних:
<input type="hidden" name="email" value="ec@upc.ua"             />
phoneCountryCode

Телефонний код країниПередача телефонного коду країни.
Приклад: 
<input type="hidden" name="phoneCountryCode" value="380"  />
phoneNumber

Номер телефонуВказується номер телефону БЕЗ телефонного коду країни
Приклад:
<input type="hidden" name="phoneNumber" value="638879191"       />


Дані параметри передаються методом HTTPS / POST на сторінку шлюзу в певній HTML-формі для подальшого введення реквізитів платіжної картки покупцем (власником платіжної картки).

Приклад
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<form action="https://ecg.test.upc.ua/go/enter" method="POST">
    <input name="Version" type="hidden" value="1" />
    <input name="MerchantID" type="hidden" value="1111111" />
    <input name="TerminalID" type="hidden" value="E1111111" />
    <input name="TotalAmount" type="hidden" value="1000" />
    <input name="Currency" type="hidden" value="980" />
    <input name="locale" type="hidden" value="ru" />
    <input type="HIDDEN" name="PurchaseTime" value="150611110821"/>
    <input name="OrderID" type="hidden" value="121sdsdss2sd" />
    <input name="PurchaseDesc" type="hidden" value="tran test" />
    <input name="Signature" type="hidden" value=""/>
    <input type="submit"/>
</form>


  • Далі на сторінці шлюзу прийняті дані доповнюються значеннями CardType, CardNumber, ExpYear, ExpMonth, CVV2 (при необхідності). Попередньо шлюз виробляє ряд перевірок (наявність реєстраційних параметрів торговця в БД, відповідність типу валюти зареєстрованому значенням, величину авторотаціонного ліміту для торговця, а також перевірку електронного підпису).
  • Потім етапі шлюз відображає в браузері покупця сторінку для введення реквізитів картки. При цьому покупець також може вказати тип карти (за умови, що торговцю дозволено приймати той чи інший тип). Покупець також може ввести код CVV2 своєї карти (для карт MAESTRO введення даного коду не пропонується)
  • На наступному етапі відбувається обробка запиту з використанням схеми 3D-Secure або стандартної схеми (channel encryption e-commerce), в залежності від параметрів, наданих обслуговуючим банком.

 

Додаткові значення для обробки транзакцій за технологією Emv 3DS

Для обробки транзакцій за технологією Emv 3DS на захищеній сторінці UPC необхідно додатково передати розширені дані про клієнтів, в поле 3DSv2Data значення вказані в форматі json.

Ці дані будуть передані в платіжні системи Directory Servers, а від них в ACS для подальшого аналізу емітентом, і рішення вимагає додаткової перевірки клієнта чи ні.


Приклад web-форми:

<form action="https://ecg.test.upc.ua/go/enter" method="POST">
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<input name="Version" type="hidden" value="1">
	<input name="MerchantID" type="hidden" value="1111111">
	<input name="TerminalID" type="hidden" value="E1111111">
	<input name="TotalAmount" type="hidden" value="1000">
	<input name="Currency" type="hidden" value="980">
	<input name="locale" type="hidden" value="ru">
	<input type="HIDDEN" name="PurchaseTime" value="150611110821">
	<input name="OrderID" type="hidden" value="121sdsdss2sd">
	<input name="PurchaseDesc" type="hidden" value="tran test">
	<input name="Signature" type="hidden" value="">
	<input name="3DSv2Data " type="hidden" value="{acctInfo:{
		'chAccAgeInd':'03',
		'chAccChange':'20160712',
		'chAccChangeInd':'04',
		'chAccDate':'20140328',
		'chAccPwChange':'20170328',
		'chAccPwChangeInd':'02',
		'nbPurchaseAccount':'11',
		'paymentAccAge':'20160917',
		'paymentAccInd':'02',
		'provisionAttemptsDay':'3',
		'shipAddressUsage':'20160714',
		'shipAddressUsageInd':'02',
		'shipNameIndicator':'02',
		'suspiciousAccActivity':'02',
		'txnActivityDay':'1',
		'txnActivityYear':'21'},
		'acctType':'03',
		'authenticationInd':'01',
		'authenticationInfo':{
			'threeDSReqAuthData':'login GP',
			'threeDSReqAuthMethod':'02',
			'threeDSReqAuthTimestamp':'201711071307'
		},
		'cardHolderInfo':{
				'billAddrCity':'Sydney',
				'billAddrCountry':'036',
				'billAddrLine1':'Unit 1',
				'billAddrLine2':'123 Street Suburb',
				'billAddrLine3':'abc Line 3',
				'billAddrPostCode':'2000',
				'billAddrState':'NSW',
				'cardholderName':'Suda Ichiro',
				'email':'abc@123.com',
			'homePhone':{
				'cc':'61',
				'subscriber':'90123917131'
			},
			'mobilePhone':{
				'cc':'61',
				'subscriber':'0421522329'
			},
			'workPhone':{
				'cc':'61',
				'subscriber':'89102183192'
				},
			'shipAddrCity':'Sydney',
			'shipAddrCountry':'036',
			'shipAddrLine1':'Unit 1',
			'shipAddrLine2':'123 Street',
			'shipAddrLine3':'abc Line 3',
			'shipAddrPostCode':'2000',
			'shipAddrState':'NSW'
		},
		'challengeInd':'01',
		'eventCallbackUrl':'http://localhost:8082/3ds-notify',
		'merchantId':'123456789012345',
		'merchantRiskIndicator':{
			'deliveryEmailAddress':'test@123.com',
			'deliveryTimeframe':'02',
			'giftCardAmount':'123',
			'giftCardCount':'02',
			'giftCardCurr':'840',
			'preOrderDate':'20170519',
			'preOrderPurchaseInd':'02',
			'reorderItemsInd':'01','shipIndicator':'01'},
			'purchaseAmount':'200','purchaseCurrency':'036',
			'purchaseDate':'20190521104643',
			'purchaseInstalData':'24',
			'transType':'03'
		}">
	<input type="submit">
</form>




Опис параметрів

Tag nameНазва елемента

Опис

Значення
acctInfo
















  
chAccAgeInd

Час, протягом якого власник карти мав обліковий запис в 3DS Requestor.

Допустимі значення:

  • 01 = Не маєш власного облікового запису (виїзд гостя)
  • 02 = Створено під час цієї транзакції
  • 03 = Менше 30 днів
  • 04 = 30-60 днів
  • 05 = Більше 60 днів
chAccChange

Дата останньої зміни рахунку власника картки у Замовника 3DS. Включаючи адресу для виставлення рахунку або доставки, додано новий платіжний рахунок або нових користувачів.

Прийнятий формат: РРРРММДД


chAccChangeIndТривалість часу з моменту останньої зміни даних облікового запису власника картки у Замовника 3DS. Включаючи адресу для виставлення рахунку або доставки, додано новий платіжний рахунок або нових користувачів.

Прийняті значення:

  • 01 = Змінено під час цієї транзакції
  • 02 = Менше 30 днів
  • 03 = 30-60 днів
  • 04 = Більше 60 днів
chAccDateДата, коли власник картки відкрив рахунок у 3DS Requestor.Прийнятий формат: РРРРММДД
chAccPwChangeДату, коли в обліковому записі власника картки в 3DS Requestor було змінено пароль або скинуто обліковий запис.Прийнятий формат: РРРРММДД
chAccPwChangeIndВказує на проміжок часу, відколи на рахунку власника картки у Замовника 3DS було змінено пароль або скинуто рахунок.

Прийняті значення:

  • 01 = Без змін
  • 02 = Змінено під час цієї транзакції
  • 03 = менше 30 днів
  • 04 = 30-60 днів
  • 05 = Більше 60 днів
nbPurchaseAccountКількість покупок за цим рахунком власника картки протягом попередніх шести місяців.
paymentAccAgeДата реєстрації платіжного рахунку на рахунку власника картки у Замовника 3DS.
paymentAccIndВказує тривалість часу, протягом якого платіжний рахунок був зареєстрований на рахунку власника картки у Замовника 3DS

Прийняті значення:

  • 01 = Немає рахунку (виїзд гостя)
  • 02 = Під час цієї транзакції
  • 03 = менше 30 днів
  • 04 = 30-60 днів
  • 05 = Більше 60 днів
provisionAttemptsDay

Кількість спроб додати картку за останні 24 години.


shipAddressUsage

Дата, коли адреса доставки, використана для цієї транзакції, була вперше використана разом із 3DS Requestor.


shipAddressUsageInd

Вказує, коли адреса доставки, використана для цієї транзакції, була вперше використана із 3DS Requestor.

Прийняті значення:

  • 01 = Ця транзакція
  • 02 = Менше 30 днів
  • 03 = 30-60 днів
  • 04 = Більше 60 днів
shipAddressUsageInd

Вказує, коли адреса доставки, використана для цієї транзакції, була вперше використана із 3DS Requestor.

Прийняті значення:

  • 01 = Ця транзакція
  • 02 = Менше 30 днів
  • 03 = 30-60 днів
  • 04 = Більше 60 днів
shipNameIndicator

Вказує, чи Ім'я власника картки на рахунку ідентичне імені доставки, що використовується для цієї транзакції.

Прийняті значення:

  • 01 = Ім'я рахунку, ідентичне імені доставки
  • 02 = Ім'я рахунку відрізняється від імені доставки
suspiciousAccActivity

Вказує на те, чи вимагав 3DS Requestor підозрілу активність (включаючи попереднє шахрайство) на рахунку власника картки.

Прийняті значення:

  • 01 = Підозрілої діяльності не спостерігалося
  • 02 = Помітна підозріла активність
txnActivityDay

Кількість транзакцій (успішних та скасованих) для цього рахунку власника картки за допомогою Замовника 3DS на всіх платіжних рахунках за попередні 24 години.


txnActivityYear

Кількість транзакцій (успішних та скасованих) для цього рахунку власника картки за допомогою Замовника 3DS на всіх платіжних рахунках у попередньому році.


acctNumber

Номер рахунку, який буде використаний у запиті на авторизацію для здійснення платіжних операцій. Може бути представлений PAN, маркер.


acctType

Вказує тип рахунку

  • 01 = Not Applicable
  • 02 = Credit
  • 03 = Debit
cardExpiryDate

Дата закінчення терміну дії PAN


cardHolderInfo                   billAddrCity

Місто виставлення рахунку Власника картки, пов’язане з картою, яка використовується для цієї покупки.

(pa: потрібно, якщо ринковий або регіональний мандат не обмежує надсилання цієї інформації.

npa: Обов’язковий (якщо доступний), якщо ринковий або регіональний мандат не обмежує надсилання цієї інформації.)

 


billAddrCountry

Країна адреси виставлення рахунку Власника картки, пов’язана з карткою, яка використовується для цієї покупки.


billAddrLine1

Перший рядок вуличної адреси або еквівалентної місцевої частини адреси виставлення рахунку Власника картки, пов’язаної з картою, що використовується для цієї покупки.

  
billAddrLine2

Другий рядок вуличної адреси або еквівалентної місцевої частини адреси виставлення рахунку Власника картки, пов’язаної з карткою, що використовується для цієї покупки.


billAddrLine3

Третій рядок вуличної адреси або еквівалентної місцевої частини адреси виставлення рахунку Власника картки, пов’язаної з карткою, що використовується для цієї покупки.


billAddrPostCode

Поштовий індекс або інший поштовий індекс адреси виставлення рахунку Власника картки, пов’язаної з карткою, що використовується для цієї покупки.


billAddrState

Штат або провінція адреси виставлення рахунку Власника картки, пов’язаної з карткою, що використовується для цієї покупки.


cardholderName

Ім'я власника картки.


email

Адреса електронної пошти, пов’язана з обліковим записом, який або введений Власником картки, або записаний у Запитувачі 3DS.


homePhone

Код країни, довжина 1-3

Абонент; макс. довжина 15

Приклад'homePhone':{‘Cc’:’044’,‘Subscriber’:’55555555’}
mobilePhone
Приклад' mobilePhone':{‘Cc’:’044’,‘Subscriber’:’55555555’}
shipAddrCity

Міська частина адреси доставки, яку запитує Власник картки.


shipAddrCountry

 


shipAddrLine1

 


shipAddrLine2

 


shipAddrLine3

 


shipAddrPostCode

 


shipAddrState

 


workPhone

 


merchantId

Ідентифікатор продавця, призначений еквайєром.


merchantRiskIndicato        deliveryEmailAddress

 


deliveryTimeframe

Позначає терміни доставки товарів.

Прийняті значення:

  • 01 = Електронна доставка
  • 02 = доставка в той же день
  • 03 = доставка на ніч
  • 04 = Дводенна або більше доставка
giftCardAmount

 


giftCardCount

 


giftCardCurr

 


preOrderDate

 


preOrderPurchaseInd

 


reorderItemsInd

 


shipIndicator

Вказує спосіб доставки, обраний для транзакції. Продавці повинні вибирати код показника доставки, який найбільш точно описує конкретну операцію власника картки, а не загальний бізнес. Якщо один або кілька товарів включені у продаж, використовуйте код індикатора доставки для фізичних товарів, або якщо всі цифрові товари використовуйте код індикатора доставки, який описує найдорожчий товар.

Прийняті значення:

  • 01 = Надіслати на платіжну адресу власника картки
  • 02 = Надіслати на іншу підтверджену адресу у файлі продавця
  • 03 = Надіслати на адресу, яка відрізняється від платіжної адреси власника картки
  • 04 = "Доставка в магазин" / отримання в місцевому магазині (Адреса магазину повинна бути заповнена в полях адреси доставки)
  • 05 = Цифрові товари (включає онлайн-послуги, електронні подарункові картки та коди погашення)
  • 06 = Квитки на подорожі та події, не відправлені
  • 07 = Інше (наприклад, ігри, цифрові послуги, що не постачаються, передплата на emedia тощо)
priorTransID 

Ідентифікатор транзакції сервера 3DS для попередньої аутентифікованої транзакції власника картки.

Приклад: 59ae264e-b0f4-43c7-870e-4d14bd52806e
threeRIInd 

Вказує тип запиту 3RI

Прийняті значення:

  • 01 = Повторна транзакція
  • 02 = транзакція розстрочки
  • 03 = Додати картку
  • 04 = Зберігати інформацію про картку
  • 05 = Перевірка рахунку

Формування підпису Signature

Детальна інструкція по формуванню підпису Signature в запитах - Формування підпису.

Примітка

Опис структури

  • F - повне поле
  • L - по лівому краю
  • R - по правому краю
  • ' ' - заповнені пробілами
  • Z - заповнене нулями
  • Var - поле змінної довжини

.

Примітка

Опис формату

n- числова десяткова цифра, значення 0..9, - буквений або цифровий символ, значення 0..9 або

A..Z або ..z, ans - буквений, цифровий або спеціальний символ,

.

Зверніть увагу

Параметри AltTotalAmount, AltCurrency визначаються, якщо продавцеві потрібно показати в магазині суму платежу в іншій валюті, яка відрізняється від валюти в договорі обслуговуючого банку.

При цьому на шлюз потрібно посилати 4 параметра:

  • TotalAmount, Currency - сума і валюта за умовами договору
  • AltTotalAmount, AltCurrency - сума і валюта, зазначена для оплати на магазині.


Коди валют:

  • 840 United States Dollar
  • 978 Euro
  • 980 Ukrainian Hryvnia

Однак транзакція буде проводитися за параметрами TotalAmount, Currency. При цьому торговець сам відповідає за відповідність сум між різними валютами (правильний перерахунок відповідно до курсу).

Related content