Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Ограничения

Note

Ваш сайт должен работать по схеме HTTPS и поддерживать протокол TLS 1.2.

Note

Google Pay работает в: Chrome, Safari, UC Browser, Firefox, Opera, Microsoft Edge, Android.

Note

Для работы в webview необходимо следовать инструкциям: https://developer.android.com/guide/webapps/webview?hl=ru#BindingJavaScript

Демо

Iframe
scrollingno
srchttps://devplaton.com.ua/invoices/demo_buttons/payment_Gpay_API.html
width570
frameborderhide
height65

Требования к брендированию

Документация по интеграции Google Pay API

Инструкция

Интегрируйте Google Pay API следуя документации выше для получения PaymentData.

Параметры:

  • allowPaymentMethods : CARD

  • tokenizationSpecification = { "type": "PAYMENT_GATEWAY"}

  • allowedCardNetworks = ['MASTERCARD', 'VISA'];

  • allowedCardAuthMethods = ['PAN_ONLY', 'CRYPTOGRAM_3DS'];

  • gateway = platon

  • gatewayMerchantId = CLIENT_KEY (выдается сотрудником компании Platon)

Если все сделано правильно - на своем сайте/приложении вы получите кнопку GooglePay и после выбора карты вам вернется набор данных с PaymentData.

Для просмотра примера раскройте список

...

titleПример набора данных, которые возвращаются от Google Pay

...

languagejson

...


Содержание

Table of Contents
maxLevel2
indent0px
absoluteUrltrue
stylecircle


Описание

Данный метод позволит разместить на вашем сайте или в приложении отдельную кнопку для оплаты Google Pay.


Демо

Iframe
scrollingno
srchttps://devplaton.com.ua/invoices/demo_buttons/payment_Gpay_API.html
width570
frameborderhide
height65


Требования к сайту

Expand
titleSSL сертификат

У вашего сайта должен быть SSL сертификат.

Для проверки валидности и срока действия вашего SSL сертификата рекомендуем воспользоваться сервисом по ссылке.

Expand
titleЛоготипы платежных систем и PSP Platon

В футере вашего сайта необходимо разместить логотипы платежных систем и PSP Platon.

Скачайте подходящие под стиль вашего сайта варианты логотипов.

Include Page
Логотипы для размещения
Логотипы для размещения

Expand
titleTLS 1.2

Необходима поддержка протокола TLS не ниже версии 1.2


Ограничения

Expand
titleБраузеры

На данный момент Google Pay работает в таких браузерах:

  • Chrome

  • Safari

  • UC Browser

  • Firefox

  • Opera

  • Microsoft Edge

  • Android

Expand
titleWebView

Для работы в WebView необходимо следовать согласно документации Google https://developer.android.com/guide/webapps/webview?hl=ru#BindingJavaScript


Google Pay API

Для сайта: https://developers.google.com/pay/api/web

Для мобильных приложений: https://developers.google.com/pay/api/android

Интегрируйте Google Pay API следуя документации выше для получения PaymentData.

Параметры:

  • allowPaymentMethods : CARD

  • tokenizationSpecification = { "type": "PAYMENT_GATEWAY"}

  • allowedCardNetworks = ['MASTERCARD', 'VISA'];

  • allowedCardAuthMethods = ['PAN_ONLY', 'CRYPTOGRAM_3DS'];

  • gateway = platon

  • gatewayMerchantId = CLIENT_KEY (выдается сотрудником компании Platon)

Если все сделано правильно - на своем сайте/приложении вы получите кнопку Google Pay и после выбора карты вам вернется набор данных с PaymentData.

С примером PaymentData можете ознакомиться ниже:

Expand
titleПример набора данных, которые возвращаются от Google Pay
Code Block
languagejson
{
  "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="
          ]
        },
        "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" POST запросом по API Platon, в параметре payment_token.

Предусловия:

Прежде чем вы получите доступ к платежной платформе, вы должны предоставить следующее данные администратору платежной платформы:

  • список ваших IP-адресов, с которых будут направляться запросы на платежную платформу;

  • callback URL - URL-адрес, на который будет отправляться уведомления о результатах обработки Вашего запроса через платежную платформу;

  • контактный E-mail разработчика.

Note

Callback url должен быть обязателен если вы работаете в асинхронном режиме и не должен превышать 255 символов.


Краткое описание взаимодействия с платежной платформой:

