Інтеграція з GooglePay: відмінності між версіями

Матеріал з apidocs
Перейти до: навігація, пошук
Немає опису редагування
Немає опису редагування
 
(Не показані 4 проміжні версії цього користувача)
Рядок 70: Рядок 70:
Перед цим потрібно викликати метод EasyPayApi [[MerchantAPI#Реєстрація точки та створення сесії|createApp.]]
Перед цим потрібно викликати метод EasyPayApi [[MerchantAPI#Реєстрація точки та створення сесії|createApp.]]


'''Приклад запиту'''
'''Приклад запиту'''  
<p style="border: 1px solid #9ACD32; background-color: rgba(144, 238, 144, 0.5); padding: 10px; border-radius: 8px; font-family: Arial, sans-serif; font-size: 14px; font-weight: normal; position: relative; padding-left: 80px;">
<p style="border: 1px solid #9ACD32; background-color: rgba(144, 238, 144, 0.5); padding: 10px; border-radius: 8px; font-family: Arial, sans-serif; font-size: 14px; font-weight: normal; position: relative; padding-left: 80px;">
     <span style="position: absolute; top: 10px; left: 10px; background-color: #006400; color: white; padding: 2px 12px; border-radius: 4px; font-size: 14px; font-weight: bold;">POST</span>
     <span style="position: absolute; top: 10px; left: 10px; background-color: #006400; color: white; padding: 2px 12px; border-radius: 4px; font-size: 14px; font-weight: bold;">POST</span>
Рядок 90: Рядок 90:
</syntaxhighlight>
</syntaxhighlight>


<div style="width: 100%; display: flex; justify-content: space-between; gap: 20px; box-sizing: border-box; padding: 12px 0;">
<div style="width: 100%; display: flex; justify-content: space-between; gap: 16px; box-sizing: border-box; padding: 8px 0;">
 
   <!-- Ліва кнопка -->
   <!-- Ліва кнопка -->
   <div style="
   <div style="
    position: relative;
     flex: 1;  
     flex: 1;  
     min-width: 180px;  
     min-width: 150px;  
     background: rgba(135, 206, 250, 0.1);  
     background: rgba(135, 206, 250, 0.1);  
     padding: 14px 20px;  
     padding: 8px 14px;  
     border-radius: 10px;  
     border-radius: 8px;  
     border: 1px solid #007BFF;  
     border: 1px solid #007BFF;  
     color: #007BFF;  
     color: #007BFF;  
     font-weight: bold;  
     font-weight: bold;  
     font-size: 18px;  
     font-size: 1em; /* пропорційний розмір */
     display: flex;  
     display: flex;  
     align-items: center;  
     align-items: center;  
Рядок 108: Рядок 110:
     cursor: pointer;
     cursor: pointer;
   ">
   ">
[[Інтеграція з ApplePay#Технічна інтеграція з ApplePay|Повернутися до ApplePay]]
<!-- Текст у кутку --><span style="position: absolute; top: 6px; left: 8px;">← Назад</span>
    <!-- Основний текст -->
<br>
[[Інтеграція з ApplePay]]
 
</div>
</div>
   <!-- Права кнопка -->
   <!-- Права кнопка -->
   <div style="
   <div style="
    position: relative;
     flex: 1;  
     flex: 1;  
     min-width: 180px;  
     min-width: 150px;  
     background: rgba(135, 206, 250, 0.1);  
     background: rgba(135, 206, 250, 0.1);  
     padding: 14px 20px;  
     padding: 8px 14px;  
     border-radius: 10px;  
     border-radius: 8px;  
     border: 1px solid #007BFF;  
     border: 1px solid #007BFF;  
     color: #007BFF;  
     color: #007BFF;  
     font-weight: bold;  
     font-weight: bold;  
     font-size: 18px;  
     font-size: 1em; /* пропорційний розмір */
     display: flex;  
     display: flex;  
     align-items: center;  
     align-items: center;  
Рядок 127: Рядок 135:
     cursor: pointer;
     cursor: pointer;
   ">
   ">
[[Створення підпису|Перейти до створення підпису]]
 
</div>
 
<span style="position: absolute; top: 6px; right: 8px;">Далі →</span>
    <!-- Основний текст -->
[[Створення підпису]]
  </div>
 
</div>
</div>

Поточна версія на 12:45, 14 серпня 2025

Загальні вимоги


  1. Ваш сайт повинен працювати за схемою HTTPS та підтримувати протокол TLS 1.2.
  2. Потрібно погодитися з умовами надання  послуг GooglePay.
  3. Необхідно укласти договір із Easypay.ua.


Документація

  1. Для додатків
  2. Для веб-сайтів


Вимоги щодо брендування

  1. Для додатків
  2. Для веб-сайтів


Оплата з платіжної сторінки Easypay


При такому способі підключення немає потреби у додаткових інтеграціях. Кнопка GooglePay відображається на сторінці оплати EasyPay.

Отримання токена GooglePay для оплати


*Використовуйте бойове середовище GooglePay для отримання PaymentData

Для отримання PaymentData. Як параметри скрипта вкажіть:

  1. Доступні методи платежу: var allowedPaymentMethods = ['CARD', 'TOKENIZED_CARD'];
  2. Тип токенізації - PAYMENT_GATEWAY: tokenizationType: 'PAYMENT_GATEWAY';
  3. Параметр gateway: easypay;
  4. Параметр gateway MerchantId: Ваш бойовий merchantAccount от Google, який повідомляє в EasyPay.


Якщо з вашого боку інтеграція виконана правильно, Ви на своєму сайті/додатку отримаєте кнопку

Після натискання кнопки на пристрої з підключеним Google Pay з'явиться спливаюче вікно або форма вибору прив'язаної картки.

Приклад відповіді від GooglePay Api

{
    "apiVersionMinor":0,
    "apiVersion":2,
    "paymentMethodData":{
        "description":"Mastercard  •••• 1164",
        "tokenizationData":{
            "type":"PAYMENT_GATEWAY",
"token":"{"signature":"MEUCeretMPEQPUMnvMOnDAgZsOLVnFnfjmo5ALe/1D6o7hdzAiEA94L1GfNWW84kbUdHHn+l6B6n18VgIA3sdkPqKL36tqk\u003d","intermediateSigningKey":{"signedKey":"{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEem3biYxltOBuMV+Dd9g+ZhV3VEzP2vAlFXvb9tJoYGLtetxDYWTUqnXPvKGDeAnSNrkPo8hu5kLtxN0QXCYkqQ\\u003d\\u003d\",\"keyExpiration\":\"1551385212256\"}","signatures":["MEYCIQD/TWKunZJhG/u3iL2H5P3i9r0rCbpw1/+z9dr/yGytvwIhAPfV2zF5cqP/L+42W+JKv6fgQKBEc67HTtfderefdghJ"]},"protocolVersion":"ECv2","signedMessage":"{\"encryptedMessage\":\"OidSptk8w+I3FnR1VFmiVswXaZ7ADnmMP1MQelp6GSg0/3aVpAXeLRH/fT1wN7gpxNPy7tFITeQenrJm3QG19tAPuVhcAVM26DMU6LAmZPyPXALktpnYrUj6etCjvWWM/1LkhjDBSjtkmpWRiHIyqj5aud/j8rxFEk06GhwqPWbnJwdCgNf32LJP7bSpUWvHOioaZIV1vdeV6d7iQ6EDWWAS/z9pXWkqpW//M/TVTrcKFXh4C2TI2O+qyBD9VzK3TqU6wS5VsYL69W9/4xzV5L5irpp/wzNfPHkJd8QIwcsIPuNWBtGm3v+JCaqIA3oK9Sw/5o/gZp/pnOhUdax0VjGEvmbGXs2+ufBChCkh+/BpobbpzVS9T/DZSlUO2FLANMjSaEQzh74ymtDgP4x9O64RAdySW+V7lVZMa7FVZ3PFnTfa8W89pzIgo6ocSGHQPBFnExTmSbDpUU0L12wzHkAcZSyngPAljqg\\u003d\",\"ephemeralPublicKey\":\"BBKgbSbykNy1111QYRmGJEhnCorkt+VoDYlYbAlg0a5WO2uV/M50XqOSG0uxWAvUqrZolQuEX6yZ+dvvufLEZtI\\u003d\",\"tag\":\"p9ItvOfsQVTzhTPHq6ycYjKX1TtozP/yym4QWWVRVCk\\u003d\"}"}"
        },
        "type":"CARD",
        "info":{
            "cardNetwork":"MASTERCARD",
            "cardDetails":"1164",
            "billingAddress":{
                "phoneNumber":"+380 93 000 00 11",
                "address3":"",
                "sortingCode":"",
                "address2":"",
                "countryCode":"UA",
                "address1":"ул. ",
                "postalCode":"49107",
                "name":"Super 1",
                "locality":"Київ",
                "administrativeArea":"Київська область"
            }
        }
    },
    "email":"test@easypay.ua"
}

Передача токена для оплати

Надішліть дані з поля token з відповіді від GooglePay Api у поле userPaymentInstrument/token у Easypay (розділ Створення замовлення)

Перед цим потрібно викликати метод EasyPayApi createApp.

Приклад запиту

POST /api/merchant/createOrder

{
  "order":{
    "serviceKey":"MERCHANT-TEST",
    "orderId":"test_20210000-171148",
    "description":"Test payment",
    "amount":"1"
  },
  "userPaymentInstrument":{
    "instrumentType":"GooglePay",
"token":"{\"signature\":\"MEQCIFTFadYw15Cqfk7+YiM9pp5zEvyTI7oWVZCNFKr1cMthAiAFMv+nt0PWOEhj6LmmMNTByP9E4OhGrSoE7rDvzLDIZw\\u003d\\u003d\",\"intermediateSigningKey\":{\"signedKey\":\"{\\\"keyValue\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsrkMsOBN8N0xL8AsTVUIETODhCva5PpGFxvPm56pWmI5MG2HKKHXjsdhdvcP6N3d40x90E0rZzDrxBC2ywERXg\\\\u003d\\\\u003d\\\",\\\"keyExpiration\\\":\\\"1618591579000\\\"}\",\"signatures\":[\"MEUCIHX0SawuKctPUEjdFu2sDiE81aSSdf8i0KNvdg1dlsWoAiEAye8TEWpPk4sp7EjTovN7DichK6YxY1DajYN9/ArHDYI\\u003d\"]},\"protocolVersion\":\"ECv2\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"vlLmhIBndM4a/GWFsvbFZrZOygjAwUao/NlvlJlhAQ3kdprI3gubAcQxAau8L74dkzGJh8w7AD2E77XOHycdwG91NUvsJ0xiXuMCXHJ9NPMhp7k49OUIJjOpJG+RqUM9/SPBgx69eDD7skhG+axZYr/m36LFjIlk5WhmumQgIrfojm02uRm0nOcZ2wbvrwQKZyL1IeTv/txqcYMuQqYWzs/FPkIEbiQ80z6dRhVszrEXcHLKcfBmNmcn/Vk90ArXCotOD52V0JS/Q+Mf9mCoe9G2bABo9R9PAYT/FrKIEOQEhzLCI7m4/vyIlCMf69d6PjigP3AOGxykbS0Kvsxqoh+HYRFCSLCd+8O2Us2wCYD09/OBqcQi78/fs2vwyg4nrWQQJ6ZGwTKHHxVRY8VGAUUnMFr18HPsN1BQNuz08M4t6Qx6X0nEZ3hseSIcUMVcBm+NyvL2T/XSWqTh2poDuQ4B+UJ59gMrsPapzouxk2iC/+vS1Bs/2sSf77Nsqr7BhE7SMgnZ/a2LF+Shx2aOKSIGflMz+MjVSzpMg2AUh43pbcsi8g\\\\u003d\\\\u003d\\\",\\\"ephemeralPublicKey\\\":\\\"BDJpYzoN9XPVKrHIxwNes83HbR0/AOUPpQgAwi3fTzR+TIB8/VAc9CdI9guWX8Pjvii/T+WxwcByuo9pzJC7518\\\\u003d\\\",\\\"tag\\\":\\\"LFOOTwd5Crtn60KnT0J6MHuFlGE0+EYL3D7IrWrPsRA\\\\u003d\\\"}\"}",
  }
}