Інтерфейс проведення оплати через GooglePay
Google Pay™ – це простий і швидкий спосіб оплати покупок в магазинах і мільйонах онлайн-сервісів.
Підключення Google Pay через платіжну сторінку PaySoft
Для підключення необхідно:
- Зареєструватися в системі PaySoft.
- Погодитися з [умовами надання послуг Google Pay] (https://payments.developers.google.com/terms/sellertos).
При такому способі підключення немає необхідності проводити якусь додаткову інтеграцію. Кнопка Google Pay буде відображатися на сторінці оплати PaySoft.
Підключення за допомогою Google Pay Api
Цей спосіб дозволяє приймати платежі прямо у себе на сайті або в додатку без переходу на платіжну сторінку.
- [Документація Google Pay для веб-сайтів] (https://developers.google.com/pay/api/web/)
- [Контрольний список інтеграції Google Pay для веб-сайтів] (https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist)
[Правила фірмового оформлення Google Pay для веб-сайтів] (https://developers.google.com/pay/api/web/guides/brand-guidelines)
[Документація Google Pay для Android] (https://developers.google.com/pay/api/android/)
- [Контрольний список інтеграції Google Pay для Android] (https://developers.google.com/pay/api/android/guides/test-and-deploy/integration-checklist)
- [Правила фірмового оформлення Google Pay для Android] (https://developers.google.com/pay/api/android/guides/brand-guidelines)
Ви ініціюєте запит зі свого сайту або програми на отримання зашифрованих даних платежу згідно [документації GooglePay] (https://developers.google.com/pay/api/). Google Pay повертає зашифровані платіжні дані після аутентифікації покупця, які потрібно відправити в запиті в систему Paysoft.
Налаштування:
allowPaymentMethods : CARD
tokenizationSpecification = { "type": "PAYMENT_GATEWAY"}
allowedCardNetworks = ['MASTERCARD', 'VISA'];
allowedCardAuthMethods = ['PAN_ONLY', 'CRYPTOGRAM_3DS'];
gateway = paysoft
gatewayMerchantId - Ідентифікатор магазину. Ідентифікатор Продавець може отримати в Кабінеті (https://merchant.paysoft.solutions).
Action - https://card.paysoft.solutions/api/xml/googlepay
Method - POST
Формат XML-запиту:
<Command>
<LMI_MERCHANT_ID></LMI_MERCHANT_ID>
<LMI_HASH></LMI_HASH>
<LMI_PAYMENT_NO></LMI_PAYMENT_NO>
<LMI_PAYMENT_AMOUNT></LMI_PAYMENT_AMOUNT>
<LMI_PAYMENT_DESC></LMI_PAYMENT_DESC>
<LMI_PAYMENT_TOKEN></LMI_PAYMENT_TOKEN>
<LMI_PAYER_IP></LMI_PAYER_IP>
<LMI_MERCHANT_URL></LMI_MERCHANT_URL>
</Command>
Назва | XML параметр | Обов'язковий? | Опис |
---|---|---|---|
Ідентифікатор Продавця | LMI \ _MERCHANT \ _ID | Так | Ідентифікатор торгової точки, на який буде прийнятий платіж. Ідентифікатор Продавець може отримати в Кабінеті. |
Сума платежу | LMI \ _PAYMENT \ _AMOUNT | Так | Сума платежу, яку Продавець бажає отримати від Клієнта. Сума повинна бути більше нуля, дрібна частина відокремлюється крапкою. |
Внутрішній номер замовлення в системі обліку Продавця | LMI \ _PAYMENT \ _NO | ні | У цьому полі Продавець визначає номер замовлення у відповідності зі своєю системою обліку. Незважаючи на те, що параметр не є обов'язковим, рекомендується завжди задавати його, оскільки він потрібен для коректної роботи інших інтерфейсів. Бажано використовувати унікальний номер для кожного платежу. Номер може містити букви англійського алфавіту, цифри і знак дефіса «-». Максимальна довжина - 64 символів. |
Призначення платежу | LMI \ _PAYMENT \ _DESC | Так | Опис товару / роботи / послуги, які оплачуються. Максимальна довжина - 255 символів. Кодування - UTF8. |
Контрольна підпис | LMI \ _HASH | Так | Контрольна підпис запиту формується шляхом шифрування вихідного тексту XML-запиту з порожнім значенням LMI \ _HASH і секретного ключа SecretKey за допомогою алгоритму, вказаного в Кабінеті продавця. Отримана підпис передається в тезі LMI \ _HASH. Рекомендованим алгоритмом шифрування є SHA256. |
Електронна адреса Клієнта | LMI_PAYER_EMAIL | Ні ** | Електронний адреси Клієнта |
Ідентифікатор клієнта на стороні Продавця | LMI_PAYER_ID | ні | Може містити букви англійського алфавіту, цифри і знак дефіса «-». Максимальна довжина 25 символів. |
Зашифровані платіжні дані, отримані від Google | LMI_PAYMENT_TOKEN | Ні | Значення з paymentData.paymentMethodData.tokenizationData.token отримане від Google |
Розщеплення платежу | LMI_SPLIT | ні | Платіж з розщепленням суми на декількох одержувачів. У цьому параметрі вказується JSON масив з правилами розщеплення платежу. При використанні параметра LMI_SPLIT відбувається одне списання з клієнта і кілька зарахувань одержувачам. Приклад JSON рядки: `[{" CompanyId ": 1," Amount ": 20," CompanyName ":" "," Description ":" "," EDRPOU ":" "," IBAN ": ""}, { "CompanyId": 2, "Amount": 12, "CompanyName": "", "Description": "", "EDRPOU": "", "IBAN": ""}] ` |
IP платника | LMI \ _PAYER \ _IP | ні | IP адреса платника |
URL сайту | LMI \ _MERCHANT \ _URL | ні | URL сайту, на якому проводився платіж |
Формат XML-відповіді:
<Response>
<Retval></Retval>
<Retdesc></Retdesc>
<Retdata>
<LMI_SYS_PAYMENT_ID></LMI_SYS_PAYMENT_ID>
<Is3ds></Is3ds>
<action></action>
<PaReq></PaReq>
<MD></MD>
<ErrorMessage></ErrorMessage>
</Retdata>
</Response>
Назва | Поле в XML | Опис |
---|---|---|
Код виконання запиту | Retval | 0 - успішне виконання команди; 1 - Некоректна підпис (LMI_HASH); 2 - некоректні параметри; 3 - Карта даного типу не підтримується; 4,5,6,7 - внутрішня помилка; 8 - в процесі виконання |
Опис коду віполненія | Retdesc | |
Внутрішній номер платежу в системі PaySoft | Retdata / LMI \ _SYS \ _PAYMENT \ _ID | Номер прийнятого платежу в системі PaySoft. |
Is3ds | прапор залученості карти в 3DSecure (0 - карта не вимагає перевірки 3DSecure; 1 - карта потребує перевірки 3DSecure ). | |
action | URL для перенаправлення клієнта. Відображається лише при Retval = 0 і Retdata / Is3ds = 1 | |
PaReq | параметри запиту під час 3D-Secure. Відображається лише при Retval = 0 і Retdata / Is3ds = 1 | |
MD | параметри запиту під час 3D-Secure. Відображається лише при Retval = 0 і Retdata / Is3ds = 1 | |
ErrorMessage | додаткова інформація про помилки |
Якщо у відповідь було отримано значення поля Retdata / Is3ds = 1, це означає, що карта вимагає перевірки за технологією 3D-Secure. Для проведення такої перевірки необхідно сформувати і відправити html-форму методом POST за вказаною в поле Retdata / action адресою.
Увага! Ви не можете проігнорувати той факт, що карта залучена в 3D-Secure. Якщо у відповіді на paymentCreate був отриманий Is3ds = 1, то ви не можете пропустити цей крок (авторизацію карти по 3D-Secure ) і відразу перейти до команди paymentConfirm.
Приклад HTML форми, що містить всі необхідні поля:
<Form method="POST" action="%action%">
<Input type="hidden" name="PaReq" value="%PaReq%">
<Input type="hidden" name="MD" value="%MD%">
<Input type="hidden" name="TermUrl" value="%TERMURL%">
</ Form>
Параметри html-форми:
- %action% - значення поля Retdata/action з відповіді на запит
- %PaReq% - значення поля Retdata/PaReq з відповіді на запит
- %MD% - значення поля Retdata/MD з відповіді на запит
- %TERMURL% - URL адресу Вашої сторінки, на яку повернеться клієнт після проведення перевірки 3D-Secure. Може містити GET-параметри.
Після проведення перевірки 3DSecure клієнт буде перенаправлений на вказаний в TermUrl адресу за допомогою POST-запиту. Серед параметрів цього запиту будуть присутні PaRes і MD.