Для транзакций вы должны отправлять POST-запрос сервер на сервер HTTPS с помощью полей, перечисленные ниже, на PAYMENT_URL.

Если мерчант поддерживает 3D-Secure тогда платежная платформа вернет ссылку на сервер управления безопасностью для выполнения 3D-Secure проверки. В этом случае вам необходимо перенаправить держателя карты на эту ссылку. Если есть иные параметры, которые отдаются ссылкой необходимо перенаправить владельца карты по этой ссылке вместе с параметрами, используя метод передачи данных, указанный в том же самом результате.

В случае 3D-Secure после проверки на стороне сервера 3D-Secure Владелец кредитной карты вернется на ваш сайт, используя ссылку, указанную в запросе и платежная система вернет результат обработки транзакции на указанный CALLBACK URL.


API параметры

...

HTTP METHOD:

...

POST

API ENDPOINT: https://secure.platononline.com/post/

Параметр

Значение

Описание

Особенности

Обязательно

action

GOOGLEPAY

Код платежного метода

Status
colourGreen
titleДа

async

Y
N

Включить асинхронный режим

В асинхронном режиме обязательное использование коллбеков.
По умолчанию значение N

Status
colourYellow
titleнет

client_key

String

API ключ мерчанта

Ключ предоставляется на почту мерчанту

Status
colourGreen
titleДа

channel_id

String

Дополнительный платежный канал

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

Status
colourYellow
titleнет

order_id

String

ID платежа в системе мерчанта

Max 32 символа

Status
colourGreen
titleДа

order_amount

Number

Сумма платежа

Tip

Верный вариант

1000.00

Warning

Неверные варианты

1000
1000.0
1,000.0
1,000.00

Status
colourGreen
titleДа

order_currency

UAH

Валюта платежа

Info

Оплата возможна только в национальной валюте гривне

Status
colourGreen
titleДа

order_description

String

Описание платежа

Note

Для кириллических символов необходимо использовать формат UTF-8

Max 255 символов

Status
colourGreen
titleДа

payment_token

String

Токен, полученный мерчантом от Google

Status
colourGreen
titleДа

payer_first_name

String

Имя плательщика

Max 32 символа без пробелов

Status
colourYellow
titleнет

payer_last_name

String

Фамилия плательщика

Max 32 символа без пробелов

Status
colourYellow
titleнет

payer_middle_name

String

Отчество плательщика

Max 32 символа без пробелов

Status
colourYellow
titleнет

payer_birth_date

String

Дата рождения плательщика

В формате “YYYY-MM-DD”

Status
colourYellow
titleнет

payer_address

String

Адрес плательщика

Max 256 символа
Укажите NA, если нет данных

Status
colourYellow
titleнет

payer_country

String

Страна плательщика

Стандарт ISO 3166-1 alpha-2
В формате "ХХ"
2 символа
Укажите NA, если нет данных

Status
colourYellow
titleнет

payer_state

String

Штат плательщика

Note

Обязательный параметр для стран US, CA, AU

Стандарт ISO 3166-2
В формате "ХХ"
2 символа
Укажите NA, если нет данных

Status
colourYellow
titleнет

payer_city

String

Город плательщика

Max 32 символа
Укажите NA, если нет данных

Status
colourYellow
titleнет

payer_zip

String

Почтовый индекс плательщика

Max 32 символа
Укажите NA, если нет данных

Status
colourYellow
titleнет

payer_email

String

E-mail плательщика

Max 256 символа

Status
colourYellow
titleнет

payer_phone

Number

Номер телефона плательщика

Note

Если ваше юр. лицо открыто в Приватбанк и вы передаете в запросе телефон плательщика, то:

  1. обязательный формат телефона 380…

  2. номер телефона должен соответствовать финансовому номеру привязанному к карте

Status
colourYellow
titleнет

payer_ip

Number

IP-адрес плательщика

В формате "ХХХ.ХХХ.ХХХ.ХХХ"

Note

IPv6 на данный момент не поддерживается

Status
colourYellow
titleнет

term_url_3ds

String

Ссылка по которой будет отправлен клиент после успешной оплаты при прохождении 3DS

Max 255 символов

Status
colourYellow
titleнет

ext1-ext10

String

10 дополнительных полей

Max 1024 символа в каждом ext поле

Status
colourYellow
titleнет

auth

Y
N

