Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 38 Next »

Этот функционал будет активирован после вашего запроса в групповом чате.


Содержание


Описание

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


Демо


Чеклист интеграции

  • Привести сайт / приложение к соответствию требованиям.
  • Интегрировать API Google Pay.
  • Указать environment в режим TEST.
  • Передать тех поддержке PSP Platon ссылку для Callback.
  • Сообщить в тех поддержке PSP Platon ваши IP адреса сервера сайта или о том, что будет использоваться приложение (в этом случае ограничения по IP будут сняты).
  • Провести запрос для получения зашифрованных данных согласно API Google Pay.
  • После авторизации пользователя и выбора реальной карты в кошельке Google Pay вернет зашифрованные данные.
  • Провести запрос согласно API PSP Platon используя зашифрованные данные от Google Pay.
  • Получить Response или Callback для редиректа плательщика на 3DS проверку.
  • Отправить клиента на 3DS проверку.
  • Получить Response или Callback со статусом платежа DECLINED от PSP Platon.
  • Отправить запрос в Google Business Console для активации аккаунта.
  • Сообщить в тех поддержке PSP Platon об активации аккаунта.
  • Указать environment в режим PRODUCTION.
  • Провести запрос с получение успешного Response или Callback со статусом платежа SUCCESS от PSP Platon.
  • Уведомить клиента об успешной / не успешной оплате.

Требования

 SSL сертификат

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

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

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

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

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

Unable to render {include} The included page could not be found.
 TLS 1.2

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


Ограничения

 Браузеры

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

  • Chrome

  • Safari

  • UC Browser

  • Firefox

  • Opera

  • Microsoft Edge

  • Android

 WebView

Для работы Google Pay в 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 (API ключ выдается сотрудником компании PSP Platon)

 Пример конфиг файла
{
    "apiVersion": 2,
    "apiVersionMinor": 0,
    "allowedPaymentMethods": [
        {
            "type": "CARD",
            "parameters": {
                "allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
                "allowedCardNetworks": ["VISA", "MASTERCARD"]
            },
            "tokenizationSpecification": {
                "type": "PAYMENT_GATEWAY",
                "parameters": {
                    "gateway": "platon",
                    "gatewayMerchantId": "RJ9AE5Y7GX"
                }
            }
        }
    ],
    "merchantInfo": {
        "merchantId": "00986993593073708917",
        "merchantName": "Name"
    },
    "transactionInfo": {
        "totalPriceStatus": "FINAL",
        "totalPriceLabel": "Total",
        "totalPrice": "5.00",
        "currencyCode": "UAH",
        "countryCode": "UA"
    }
}

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

 Пример набора данных, которые возвращаются от 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="
          ]
        },
        "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"
    }
  }
}

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

 Пример набора данных, которые возвращаются от Google Pay
{
  "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\"
    }"
  }
}

Настройте отправку полученного значения параметра "token" POST запросом по API Platon, в параметре payment_token.

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

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

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

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

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

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


API параметры

HTTP METHOD: POST

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

Параметр

Значение

Описание

Особенности

action
ОБЯЗАТЕЛЬНО

GOOGLEPAY

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

client_key
ОБЯЗАТЕЛЬНО

String

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

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

order_id
ОБЯЗАТЕЛЬНО

String

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

Max 32 символа

order_amount
ОБЯЗАТЕЛЬНО

Number

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

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

order_currency
ОБЯЗАТЕЛЬНО

UAH

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

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

order_description
ОБЯЗАТЕЛЬНО

String

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

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

Max 255 символов

payment_token
ОБЯЗАТЕЛЬНО

String

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

payer_ip
ОБЯЗАТЕЛЬНО

Number

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

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

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

term_url_3ds
ОБЯЗАТЕЛЬНО

String

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

Max 255 символов

hash
ОБЯЗАТЕЛЬНО

String

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

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

payer_first_name
НЕ ОБЯЗАТЕЛЬНО

String

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

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

payer_last_name
НЕ ОБЯЗАТЕЛЬНО

String

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

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

payer_middle_name
НЕ ОБЯЗАТЕЛЬНО

String

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

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

payer_birth_date
НЕ ОБЯЗАТЕЛЬНО

String

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

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

payer_address
НЕ ОБЯЗАТЕЛЬНО

String

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

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

payer_country
НЕ ОБЯЗАТЕЛЬНО

String

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

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

payer_state
НЕ ОБЯЗАТЕЛЬНО

String

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

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

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

payer_city
НЕ ОБЯЗАТЕЛЬНО

String

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

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

payer_zip
НЕ ОБЯЗАТЕЛЬНО

String

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

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

payer_email
НЕ ОБЯЗАТЕЛЬНО

String

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

