Інтеграція з Google Pay
1. Вступ
Google Pay™ – швидкий та простий спосіб, що дозволяє вам спл ачувати карткою без необхідності вводити платіжні дані для кожного платежу. Дані картки надійно зберігаються у Google. Цей метод оплати доступний для всіх пристроїв (мобільних телефонів або комп'ютерів), незалежно від операційної системи та веб-браузера.
2. Підключення через сторінку Portmone.com
Попередні умови
-
Необхідно укласти договір з Portmone.com.
-
Потрібно погодитись з умовами надання послуг Google Pay.
Опис
При такому способі підключення немає необхідності у додаткових інтеграціях. Кнопка Google Pay буде відображена на сторінці оплати Portmone.com. Керувати методами оплати та порядком, в якому відображаються платіжні інструменти (в тому числі й Google Pay), можливо за допомогою JSON-запиту (див. розділ 3.2 документації) або звернувшись до менеджера із співпраці.
3. Підключення через Google Pay API
Попередні умови
- Необхідно зареєструватися для використання Google Pay API.
- Ваш сайт повинен працювати за схемою HTTPS і підтримувати протокол TLS.
- Щоб інтегрувати свій веб-сайт або мобільний додаток з Google Pay, використовуйте наступні інструкції:
• Докумен тація:
• Вимоги з брендування
Як це працює?
- Ви робите запит зі свого додатку на отримання зашифрованих даних платежу.
- Google Pay повертає зашифровані дані платежу після аутентифікації покупця.
- Ви надсилаєте зашифровані дані платежу до вашого серверу.
- Ви надсилаєте JSON-запит, що містить зашифровані дані, до Portmone.com.
- Ми надсилаємо вам результат платежу.
- Ви сповіщаєте покупця про результат.
Як інтегрувати метод Google Pay?
Крок 1. Використовуйте Google Pay API для отримання PaymentData.
Параметри налаштування:
a. allowPaymentMethods : CARD
b. tokenizationSpecification = { "type": "PAYMENT_GATEWAY"}
allowedCardNetworks = ['MASTERCARD', 'VISA'];
allowedCardAuthMethods = ['PAN_ONLY', 'CRYPTOGRAM_3DS'];
c. gateway = portmonecom
d. gatewayMerchantId - Унікальний ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com.
Приклад набору даних, що повертаються Google Pay:
{
"apiVersionMinor": 0,
"apiVersion": 2,
"paymentMethodData": {
"description": "Mastercard •••• 5179",
"tokenizationData": {
"type": "PAYMENT_GATEWAY",
"token": {
"signature": "MEYCIQC+IHxUu9Wwra2Vu6tBa2wJPCMT3pWtN1VphLGYtNVLLwIhAOkdbNje//eLrXVc+n6LOlc4PqxWOUcqwrmki/CNA1ur",
"intermediateSigningKey": {
"signedKey": "{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwhRrvGB0kZ1248MEJAPwX0YfrQInhyyRM7nyGFjQuzGSViZG3QC9NMvXR9Zd6uVcVzAz+6K/+NEGIWbX8zbk6A\\u003d\\u003d\",\"keyExpiration\":\"1571208568000\"}",
"signatures": [
"MEUCIQCR6vIEiyHB8qmlho4/tLd7W8CIGrZDJlCI48CBHeFPvQIgLZJIe4cZv6pYtYYa56QCI/vvg1GqXTP3bTBjO49r5mI\u003d"
]
},
"protocolVersion": "ECv2",
"signedMessage": "{\"encryptedMessage\":\"k85CGUMmd5PaGmQlHFqHc0HrDZmjM1yG82rFB/p31ZyUleN5nihzjOZif/BKXwg3XA2oLXqBSSWcAdfZwXxCEOqvAQE+kpTC7qVO4wTPip6RruraT6vO9M9FtIf0kcqzYSAN7pl1SUA5jC9rHrqucPoh0/FSspup78SWBt8TnmVKC9O3sQhIZ3SMoGOG4mdjtIrgCwWH2cbrxUH0dHAqOe5ANGOY/mII4nTEp7xaKu41hK/kFE15zVyqgPJXP9bPxzMVk/ozEZSfhSzVTS+9stjkU/kT5EibKB3O1bbxyybKcGQ5vxBOtNOBKKd/NuqNmN2eEK3UbSKb1M3gv45gT9cCeEvlzO7Wg0N100vUBp9RPDN9TH4tj4w578sWFKfTi6FsSrZB27SGWcU0EaKHO9buo94mRBY5yqffF3bKg5mAMPzjDhyHSujqWKAs9C5fBzMEuEr2z7A23kfLqBceH5uS9LJMiZ/yVKCwfpY9u2XyCjKdp7I\\u003d\",\"ephemeralPublicKey\":\"BAMDAtfgcPNuzItrwGLigGj3rtxmyHhZLwx1B4RJZ2oo11jpFf3SA6a3utryCMmlCEcqLfLn6WDH2ArrNBGn+Ew\\u003d\",\"tag\":\"T/qhZ/XY5/3Fe4QBKafm6NqS6EzwVeiKXhRlp8NeWrA\\u003d\"}"
}
},
"type": "CARD",
"info": {
"cardNetwork": "MASTERCARD",
"cardDetails": "5179"
}
}
}
Дані, що отримані в параметрі token
, необхідно надіслати до API Portmone.com, використовуючи параметр запиту gPayToken
.
Метод: GPay
URL: https://www.portmone.com.ua/r3/api/gateway.
Параметри запиту:
Параметр | Опис | Обов'язковий |
---|---|---|
login | Логін Інтернет-магазину для доступу до управління акаунтом | Так |
password | Пароль Інтернет-магазину | Так |
gPayToken | Токен, що отриманий мерчантом від системи Google Pay | Так |
payeeId | Унікальний ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
billAmount | Сума оплати. Розділювач крапка. Наприклад: "10.21" | Так |
description | Коментар до замовлення / опис призначення платежу | Ні |
shopOrderNumber | Номер замовлення (рахунку) у системі Інтернет-магазину | Ні |
emailRecipient | Адреса електронної пошти Клієнта | Ні |
preauthFlag | Ознака преавторизації платежу (значення "Y" вказує на те, що ця оплата здійснюється з використанням процедури преавторизації, значення "N" – звичайна оплата без преавторизації) | Ні |
billCurrency | Валюта проведення платежу. Можливі значення: UAH, USD, EUR, GBP, BYN, KZT, RUB (значення без задання – UAH) | Ні |
shop_site_id | Канал оплати у системі Portmone | Ні |
threeDs | Секція параметрів, що використовується для зазначення URL мерчанта (termUrl або appUrl ), на який буде перенаправлено клієнта після успішного проходження перевірки 3D Secure | Ні |
termUrl | Необхідно встановити значення "Y" або не використовувати цей параметр | Ні |
appUrl | Значення appUrl мерчанта (у разі інтеграції GPay у мобільний додаток) | Ні |
clientIp | Значення IP адреси платника | Ні |
Приклад запиту:
{
"method": "GPay",
"params": {
"data": {
"login": "wdishop",
"password": "wdi451",
"gPayToken": {
"signature": "MEUCIQD+9/PnFvB+Lo6d/eHpgqQrMvmRDZdW1AcjQKavHrcPmQIgeVjR1hXqH7hkCn+VZqx/kjdofMIYbyL15Xp52mR9+2s\u003d",
"intermediateSigningKey": {
"signedKey": "{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBOHyOhwWk6SK5nqhFBBI1hSvWHAaOO0Ukbrl56zx7fPNttFFKs2U10f6EWbdhULrv4QT4qMNbyVAq8ig1jdsYA\\u003d\\u003d\",\"keyExpiration\":\"1570945959000\"}",
"signatures": [
"MEYCIQCe6t42U5OemtGGdYC6npBNbVxe1HbTF8pUkSD7mO+CWAIhAI/0M/XQuW6i8reT0LCNHKoNfgWYwOWHBoj2wpZdgKHh"
]
},
"protocolVersion": "ECv2",
"signedMessage": "{\"encryptedMessage\":\"U9ChAIukmQ85TdZKAU/26mJUwUt3cVpJmx/JtFi350F/KiRNiIEGi1CmkgVe+ohzikkKLo37Ty3YQjyjVHNTHmF3AyNVTIJCL7qYybt+aFNI1XFlpv3ArWU+fH8Bi190tl7lLyyeNjWx8L402spsLpuUe9OLLjazIq0Vfjw3wRZ2B2+ybUrnoz5Iydapn8B7c/QqR7w53n6svIK58q7eL159Ano0GyfLpUOLLQ949MhP1ze***UzapUGtMd0k0c/4Nnkfs2TnN6ETEtP8y9J29hYKGVOCo79rRSN2xLsYXGNawIiPc6082HWB82JyuW2bfWAL1R0W+2iql2dBWY\\u003d\",\"ephemeralPublicKey\":\"BPYYpVT5INyXSwoNbP/HuGkjQnfnUwUPMH2bCp6Od3EoihnegFZObjP0IVvDA5YfNlLDJjHutBDj30GW5Fei8xw\\u003d\",\"tag\":\"qt4FcCGO4rp969CBBTPJ0nhAeQeR+rOM0FmXk8DdGLQ\\u003d\"}"
},
"payeeId": "1185",
"billAmount": "10.21",
"description": "test payment",
"shopOrderNumber": "123456",
"attribute1": "1",
"attribute2": "2",
"attribute3": "3",
"attribute4": "4",
"emailRecipient": "[email protected]",
"billCurrency": "UAH",
"preauthFlag": "N",
"shop_site_id": "",
"threeDs": {
"termUrl": "Y",
"appUrl": "https://portmone2.com/r3/ecommerce/test/master-test-from"
},
"clientIp": "127.0.0.7"
}
},
"id": "1"
}
Параметри відповіді:
Параметр | Опис |
---|---|
status | Результат оплати. Можливі значення: - PAYED – оплата успішна, - REJECTED – відмова, - CREATED – замовлення створено, але не оплачено |
errorCode | Код помилки. Якщо значення параметру "0" – оплата успішна або потрібна додаткова перевірка (див. значення параметру isNeed3Ds ). Якщо значення параметру більше за 0 або порожнє – сталася помилка |
error | Текст помилки (див. Таблицю кодів відмов) |
shopBillId | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
billAmount | Передана у запиті сума транзакції |
billNumber | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
attribute1 | Службове поле, заповнюється на розсуд компанії |
attribute2 | Службове поле, заповнюється на розсуд компанії |
attribute3 | Службове поле, заповнюється на розсуд компанії |
attribute4 | Службове поле, заповнюється на розсуд компанії |
cardMask | Маска Картки/ Токену платника |
actionMPI | URL банку, на який треба перенаправити клієнта для проходження 3D Secure перевірки |
pareq | Параметр, який треба передати на actionMPI при проходженні 3D Secure перевірки |
authCode | Код авторизації |
description | Коментар до замовлення / опис призначення оплати. До 250 символів |
lang | Мова відповіді. Залежить від локалізації endpoint, на який надсилали запит* |
md | Параметр, який треба передати на actionMPI при проходженні 3D Secure перевірки |
isNeed3DS | Ознака необхідності проходження перевірки 3D Secure ("Y" – необхідно пройти процедуру перевірки 3D Secure, "N" – додаткові дії не потрібні) |
token | Значення Токену для подальших оплат. Для методів оплати GPay та APay не формується |
billCurrency | Валюта платежу |
transactionId | Ідентифікатор транзакції в системі банка-еквайера |
termUrl | URL мерчанта, на який мають повернутись параметри відповіді від банку після проходження 3D Secure. Значення генерується системою Portmone |
successUrl | Значення appUrl мерчанта, на який мають повернутись параметри відповіді від банку після проходження 3D Secure (якщо це значення було передане в параметрі appUrl у запиті на оплату) |
pdfUrl | Посилання для збереження квитанції про оплату. Надається клієнтові лише якщо status=PAYED |
shop_site_id | Канал оплати у системі Portmone |
Примітка: * – для отримання локалізованих текстів відмов необхідно надсилати запит на відповідний endpoint:
https://www.portmone.com.ua/r3/api/gateway – стандартно українською мовою https://www.portmone.com.ua/r3/uk/api/gateway – для відповідей українською мовою https://www.portmone.com.ua/r3/ru/api/gateway – для відповідей російською мовою https://www.portmone.com.ua/r3/en/api/gateway – для відповідей англійською мовою
Приклад успішної відповіді:
{
"result": {
"status": "PAYED",
"errorCode": "0",
"error": "",
"shopBillId": "550298815",
"billAmount": "1.01",
"billNumber": "SHP-00000002",
"attribute1": "",
"attribute2": "",
"attribute3": "",
"attribute4": "",
"cardMask": "535560******3735",
"actionMPI": "",
"pareq": "",
"authCode": "67037Z",
"description": "test payment",
"lang": "uk",
"md": "",
"isNeed3DS": "N",
"token": "",
"billCurrency": "UAH",
"transactionId": "927500948048",
"pdfUrl": "https://www.portmone.com.ua/r3/services/receipts/get-receipts/shop-bill-id/35357a20f10b49519794e81b48b20d0402cd2b7654553048021cb230400befdf94bacfbb12bd77983adae9422fbcc51cf0987a171403f08b33b2d119249845bad4e457",
"shop_site_id": ""
},
"id": "1"
}
Приклад відмови:
{
"result": {
"status": "REJECTED",
"errorCode": "5",
"error": "Transactions has exceeded the limit by your bank",
"shopBillId": "5530964511",
"billAmount": "1",
"billNumber": "P55309624511",
"attribute1": "A",
"attribute2": "",
"attribute3": "",
"attribute4": "",
"cardMask": "535560******3735",
"actionMPI": "",
"pareq": "",
"authCode": "",
"description": "test payment",
"lang": "en",
"md": "",
"isNeed3DS": "N",
"token": "",
"billCurrency": "UAH",
"transactionId": "928199458716",
"pdfUrl": "",
"shop_site_id": ""
},
"id": "1"
}
Приклад відповіді, якщо необхідна 3D Secure перевірка:
{
"result": {
"status": "CREATED",
"errorCode": "0",
"error": "",
"shopBillId": "663526924",
"billAmount": "1.2",
"billNumber": "123456.14052020.05",
"attribute1": "1",
"attribute2": "2",
"attribute3": "3",
"attribute4": "4",
"cardMask": "516874******5179",
"actionMPI": "https://acs.privatbank.ua/pPaReqMC.jsp",
"pareq": "eJxVUcluwjAQ/RWUY6XiJZtBE6MUuh0CKYVDj1FiQSqy4IQCf99xCNDKGmne7H4PJqdiN/hRusmrMrDYkFoDVaZVlpebwFqvXh6FNZGw2mqlZp8qPWglIVJNk2zUIM8CK06Was/cEXWY8LjjuB4Xtuc7jNr4RkJ49ohbEuIQ6yT0myQuGnIgV4gjdbpNylZCku6f3ufSdYTnCiA9hELp95n0GHN8HxsvEMqkUDJeLFfRYv48nC6ih9c4/ALSxSGtDmWrz1JQB8gVwEHv5LZt62ZMSF3ptqhKNUyrAojJALmfEh+M1+CkU57JaBYe0c5oLPpen+ZneoxWH2hRAMRUQJa0SnLKKXW5O2DO2PXHZncXh6QwJ+DXOcV/XQDUZkfYZ0zibwCQb41ynOVIYOqGQJ1qvBorkIqbD+R+8PTNMJm2SJIRxmM2E6yjs4uZATmSwTll3QQDgJgu0itFepXR+6f+L1ndtBw=",
"authCode": "",
"description": "test payment",
"lang": "ru",
"md": "194203287",
"isNeed3DS": "Y",
"token": "",
"billCurrency": "UAH",
"transactionId": "",
"termUrl": "https://www.portmone.com.ua/r3/pg/confirmapigateway/3332633904a34c326a772f1256a70958bdaa4cc092a3fa86bdd5712dc033654d2582a3e4668f52230428/?shopBillId=303977a031fa486ee5e571aa119b89ba9eacd8&3ds=Y&py=303523031e7bb72dc8c426146af248",
"successUrl": "https://portmone2.com/r3/ecommerce/test/master-test-from",
"pdfUrl": ""
},
"id": "1"
}
Для проходження процедури 3D Secure мерчанту необхідно відкрити сторінку перевірки від банку (action
), передавши на неї POST-запитом параметри перевірки (PaReq
, MD
) та URL для повернення після 3D Secure (TermUrl
).
Параметри виклику сторінки банку:
Параметр | Опис |
---|---|
action | Отримане від Portmone значення actionMPI |
PaReq | Отримане від Portmone значення pareq |
MD | Отримане від Portmone значення md |
TermUrl | URL партнера, на який мають повернутись параметри відповіді від банку після проходження 3D Secure. Якщо оплата здійснюється з додатку – app url |
Приклад HTML-форми для виклику сторінки банку:
<form
id="TheForm"
action="https://acs.privatbank.ua/pPaReqMC.jsp"
method="POST"
name="TheForm"
>
<input
type="hidden"
name="PaReq"
value="eJxVUdtugkAQ/RXDY5O6u1wW1oxrqPbiA0KtfegjwY
1iBHTBFvv1nUWs7SabzJnrmTMwaYv94FPpOq/KscWG1BqoMqvWebkZW++rp/vAmkhYbbVSszeVnbSSE
Km6TjdqkK/HVpIu1ZF5nsMDfK7g3Oc2FUwI6nmccSE45ZaEJMQ8Cf0kiYOGNpArxJY626ZlIyHNjg/z
hfTcgHsBkB5CofR8Jjljru9j4QVCmRZKJvFyFcWLx+E0ju6ek/ADSOeHrDqVjT7LgLpArgBOei+3TXO
oR4QcKt0UVamGWVUAMREgNyrJyVg1dmrztYxm4Rf+Nl6F39EuaxdTyqJZRKPd6xiIyYB12ihpUyaoY/
sDZo+YO3JxdueHtDAUcHXbwb0uAA5mRthHTOCvA1Bvjec4SxFQXOGKQLUHZI0ZKMWvDeRGePpilMwaF
MlxHN/2fY+KTs7OZxrkKIaNZLsOBgAxVaS/FOmvjNa/6/8AWHOz+w=="
/>
<input type="hidden" name="MD" value="166765657" />
<input
type="hidden"
name="TermUrl"
value="https://portmone2.com/r3/ecommerce/test/"
/>
</form>
Після вводу коду на сторінці банку клієнт буде повернений назад на TermUrl
, що вказаний у запиті, і на нього банком будуть передані параметри MD
та PaRes
, значення яких необхідно надіслати у Portmone для отримання результатів авторизації.
Якщо не було передано значення MD
у відповіді на confirmMpi
потрібно передавати порожнє значення.
Параметри запиту у Portmone для підтвердження 3D Secure:
Параметр | Опис |
---|---|
MD | Значення MD , отримане від банку на ваш URL |
PaRes | Значення PaRes , отримане від банку на ваш URL |
shopBillId | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com, отриманий у попередніх запитах |
Приклад запиту у Portmone для підтвердження 3D Secure:
{
"method": "confirmMpi",
"params": {
"data": {
"MD": "166765657",
"PaRes": "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",
"shopBillId": "476986520"
}
},
"id": "1"
}
Відповідь від Portmone.com буде містити результат оплати.
Якщо у відповідь отримуєте "isNeed3DS": "Y", тоді потрібно знову робити запит confirmMpi
і доти, поки не отримаєте "isNeed3DS": "N"
Крок 2. Перевірити відповідність контрольному списку інтеграції.
Крок 3. Відправити збірку мобільного додатку (.apk) або посилання на сайт зі сторінкою оплати до GPay для перевірки.
Додаток 1. Схема обробки параметрів відповіді
Додаток 2. Таблиця кодів відмов
Код | Опис | Повідомлення про помилку (en) | Повідомлення про помилку (ukr) | Рекомендовані дії |
---|---|---|---|---|
0 | ||||
1 | Declined by bank | Transaction declined by bank | Операція відхилена банком | Клієнту необхідно звернутись до свого банку. Може повторити оплату |
2 | Transaction is prohibited by acquiring bank | Transaction is prohibited by acquiring bank | Операція від хилена банком-еквайером | Клієнту необхідно звернутись до служби підтримки Portmone.com. Може повторити оплату |
3 | Transaction is prohibited by issuing bank | Transaction is prohibited by issuing bank | Операція відхилена вашим банком | Клієнту необхідно звернутись до свого банку. Може повторити оплату |
4 | Technical/ communication problem | Technical problems. Please try again later | Технічні проблеми. Спробуйте пізніше | Клієнту необхідно звернутись до служби підтримки Portmone.com. Може повторити оплату |
5 | Transaction has exceeded the limit by your bank | Transaction has exceeded the limit by your bank | Операція відхилена банком. Перевищення лімітів | Клієнту необхідно звернутись до свого банку. Може повторити оплату |
6 | Not sufficient funds | Transaction declined by bank. Insufficient funds | Операція відхилена банком. Недостатньо коштів | Клієнту необхідно звернутись до свого банку. Може повторити оплату |
7 | Invalid CVV or card expiry date | Transaction declined by bank. Invalid CVV or card expiry date | Операція відхилена банком. Некоректний CVV або термін дії картки | Клієнту необхідно звернутись до свого банку. Може повторити оплату |
8 | Invalid OTP code | Transaction declined. Invalid OTP code | Операція відхилена. Введено невірний код | Клієнту необхідно звернутись до служби підтримки Portmone.com. Може повторити оплату |
9 | Invalid 3DS data | Transaction declined by bank. Invalid 3DS code | Операція відхилена. Введено невірний код | Клієнту необхідно звернутись до свого банку. Може повторити оплату |
10 | Duplicate transactions | Transaction declined. Duplicate transactions | Операція відхилена. Повторна транзакція | Клієнт може повторити оплату |
11 | Format error | Transaction declined. Format error | Операція відхилена. Некоректний формат запиту | Мерчанту необхідно перевірити коректність формату запиту |
12 | Portmone verification | Additional card verification required | Необхідно пройти додаткову перевірку картки | Клієнту необхідно звернутись до служби підтримки Portmone.com. Може повторити оплату |
13 | System error. Please try again. | System error. Please contact Portmone.com support | Системна помилка. Зверніться до служби підтримки Portmone.com | Клієнту необхідно звернутись до служби підтримки Portmone.com. Може повторити оплату |
14 | Wrong signature | Transaction declined. Authentication failed or invalid request | Операція відхилена. Не пройдена аутентифікація або некоректний запит | Мерчанту необхідно перевірити коректність параметрів запиту |
15 | Query time exceeded | Transaction declined. Timeout. Contact Portmone.com support | Операція відхилена. Перевищено час очікування. Зверніться до служби підтримки Portmone.com | Клієнту необхідно звернутись до служби підтримки Portmone.com. Може повторити оплату |
16 | Invalid request data | Transaction declined. Invalid request | Операція відхилена. Некоректний запит | Мерчанту необхідно перевірити коректність запиту |
17 | Transaction has exceeded system limits | Transaction declined. Limit is exceeded. Contact Portmone.com support | Операція відхилена. Перевищено ліміт. Зверніться до служби підтримки Portmone.com | Клієнту необхідно звернутись до служби підтримки Portmone.com. Може повторити оплату |
18 | Fraud | Transaction declined by Portmone.com monitoring system. Please contact support | Операція відхилена моніторинговою системою Portmone.com. Зверніться до служби підтримки | Клієнту необхідно звернут ись до служби підтримки Portmone.com. Може повторити оплату |
19 | Order not found | Order not found | Замовлення не знайдено |