Холдирование средств на карте плательщика

По умолчанию N

Status
colourYellow
titleнет

req_token

Y
N

Для получения card_token

По умолчанию N

Status
colourYellow
titleнет

hash

String

Контрольная подпись

Code Block
languagephp
md5(
  strtoupper(
    strrev($payer_email).
    $CLIENT_PASS.
    strrev($payment_token)
  )
)

Status
colourGreen
titleДа


Примеры запроса

...

Для просмотра примера раскройте список

Expand
titleПример запроса на PHP
Code Block
languagephp
<?php
  $CLIENT_PASS='***';
  $data['action']='GOOGLEPAY';
  $data['CLIENT_KEY']='***';
  $data['order_id']='Test_006';
  $data['order_amount']='0.51';
  $data['order_currency']='UAH';
  $data['order_description']='test';
  $data['payment_token']='{"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\"}"}';
  $data['payer_email']='sale@gmail.com';
  $data['term_url_3ds']='http://google.com';
  $hash = md5(
            strtoupper(
              strrev(
              $data['payer_email']
              ).
              ($CLIENT_PASS).
              strrev(
                $data['payment_token']
              )
            )
          );
?>

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Payment</title>
  </head>
  <body onload="javascript:document.forms[0].submit()">
    <form action="https://secure.platononline.com/post/" method="post">
      <input type="hidden" name="action" value="<?=$data['action']?>" />
      <input type="hidden" name="client_key" value="<?=$data['CLIENT_KEY']?>" />
      <input type="hidden" name="order_id" value="<?=$data['order_id']?>" />
      <input type="hidden" name="order_amount" value="<?=$data['order_amount']?>" />
      <input type="hidden" name="order_currency" value="<?=$data['order_currency']?>" />
      <input type="hidden" name="order_description" value="<?=$data['order_description']?>" />
      <input type="hidden" name="payment_token" value="<?=$data['payment_token']?>" />
      <input type="hidden" name="payer_email" value="<?=$data['payer_email']?>" />
      <input type="hidden" name="term_url_3ds" value="<?=$data['term_url_3ds']?>" />
      <input type="hidden" name="hash

...

Работа с Callback

Info

Рекомендуем ознакомиться с разделами:

Callback и Response (Синхронный режим)

Для просмотра примера раскройте список

" value="<?=$hash?>" />
    </form>
  </body>
</html>

Тестирование

Переведите environment в режим 'TEST’.

Используйте реальную карту подвязанную в Google Pay для оплаты.

При успешном тесте вы получите ответ о неуспешной транзакции (особенности тестового режима) и 'decline_reason' => 'Declined by processing'

Сообщите тех саппорту об успешном тесте и только после этого перейдите к активации бизнес-аккаунта Google.

Warning

Параметр environment в режим 'TEST’ оставить до указаний со стороны тех саппорта PSP Platon.


Проверка платежей

Expand
titleПолный список методов получения результата транзакции
Include Page
Получение результата транзакции
Получение результата транзакции

Callback

Expand
titleОсобенности работы с Callback
Include Page
Работа с Callback
Работа с Callback
Expand
titleБезопасность
Include Page
Безопасность
Безопасность

Синхронный режим:

Данный режим работает по умолчанию. Передавать async = N не нужно.

Промежуточный ответ (синхронный режим):

Expand
titleПромежуточный Response при наличии 3DS проверки
Code Block
languagejson
{
  "action": "SALE",
  "result": "REDIRECT",
  "status": "3DS",
  "trans_id": "03346-89225-87891",
  "order_id": "ORDER-12345",
  "trans_date": "2012-04-0316:02:02",
  "redirect_url": "https://server_3ds.com/3ds.php",
  "redirect_params": {
    "PaReq": "bc5865698ae46de4eba4c51f0359a714",
    "MD": "111111111111111111111",
    "TermUrl": "https://term_url.com/3ds/67c14e5?trans_id=03346-89225-87891&hash=8b98db60fb3c24c14a6d7075241da38b"
  },
  "redirect_method": "POST"
}

Параметры

Описание

action

GOOGLEPAY

result

REDIRECT

status

3DS

order_id

ID транзакции в системе мерчанта

trans_id

ID транзакции в платежной системе

trans_date

Дата транзакции в платежной системе. Время UTC

redirect_url

URL, на который должен быть перенаправлен плательщик

redirect_params

