MPIEnrol
- Торговец инициирует обращение к MPI:
Пример запроса MPIEnrolRequest url - https://secure.upc.ua/go/service/03 |
<?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.7.xsd"> <Message id="1234" version="1.0"> <XMLMPIRequest> <MerchantID>1700000</MerchantID> <TerminalID>E7000000</TerminalID> <MPIRequestID="28832"> <MPIEnrolRequest> <CardNum>4999999999990011</CardNum> <ExpYear>2020</ExpYear> <ExpMonth>12</ExpMonth> <TotalAmount>100</TotalAmount> <Currency>980</Currency> <Description> XMLMPIRequest TEST</Description> <DeviceCategory>0</DeviceCategory> </MPIEnrolRequest> </MPIRequest> </XMLMPIRequest> </Message> <Signature></Signature> </ECommerceConnect> |
В полученном ответе торговец анализирует тег <Enrolled></Enrolled>.
Возможные варианты ответа:
Y = аутентификация возможна
U* = невозможен для аутентификации (используется, когда аутентификация либо невозможна по техническим причинам либо не включена в программу)
2.1. При получении ответа <Enrolled> U </Enrolled> торговец инициирует отправку сообщения Авторизация (Authorization) или Преавторизация (Preauthorization) (в зависимости от выбранной схемы работы) используя для аутентификации только CVV2.
Торговец обязан запросить у клиента CVV2 код и подставить значение в тег <CVNum>***</CVNum>.
Транзакция будет маркирована как ECI 07 в следствии отсутствия какой либо дополнительной аутентификации клиента.
2.2 При получении ответа <Enrolled> Y </Enrolled>, ответ сервиса может содержать URL ACS сервера платежной системы или банка эмитента (VISA и MasterCard отправляют все запроси через Directory Server, следственно в теге <Enrolled> </Enrolled> присылают всегда значение Y).
После прохождения аутентификации на ACS сервере платежной системы (не ACS банка эмитента – в случае не активированной 3D-secure аутентификации) тег PARes заполняется так:
Для VISA | Для MasterCard |
<PARes> <Status>A</Status> <CAVV>AAABCFg3aUFBSBAQlTdpEFX/7P4=</CAVV> <ECI>06</ECI> <CavvAlgorithm>2</CavvAlgorithm> </PARes> |
<PARes> <Status>A</Status> <CAVV>hg8RdVI/XQLFCAEAJXPUBjYAAAA=</CAVV> <ECI>01</ECI> <CavvAlgorithm>3</CavvAlgorithm> </PARes> |
Пример Attempt* сообщения Авторизации (Authorization) Test URL - https://ecg.test.upc.ua/go/service/02 |
<?xml version="1.0" encoding="UTF-8"?><ECommerceConnect xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:noNamespaceSchemaLocation="https://secure.upc.ua/go/pub/schema/xmlpay-1.4.xsd" 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.4.xsd"> <Message id="15967003274935781442886718696099" version="1.0"> <XMLPayRequest> <RequestData> <MerchantID>1234567</MerchantID> <TerminalID>E1234567</TerminalID> <Transactions> <Transaction> <Authorization> <PayData> <Invoice> <OrderID>10vtlspusssd55</OrderID> <Date>150922015158</Date> <TotalAmount>10000</TotalAmount> <Currency>980</Currency> <Description>tran test</Description> </Invoice> <Card> <CardNum>4999999999990011</CardNum> <ExpYear>2050</ExpYear> <ExpMonth>12</ExpMonth> <CVNum>111</CVNum> </Card> <PARes> <Status>A</Status> <CAVV>AAABCFg3aUFBSBAQlTdpEFX/7P4=</CAVV> <ECI>06</ECI> <CavvAlgorithm>2</CavvAlgorithm> </PARes> </PayData> </Authorization> </Transaction> </Transactions> </RequestData> </XMLPayRequest> </Message> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>kbtjFIDcoCH5rAPoWwdOTMqq/2I=</DigestValue></Reference></SignedInfo><SignatureValue>Np0vR7VlHEE6nqeekiWiwJLuY9pf8zZE4AvAm/E1gdx7BQrjxoYEXs/EpzIn4b3YtnD+spMkK8PY Kn0LunRHUDSbxUZ5kdn2b6etdNdkll03QqFLKv6kArrGSlYPiMcIEJGdw/8a6nzuga8L9oa9KunR ztuBZcKN4v45yke7/qo=</SignatureValue></Signature></ECommerceConnect> |
2.2. При получении ответа <Enrolled> Y </Enrolled>
Пример ответа XMLMPIResponse Enrolled Y |
<?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.5.xsd"> <Message id="30115" version="1.0"> <XMLMPIResponse> <MPIResponse> <Code>0</Code> <MPIEnrolResponse> <Enrolled>Y</Enrolled> <AcsURL>https://upc. ua/ACS/servlet/VPASPayerAuthHTTPServlet?PS=S </AcsURL> <PaReq> eJxVUk1vwjAM/StV72s+SNoEmUwMNsEBVg3YvU ojKBptl7aj269fAh3bDpH8ni0/+zlw35/egg9jm6IqJyGJcBiYUld 5Ue4n4W77dCfCewXbgzVmvjG6s0bByjRNtjdBkU/CNHsx72Q kecJjQoTglEpMGeOUETySIk4kZ6GCdOrqFAxKyglFFNAPdC2tP mRlqyDT7w/LteIspkwCGiCcjF3OVSy4lJIDukIos5NRj5vFcxq8P u9mi8eXYJfOAF140FVXtvZTCcwA/QDo7Js6tG09Ruh8PkfNoaq jrtZRlwHyOUC/w6SdjxrXqy9ytZpPz+716/n0a3Xc9esCj1ZbzdfH 5QSQr4A8a42imDA8ojwgbIzJmAtAFx6ykx/CL4/dZlcAtdeYDhm f+EuAc9y6g3wqKVzqhsD0dVUaV+FcvMWQm0arTV3YoiRO1CN Av0vMFt5f3TrrCGOYC5LE3A3KEiEFvVHe9UuRVymcZyTxDg4Ak G+DhoOi4TO46N8n+QYUBr7u </PaReq> <XID>12345678-123456</XID> </MPIEnrolResponse> </MPIResponse> </XMLMPIResponse> </Message> <Signature></Signature> </ECommerceConnect> |
Необходимо переадресовать клиента с парметри PaReq, TermUrl через HTTP POST на адрес AcsURL
Пример переадресации клиента
url -AcsURL |
<form method='post' action= AcsURL > <input type='hidden' name='TermUrl' value= TermUrl > <input type='hidden' name='PaReq' value= PaReq> <input type='hidden' name='MD' value=''> <input name='button' type='submit' value="go"> </form> |
Владелец карты переходит на ACS банка и вводит одноразовый пароль. В некоторых случаях переход может быть не явным для клиента (Attempt)
Страница банка эмитента |
После чего платежная система посылает в ответ Merchant Data / PaRes на указанный TermUrl через HTTP POST.
Полученный ответ от платежной системы торговец формирует в MPIAuthRequest, для получения финальных авторизационных данных.
Пример запроса MPIAuthRequest WORK - https://secure.upc.ua/go/service/03 |
Пример ответа |
<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.5.xsd"> <Message id="1234567" version="1.0"> <XMLMPIRequest> <MerchantID>1700000</MerchantID> <TerminalID> E7000000</TerminalID> <MPIRequest ID="1111"> <MPIAuthRequest> <PaRes>…….</PaRes> </MPIAuthRequest> </MPIRequest> </XMLMPIRequest> </Message> <Signature></Signature> </ECommerceConnect> |
<?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.5.xsd"> <Message id="1234567" version="1.0"> <XMLMPIResponse> <MPIResponse> <Code>0</Code> <MPIAuthResponse> <Status>Y</Status> <CAVV> >*************</CAVV> <ECI>05</ECI> <CavvAlgorithm>2</CavvAlgorithm> </MPIAuthResponse> </MPIResponse> </XMLMPIResponse> </Message> <Signature></Signature> </ECommerceConnect> |
Пример запроса MPIAuthRequest для MasterCard WORK - https://secure.upc.ua/go/service/03 |
Пример ответа |
<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.5.xsd"> <Message id="1234567" version="1.0"> <XMLMPIRequest> <MerchantID>1700000</MerchantID> <TerminalID>E7000000</TerminalID> <MPIRequest ID="1111"> <MPIAuthRequest> <PaRes>…….</PaRes> </MPIAuthRequest> </MPIRequest> </XMLMPIRequest> </Message> <Signature></Signature> </ECommerceConnect> |
<?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.5.xsd"> <Message id="1234567" version="1.0"> <XMLMPIResponse> <MPIResponse> <Code>0</Code> <MPIAuthResponse> <Status>A</Status> <CAVV> hoIJ71ONDNFnYwAAADW0AxIAAAA=CAVV> <ECI>01</ECI> <CavvAlgorithm>3</CavvAlgorithm> </MPIAuthResponse> </MPIResponse> </XMLMPIResponse> </Message> <Signature></Signature> </ECommerceConnect> |
Примечание: При получении ответа <Status>A</Status> торговец инициирует отправку Attempt* сообщения Авторизация (Authorization) или Преавторизация (Preauthorization) (в зависимости от выбранной схемы работы). Для этого дополнительно запрашивается у клиента и подставляется в запрос значение CVV2 кода. ВАЖНО!!!: в финальном авторотационном запросе обязательно должны присутствовать заполненные поля блока <PARes> (Status +CAVV+ ECI+ CavvAlgoritm) и CVV2 код. Пример финального запроса можно посмотреть в Пример Attempt* сообщения Авторизации (Authorization). |
Для завершения FULL 3D SECURE операции, необходимо полученные данные в теге <MPIAuthResponse> подставить в запрос Авторизация (Authorization) или Преавторизация (Preauthorization) в теге <PARes>.
Запрос Test URL - https://ecg.test.upc.ua/go/service/02 PROD URL - https://secure.upc.ua/go/service/02 |
<?xml version="1.0" encoding="UTF-8"?><ECommerceConnect xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:noNamespaceSchemaLocation="https://secure.upc.ua/go/pub/schema/xmlpay-1.4.xsd" 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.4.xsd"> <Message id="15967003274935781442886718696099" version="1.0"> <XMLPayRequest> <RequestData> <MerchantID>1752739</MerchantID> <TerminalID>E7880539</TerminalID> <Transactions> <Transaction> <Authorization> <PayData> <Invoice> <OrderID>10vtlspussdsd55</OrderID> <Date>150922015158</Date> <TotalAmount>10000</TotalAmount> <Currency>980</Currency> <Description>tran test</Description> </Invoice> <Card> <CardNum>4999999999990011</CardNum> <ExpYear>2050</ExpYear> <ExpMonth>12</ExpMonth> <CVNum>111</CVNum> </Card> <PARes> <Status>A</Status> <CAVV></CAVV> <ECI>06</ECI> <CavvAlgorithm>2</CavvAlgorithm> </PARes> </PayData> </Authorization> </Transaction> </Transactions> </RequestData> </XMLPayRequest> </Message> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>kbtjFIDcoCH5rAPoWwdOTMqq/2I=</DigestValue></Reference></SignedInfo><SignatureValue>Np0vR7VlHEE6nqeekiWiwJLuY9pf8zZE4AvAm/E1gdx7BQrjxoYEXs/EpzIn4b3YtnD+spMkK8PY Kn0LunRHUDSbxUZ5kdn2b6etdNdkll03QqFLKv6kArrGSlYPiMcIEJGdw/8a6nzuga8L9oa9KunR ztuBZcKN4v45yke7/qo=</SignatureValue></Signature></ECommerceConnect> |