Max 256 символа

payer_phone
НЕ ОБЯЗАТЕЛЬНО

Number

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

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

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

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

ext1, ext2, ext3, ext4, ext5, ext6, ext7, ext8, ext9, ext10
НЕ ОБЯЗАТЕЛЬНО

String

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

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

channel_id
НЕ ОБЯЗАТЕЛЬНО

String

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

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

async
НЕ ОБЯЗАТЕЛЬНО

Y
N

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

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

По умолчанию значение N.

auth
НЕ ОБЯЗАТЕЛЬНО

Y
N

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

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

req_token
НЕ ОБЯЗАТЕЛЬНО

Y
N

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

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


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

 Пример запроса на PHP
<?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" value="<?=$hash?>" />
    </form>
  </body>
</html>

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

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

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

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

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

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


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

 Полный список методов получения результата транзакции
Unable to render {include} The included page could not be found.

Callback и Response

 Особенности работы с Callback
Unable to render {include} The included page could not be found.
 Безопасность
Unable to render {include} The included page could not be found.

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

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

Промежуточный редирект плательщика на 3DS (синхронный режим):

 Промежуточный Response при наличии 3DS проверки
{
  "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)

 Промежуточный Callback при наличии проверки 3DS
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

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

md5(
  strtoupper(
    strrev(email).
    CLIENT_PASS.
    strrev(payment_token)
  )
)

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

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

 Response при успешном списании
{
  "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

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

Поле опционально и по умолчанию выключено. Для включения просьба написать запрос в ваш групповой чат.

ext1 - ext10

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

Поля опционально и по умолчанию выключены. Для включения просьба написать запрос в ваш групповой чат.

currency

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

 Callback при успешном списании
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

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

amount

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

Поле опционально и по умолчанию выключено. Для включения просьба написать запрос в ваш групповой чат.

ext1 - ext10

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

Поля опционально и по умолчанию выключены. Для включения просьба написать запрос в ваш групповой чат.

hash

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

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

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

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

 Response при неуспешном списании
{
  "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 транзакции в платежной системе

amount

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

Поле опционально и по умолчанию выключено. Для включения просьба написать запрос в ваш групповой чат.

ext1 - ext10

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

Поля опционально и по умолчанию выключены. Для включения просьба написать запрос в ваш групповой чат.

trans_date

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

decline_reason

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

 Callback при неуспешном списании
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

amount

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

Поле опционально и по умолчанию выключено. Для включения просьба написать запрос в ваш групповой чат.

ext1 - ext10

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

Поля опционально и по умолчанию выключены. Для включения просьба написать запрос в ваш групповой чат.

decline_reason

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

hash

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

md5(
  strtoupper(
    strrev(email).
    CLIENT_PASS.
    strrev(payment_token)
  )
)

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

При ошибке в запросе (синхронный режим):

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

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

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

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

 Response о принятии запроса в обработку
{
  "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

Промежуточный редирект плательщика на 3DS (асинхронный режим):

 Промежуточный Callback при наличии проверки 3DS
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

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

md5(
  strtoupper(
    strrev(email).
    CLIENT_PASS.
    strrev(payment_token)
  )
)

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

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

 Callback при успешном списании
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

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

amount

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

Поле опционально и по умолчанию выключено. Для включения просьба написать запрос в ваш групповой чат.

ext1 - ext10

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

Поля опционально и по умолчанию выключены. Для включения просьба написать запрос в ваш групповой чат.

hash

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

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

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

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

 Callback при неуспешном списании
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

amount

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

Поле опционально и по умолчанию выключено. Для включения просьба написать запрос в ваш групповой чат.

ext1 - ext10

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

Поля опционально и по умолчанию выключены. Для включения просьба написать запрос в ваш групповой чат.

decline_reason

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

hash

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

md5(
  strtoupper(
    strrev(email).
    CLIENT_PASS.
    strrev(payment_token)
  )
)

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

При ошибке в запросе (асинхронный режим):

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

Ошибки запросов

 Список ошибок, их причин и возможных решений.
Unable to render {include} The included page could not be found.

Боевой режим

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

После добавления кнопки на ваш сайт/мобильное приложение необходимо пройти контрольный список интеграции для проверки корректности работы 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


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

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

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

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

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

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

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

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

Получение доступа занимает 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 (правый верхний угол)

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


Дополнительно для мобильного приложения Android:

Рекомендуем подавать заявку в бизнес консоли с Google аккаунта, под которым вы зарегистрированы в Google Play и выкладываете приложения.

Если будете подавать заявку с другого аккаунта - дополнительно нужно будет связать аккаунты. Инструкция как связать https://support.google.com/googleplay/android-developer/answer/2528691

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

  • No labels