Массив определенных параметров 3DS

redirect_method

Метод передачи параметров (POST/GET)

Expand
titleПромежуточный Callback при наличии проверки 3DS
Code Block
languagephp
array (
  'action' => 'SALE',
  'result' => 'REDIRECT',
  'status' => '3DS',
  'order_id' => '6b51033e-3e58-42e0-8ec3-88c97388018b',
  'trans_id' => '28738-47774-55067',
  'trans_date' => '2020-04-20 12:12:57',
  'redirect_url' => 'https://acs.privatbank.ua/pPaReqMC.jsp',
  'redirect_params' => 
    array (
      'PaReq' => 'eJxVUllu2zAQvYqg/4qUIlFUMGYgxykaoEqN2j4AIxGxUi2Olsb+K/qTG+S3VygKpGhRtL0CdaMMHWUDSHDeLJw3Cxxty8L6rJo2r6uJ7TrUtlSV1lleXUzs1fLtG24fCViuG6VmC5X2jRKQqLaVF8rKs4k9lx/VlRvw8ID7YRhFYcgDHrmeF/KQc8apG/jcFjCP0U/AmElgIscD8gjxyyZdy6oTINOr6emZwCgWcCAjhFI1pzPBXB66jAF5gFDJUolpPF29P1k4xx8SZxUD2Sshrfuqa3aCUx/II4C+KcS66zbtISGbQnZ1VeSVctK6BGJsQJ6ZzHsjtfjXNs9EMouv8e7w0uQy3p4t6HWy/IT4ZALEeEAmOyU86lHqe9RyvUM8QQRkrwdZGhKmcoplPQDYmBzxaDGGlwrAdjc4jZ2IOJqeEKjtpq4UemALn2TIVJsK/U3fDV/0nf4x3OL7b7jRf/Uv/dvS//Uf/X34Otzqn9a5PO8L1Zq6nV4iQxMK5Lni43dmEmmHTfZdN2CMMz/wzTj2OsMgx356B5TtKRgAxESRcdJk3BKUXm3PPfYf2CM=',
      'TermUrl' => 'https://secure.platononline.com/3ds/4de0025?operation_type=purchase&trans_id=28738-47774-55067&hash=***************************************************
    ),
  'redirect_method' => 'POST',
  'hash' => '********************************',
)

Параметры

Описание

action

SALE

result

REDIRECT

status

3DS

order_id

ID транзакции в системе мерчанта

trans_id

ID транзакции в платежной системе

trans_date

Дата транзакции в платежной системе. Время UTC

redirect_url

URL, на который должен быть перенаправлен плательщик

redirect_params

Строка параметров

redirect_method

Метод передачи параметров (POST/GET)

hash

Зашифрованная подпись для проверки достоверности коллбека

Code Block
languagephp
md5(
  strtoupper(
    strrev(email).
    CLIENT_PASS.
    strrev(payment_token)
  )
)
Info

Внимание! Если при запросе на оплату не был указан email, то при проверке hash в подписи Callback следует указать пустое значение для email

...

.

При успешной оплате (синхронный режим):

Expand
titleResponse при успешном списании
Code Block
languagejson
{
  "action": "SALE",
  "result": "SUCCESS",
  "status": "SETTLED",
  "trans_id": "03346-89217-70541",
  "order_id": "ORDER-12345",
  "descriptor": "test",
  "trans_date": "2012-04-03 16:02:01"
}

Параметры

Описание

action

GOOGLEPAY

result

SUCCESS

status

PENDING/SETTLED; статус PENDING только когда было указано "auth=Y"

order_id

ID транзакции в системе мерчанта

trans_id

ID транзакции в платежной системе

trans_date

Дата транзакции в платежной системе. Время UTC

descriptor

Это строка, которую владелец кредитной карты увидит в выписка из банка.

В большинстве случаев это веб-сайт поддержки клиентов.

amount

Сумма транзакции

currency

Валюта операции

Expand
titleCallback при успешном списании
Code Block
languagephp
array (
  'action' => 'SALE',
  'result' => 'SUCCESS',
  'status' => 'SETTLED',
  'order_id' => '1_691201',
  'trans_id' => '31176-65336-00444',
  'trans_date' => '2021-01-27 16:55:33',
  'descriptor' => NULL,
  'auth_code' => '990647',
  'hash' => '********************************',
)

Параметры

Описание

action

