Авторизація
Тестове та робоче середовище
POST https://ecg.test.upc.ua/go/service/02
Тестове середовище
POST https://secure.upc.ua/go/service/02
Робоче середовище
<Authorization> обов'язково включає елемент <PayData>, який містить в собі обов'язковий елемент <Invoice> і <Card>, а також опціональний <PARes>
Коли в запиті передається значення CAVV (Cardholder Authentication Verification Value) операція вважається повністю захищеною.
OrderID - ідентифікатор замовлення, генерується на боці торговця. Параметр має бути унікальним для кожного запиту, винятками можуть бути ситуації, коли:
перша операція - неуспішна, торговець отримав відмову, в такому разі він може ініціювати новий платіж з тим же значенням OrderID
перша операція - успішна, але сума другої операції відрізняється, в такому разі мерчант може ініціювати новий платіж з тим же значенням OrderID, але вже з іншою сумою
Приклади запитів/відповідей:
Запит з використанням 3DSecure даних
<?xml version="1.0" encoding="UTF-8"?>
<ECommerceConnect
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://secure.upc.ua/go/pub/schema/xmlpay-1.24.xsd">
<Message id="123" version='1'>
<XMLPayRequest>
<RequestData>
<MerchantID>1750000</MerchantID>
<TerminalID>E1750000</TerminalID>
<Transactions>
<Transaction>
<Authorization>
<PayData>
<Invoice>
<OrderID>131222</OrderID>
<Date>29092021140000</Date>
<TotalAmount>1000</TotalAmount>
<Currency>980</Currency>
<Description>Rec#15</Description>
</Invoice>
<Card>
<CardNum>4999999999990011</CardNum>
<ExpYear>2050</ExpYear>
<ExpMonth>12</ExpMonth>
<CVNum>123</CVNum>
</Card>
<PARes>
<Status>Y</Status>
<CAVV>AGMBAjESZCRgAAAABxJkAAAAAAA=</CAVV>
<ECI>05</ECI>
<EMV3ds>
<DServerTransID>5ec68480-265e-48fa-b8b2-94f66b1e7259</DServerTransID>
</EMV3ds>
</PARes>
<Ref3>https://upc.ua</Ref3>
</PayData>
</Authorization>
</Transaction>
</Transactions>
</RequestData>
</XMLPayRequest>
</Message>
</ECommerceConnect>
Відповідь
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ECommerceConnect xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://secure.upc.ua/go/pub/schema/xmlpay-1.29.xsd">
<Message id="123" version="1">
<XMLPayResponse>
<ResponseData>
<MerchantID>1750000</MerchantID>
<TerminalID>E1750000</TerminalID>
<TransactionResults>
<TransactionResult>
<TranCode>000</TranCode>
<ApprovalCode>386646</ApprovalCode>
<Rrn>234717642614</Rrn>
<Comment>Approved</Comment>
<CVResult>M</CVResult>
<HostCode>000</HostCode>
</TransactionResult>
</TransactionResults>
</ResponseData>
</XMLPayResponse>
</Message>
<Signature></Signature>
</ECommerceConnect>
Запит без використанням 3DSecure даних
<?xml version="1.0" encoding="UTF-8"?>
<ECommerceConnect
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://secure.upc.ua/go/pub/schema/xmlpay-1.24.xsd">
<Message id="123" version='1'>
<XMLPayRequest>
<RequestData>
<MerchantID>1750000</MerchantID>
<TerminalID>E1750000</TerminalID>
<Transactions>
<Transaction>
<Authorization>
<PayData>
<Invoice>
<OrderID>1312222</OrderID>
<Date>29092021140000</Date>
<TotalAmount>1000</TotalAmount>
<Currency>980</Currency>
<Description>Rec#15</Description>
</Invoice>
<Card>
<CardNum>4999999999990011</CardNum>
<ExpYear>2050</ExpYear>
<ExpMonth>12</ExpMonth>
<CVNum>123</CVNum>
</Card>
</PayData>
</Authorization>
</Transaction>
</Transactions>
</RequestData>
</XMLPayRequest>
</Message>
</ECommerceConnect>
Відповідь
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ECommerceConnect xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://secure.upc.ua/go/pub/schema/xmlpay-1.29.xsd">
<Message id="123" version="1">
<XMLPayResponse>
<ResponseData>
<MerchantID>1750000</MerchantID>
<TerminalID>E1750000</TerminalID>
<TransactionResults>
<TransactionResult>
<TranCode>000</TranCode>
<ApprovalCode>727121</ApprovalCode>
<Rrn>234717641579</Rrn>
<Comment>Approved</Comment>
<CVResult>M</CVResult>
<HostCode>000</HostCode>
</TransactionResult>
</TransactionResults>
</ResponseData>
</XMLPayResponse>
</Message>
<Signature></Signature>
</ECommerceConnect>
Обробка м'яких відмов для EMVCo 3-ds Attempts
Якщо транзакція відхилена за допомогою TranCode “130” та HostCode “010”, це означає, що транзакція “м’яко відхилена” і вимагає надійної автентифікації клієнта, її потрібно повторити з challenge flow.
Продавець / PSP повинен повторити спробу з автентифікацією 3DS1, якщо відповідь автентифікації 3DS 2.x має статус транзакції A (спроби) і продавець зареєстрований у 3DS1. Статус транзакції буде використовуватися MasterCard Smart Authentication Stand-In, коли запит автентифікації EMV 3DS не може бути затверджений або коли картка не зареєстрована для EMV 3DS, і в цьому випадку, повторна спроба автентифікації 3DS1, швидше за все, буде затверджена, що призводить до вищих ставок затвердження дозволів.
Звертаємо увагу: усі запити до платіжної системи повинні використовувати кодування UTF-8. Це є обов’язковою вимогою для коректної обробки даних.