SALE

result

SUCCESS

status

PENDING/SETTLED; статус PENDING только когда было указано "auth=Y"

order_id

ID транзакции в системе мерчанта

trans_id

ID транзакции в платежной системе

trans_date

Дата транзакции в платежной системе. Время UTC

descriptor

Это строка, которую владелец кредитной карты увидит в выписка из банка.

В большинстве случаев это веб-сайт поддержки клиентов.

auth_code

Код авторизации от банка

ext1-ext10

Дополнительные поля от 1 до 10

Info

Если вы хотите использовать данный функционал, пожалуйста, сообщите нам для его включения.

hash

Зашифрованная подпись для проверки достоверности коллбека

Code Block
languagephp
md5(
  strtoupper(
    strrev($payer_email).
    $CLIENT_PASS.
    strrev($payment_token)
  )
)
Info

Внимание! Если при запросе на оплату не был указан email, то при проверке hash в подписи Callback следует указать пустое значение для email.

При неуспешной оплате (синхронный режим):

Expand
titleResponse при неуспешном списании
Code Block
languagejson
{
  "action": "SALE",
  "result": "DECLINED",
  "status": "DECLINED",
  "trans_id": "03346-89214-54141",
  "order_id": "ORDER-12345",
  "trans_date": "2012-04-0316:02:01",
  "decline_reason": "Declined by processing"
}

Параметры

Описание

action

GOOGLEPAY

result

DECLINED

status

DECLINED

order_id

ID транзакции в системе мерчанта

trans_id

ID транзакции в платежной системе

trans_date

Дата транзакции в платежной системе. Время UTC

decline_reason

Причина, по которой транзакция была отклонена

Expand
titleCallback при неуспешном списании
Code Block
languagephp
array (
  'action' => 'SALE',
  'result' => 'DECLINED',
  'status' => 'DECLINED',
  'order_id' => '1_691201',
  'trans_id' => '31176-65336-00444',
  'trans_date' => '2021-01-27 16:55:33',
  'decline_reason' => 'Declined by processing',
  'hash' => '********************************',
)

Параметры

Описание

action

SALE

result

DECLINED

status

DECLINED

order_id

ID транзакции в системе мерчанта

trans_id

ID транзакции в платежной системе

trans_date

Дата транзакции в платежной системе. Время UTC

decline_reason

Причина, по которой транзакция была отклонена

hash

Зашифрованная подпись для проверки достоверности коллбека

Code Block
languagephp
md5(
  strtoupper(
    strrev(email).
    CLIENT_PASS.
    strrev(payment_token)
  )
)
Info

Внимание! Если при запросе на оплату не был указан email, то при проверке hash в подписи Callback следует указать пустое значение для email.

Expand
titleResponse в случая ошибки в запросе
Code Block
languagejson
{
  "result": "ERROR",
  "error_message": "Error description"
}

...


Асинхронный режим

...

:

Данный режим активируется при передаче async = Y. В этом режиме обязательно необходимо принимать callback на ваш callback url.

...

Промежуточные ответы (асинхронный режим):

Expand
titleResponse о принятии запроса в обработку
Code Block
languagejson
{
  "action": "SALE",
  "result": "ACCEPTED",
  "trans_id": "03346-89211-86461",
  "order_id": "ORDER-12345",
  "trans_date": "2012-04-03 16:02:01"
}

Параметры

Описание

action

GOOGLEPAY

result

ACCEPTED

order_id

ID транзакции в системе мерчанта

trans_id

ID транзакции в платежной системе

trans_date

Дата транзакции в платежной системе. Время UTC

Expand
title

...

Промежуточный Callback при наличии проверки 3DS
Code Block
language

...

{
  "result": "ERROR",
  "error_message": "Error description"
}

...

titleCallback при успешном списании

...

languagephp

...

php
array (
  'action' => 'SALE',
  'result' => 'REDIRECT',
  'status' => '3DS',
  'order_id' => '6b51033e-3e58-42e0-8ec3-88c97388018b',
  'trans_id' => '28738-47774-55067',
  'trans_date' => '

...

2020-04-20 12:12:57',
  '

...

redirect_url' => '

...

https://acs.privatbank.ua/pPaReqMC.jsp',
  '

...

redirect_params' =>

...

 
    array (
      '

...

PaReq' => '

...

eJxVUllu2zAQvYqg/4qUIlFUMGYgxykaoEqN2j4AIxGxUi2Olsb+K/qTG+S3VygKpGhRtL0CdaMMHWUDSHDeLJw3Cxxty8L6rJo2r6uJ7TrUtlSV1lleXUzs1fLtG24fCViuG6VmC5X2jRKQqLaVF8rKs4k9lx/VlRvw8ID7YRhFYcgDHrmeF/KQc8apG/jcFjCP0U/AmElgIscD8gjxyyZdy6oTINOr6emZwCgWcCAjhFI1pzPBXB66jAF5gFDJUolpPF29P1k4xx8SZxUD2Sshrfuqa3aCUx/II4C+KcS66zbtISGbQnZ1VeSVctK6BGJsQJ6ZzHsjtfjXNs9EMouv8e7w0uQy3p4t6HWy/IT4ZALEeEAmOyU86lHqe9RyvUM8QQRkrwdZGhKmcoplPQDYmBzxaDGGlwrAdjc4jZ2IOJqeEKjtpq4UemALn2TIVJsK/U3fDV/0nf4x3OL7b7jRf/Uv/dvS//Uf/X34Otzqn9a5PO8L1Zq6nV4iQxMK5Lni43dmEmmHTfZdN2CMMz/wzTj2OsMgx356B5TtKRgAxESRcdJk3BKUXm3PPfYf2CM=',
      '

...

TermUrl' => '

...

https://secure.platononline.com/3ds/4de0025?operation_type=purchase&trans_id=28738-47774-55067&hash=***************************************************
    ),
  '

...

redirect_

...

method' => '

...

POST',
  'hash' => '********************************',
)

Параметры

Описание

action

SALE

result

...

REDIRECT

status

...

3DS

order_id

ID транзакции в системе мерчанта

trans_id

ID транзакции в платежной системе

trans_date

Дата транзакции в платежной системе. Время UTC

...

descriptor

...

Это строка, которую владелец кредитной карты увидит в выписка из банка.

В большинстве случаев это веб-сайт поддержки клиентов.

...

auth_code

...

Код авторизации от банка

...

ext1-ext10

...

Дополнительные поля от 1 до 10

Info

Если вы хотите использовать данный функционал, пожалуйста, сообщите нам для его включения.

redirect_url

URL, на который должен быть перенаправлен плательщик

redirect_params

Строка параметров

redirect_method

Метод передачи параметров (POST/GET)

hash

Зашифрованная подпись для проверки достоверности коллбека

Code Block
languagephp
md5(
  strtoupper(
    strrev(

...

email).
    

...

CLIENT_PASS.
    strrev(

...

payment_token)
  )
)
Info

Внимание! Если при запросе на оплату не был указан email, то при проверке hash в подписи Callback следует указать пустое значение для email.

При успешной оплате (асинхронный режим):

Expand
titleCallback при

...

успешном списании
Code Block
languagephp
array (
  'action' => 'SALE',
  'result' => '

...

SUCCESS',
  'status' => '

...

SETTLED',
  'order_id' => '1_691201',
  'trans_id' => '31176-65336-00444',
  'trans_date' => '2021-01-27 16:55:33',
  '

...

descriptor' => NULL,
  'auth_code' => '

...

990647',
  'hash' => '********************************',
)

Параметры

Описание

action

SALE

result

...

SUCCESS

status

...

PENDING/SETTLED; статус PENDING только когда было указано "auth=Y"

order_id

ID транзакции в системе мерчанта

trans_id

ID транзакции в платежной системе

trans_date

Дата транзакции в платежной системе. Время UTC

...

decline_reason

...

Причина, по которой транзакция была отклонена

...

hash

...

Зашифрованная подпись для проверки достоверности коллбека

Code Block
languagephp
md5(
  strtoupper(
    strrev(email).
    CLIENT_PASS.
    strrev(payment_token)
  )
)
Info

Внимание! Если при запросе на оплату не был указан email, то при проверке hash в подписи Callback следует указать пустое значение для email.

...

descriptor

Это строка, которую владелец кредитной карты увидит в выписка из банка.

В большинстве случаев это веб-сайт поддержки клиентов.

auth_code

Код авторизации от банка

ext1-ext10

Дополнительные поля от 1 до 10

Info

Если вы хотите использовать данный функционал, пожалуйста, сообщите нам для его включения.

hash

Зашифрованная подпись для проверки достоверности коллбека

Code Block
languagephp

...

md5(
  

...

strtoupper(
    strrev($payer_email).
    $CLIENT_PASS.
    strrev($payment_token)
  )
)
Info

Внимание! Если при запросе на оплату не был указан email, то при проверке hash в подписи Callback следует указать пустое значение для email.

При неуспешной оплате (асинхронный режим):

Expand
titleCallback при неуспешном списании
Code Block
languagephp
array (
  'action' => 'SALE',
  'result' => 'DECLINED',
  'status' => 'DECLINED',
  'order_id' => '1_691201',
  'trans_id' => '31176-65336-00444',
  'trans_date' => '2021-01-27 16:55:33',
  'decline_reason' => 'Declined by processing',
  'hash' => '********************************',
)

Параметры

Описание

action

SALE

result

...

DECLINED

status

...

DECLINED

order_id

ID транзакции в системе мерчанта

trans_id

ID транзакции в платежной системе

trans_date

Дата транзакции в платежной системе. Время UTC

...

decline_

...

redirect_method

...

reason

...

URL, на который должен быть перенаправлен плательщик

...

redirect_params

...

Строка параметров

Причина, по которой транзакция была отклонена

hash

Зашифрованная подпись для проверки достоверности коллбека

Code Block
languagephp
md5(
  strtoupper(
    strrev(email).
    CLIENT_PASS.
    strrev(payment_token)
  )
)
Info

Внимание! Если при запросе на оплату не был указан email, то при проверке hash в подписи Callback следует указать пустое значение для email.

Expand
titleResponse в случая ошибки в запросе
Code Block
languagejson
{
  "result": "ERROR",
  "error_message": "Error description"
}

Пройдите контрольный список интеграции:

После добавления кнопки на ваш сайт/мобильное приложение необходимо пройти контрольный список интеграции для проверки корректности работы Google Pay API:

Для сайтов: https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist

Для мобильных приложений: https://developers.google.com/pay/api/android/guides/test-and-deploy/integration-checklist


Запросите доступ к рабочей версии Google Pay API:

Для возможности начать принимать реальные платежи необходимо запросить доступ в рабочей версии:

https://developers.google.com/pay/api/android/guides/test-and-deploy/request-prod-access


Подпишите ваше приложение:

Если вы интегрируете Google Pay в свое мобильное приложение - необходимо дополнительно его подписать, следуя инструкциям:

https://developers.google.com/pay/api/android/guides/test-and-deploy/deploy-your-application


Получите доступ на продакшн в Google Pay:

https://developers.google.com/pay/api/android/guides

Для этого необходимо создать учетную запись в https://pay.google.com/business/console/  (используя гугл аккаунт, желательно корпоративный и общий)

Заполните информацию о компании.

В интеграциях выбрать Сайт, заполнить домен (пока домен тестового сайта), указать тип PaymentGateway и вложить 5 скринов процесса заказа и оплаты.

Сразу можете подавать заявку и для получения доступа с продовым доменом.

Note

Просьба обратить внимание, что в прод режиме Google Pay будет работать только на проаппрувленых гуглом доменах.

Получение доступа занимает 2-3 дня. Если у сотрудников Google будут замечания - они отправят письмо на мейл, под которым вы зарегистируетесь.

После этого с вашей стороны необходимо переключиться на Production в интеграции с GooglePay:

Для этого: https://developers.google.com/pay/api/web/guides/test-and-deploy/deploy-production-environment

  1. Установить environment: ‘PRODUCTION' вместо 'TEST’

  2. Указать значение merchantId из бизнес аккаунта GooglePay (правый верхний угол)

И сообщить нам по готовности для переключения настроек с нашей стороны. 


Для мобильного приложения в Андроиде - рекомендуем подавать заявку в бизнес консоли с гугл аккаунта, под которым вы зарегистрированы в плей маркете и выкладываете в маркет приложения (чтобы потом не нужно было дополнительно связывать аккаунты).

Если будут с другого аккаунта подавать заявку - предупредите, что дополнительно нужно будет связать аккаунты.

Инструкция как связать https://support.google.com/googleplay/android-developer/answer/2528691

Для интеграции в моб приложении необходимо будет подписать приложение релизными ключами когда получите доступ на прод и будете преключаться https://developers.google.com/pay/api/android/guides/test-and-deploy/deploy-your-application