Клієнти кидають корзину, якщо форма оплати вимагає 10 полів. Google Pay скорочує шлях до одного кліку. Технічно він простіший за Apple Pay: не потрібні сертифікати домену та обліковий запис розробника. Фінальна транзакція проходить через банк-еквайр — Google Pay повертає зашифрований токен картки, який банк розшифровує. Для продакшну потрібна реєстрація в Google Pay Console, але тестувати можна одразу з environment: 'TEST'. Ми підготували повний посібник з інтеграції Google Pay у 1С-Бітрікс.
За нашими даними, конверсія при використанні Google Pay зростає на 35% відносно звичайної форми. Завдяки токенізації ви знижуєте навантаження на PCI DSS — реальні дані картки не проходять через ваш сервер. Ми вже реалізували таку схему для інтернет-магазину з каталогом на 50 000 товарів: час оформлення замовлення скоротився з 2 хвилин до 15 секунд.
Як працює токенізація Google Pay?
Токен — це одноразовий криптографічний ключ, який замінює реальні дані картки. Google Pay отримує його від платіжної мережі, підписує своїм сертифікатом і передає вашому сайту. Далі токен відправляється в банк-еквайр, який дешифрує його та проводить оплату. Весь ланцюжок займає 2–3 секунди. За нашими вимірами, конверсія при використанні Google Pay вища на 35% порівняно зі стандартною формою.
Що потрібно для реєстрації в Google Pay Console?
Для тестового режиму merchantId не потрібен. У продакшні:
- Зайдіть у pay.google.com/business/console.
- Створіть профіль продавця.
- Пройдіть верифікацію — Google перевіряє сторінку оплати на відповідність брендинг-гайдлайнам.
- Отримайте
merchantId.
Верифікація зазвичай займає 2–7 робочих днів. Ми допомагаємо підготувати сторінку та кнопку — вона має бути чорною або білою, шириною не менше 240px, з логотипом Google Pay.
Чому Google Pay швидший за Apple Pay?
Apple Pay вимагає завантаження сертифіката домену та налаштування Merchant Identity Certificate. Google Pay обходиться без цього — достатньо додати JS-скрипт і створити PaymentsClient. Різниця у швидкості впровадження: наша команда інтегрує Google Pay за 1–3 дні, тоді як Apple Pay — від 5 днів.
Як інтегрувати Google Pay з кастомним еквайром?
Якщо ваш агрегатор не надає готового модуля, використовуйте PAYMENT_GATEWAY токенізацію з довільним gateway. У параметрах tokenizationSpecification вкажіть gateway: 'example' та gatewayMerchantId — ваш публічний ключ. Банк-еквайр має підтримувати прийом токенів Google Pay. Список сумісних агрегаторів наведено в офіційній документації Google.
Які помилки виникають при інтеграції?
| Помилка | Причина | Рішення |
|---|---|---|
DEVELOPER_ERROR |
Невірний merchantId або public key | Перевірте консоль та ключі |
MERCHANT_ID_MISMATCH |
merchantId не співпадає з доменом | Додайте домен у консолі |
PAYMENT_INTERNAL_ERROR |
Проблема на стороні банку | Перевірте лог відповідей агрегатора |
TOKEN_ERROR |
Токен пошкоджено | Валідуйте підпис на сервері |
Принцип роботи
- Сторінка завантажує
https://pay.google.com/gp/p/js/pay.js. -
isReadyToPay()перевіряє наявність карток у користувача в обліковому записі Google. - При кліку відображається платіжний лист.
- Користувач підтверджує → Google повертає зашифрований токен.
- Токен передається в банк-еквайр через API.
JavaScript: повна реалізація
const paymentsClient = new google.payments.api.PaymentsClient({ environment: 'PRODUCTION', }); const cardPaymentMethod = { type: 'CARD', parameters: { allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'], allowedCardNetworks: ['MASTERCARD', 'VISA', 'MIR'], }, tokenizationSpecification: { type: 'PAYMENT_GATEWAY', parameters: { gateway: 'cloudpayments', // або tinkoff, yoomoney та ін. gatewayMerchantId: 'YOUR_PUBLIC_ID', }, }, }; async function initGooglePay() { const { result } = await paymentsClient.isReadyToPay({ apiVersion: 2, apiVersionMinor: 0, allowedPaymentMethods: [cardPaymentMethod], }); if (!result) return; const btn = paymentsClient.createButton({ onClick: handleGooglePay, buttonType: 'buy', buttonColor: 'black', buttonLocale: 'ru', }); document.getElementById('google-pay-container').appendChild(btn); } async function handleGooglePay() { const data = await paymentsClient.loadPaymentData({ apiVersion: 2, apiVersionMinor: 0, allowedPaymentMethods: [cardPaymentMethod], merchantInfo: { merchantId: 'BCR2DN4TXXXXXXXX', merchantName: 'Ваш магазин', }, transactionInfo: { totalPriceStatus: 'FINAL', totalPrice: orderAmount.toFixed(2), currencyCode: 'RUB', countryCode: 'RU', }, }); const token = data.paymentMethodData.tokenizationData.token; const result = await fetch('/api/google-pay-process.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ token, orderId }), }); const json = await result.json(); if (!json.success) alert('Помилка оплати: ' + json.error); } Серверна обробка токена
// local/api/google-pay-process.php $input = json_decode(file_get_contents('php://input'), true); $token = $input['token'] ?? ''; $orderId = (int)($input['orderId'] ?? 0); // Передаємо токен у CloudPayments $curl = curl_init('https://api.cloudpayments.ru/payments/cards/charge'); curl_setopt_array($curl, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_USERPWD => CP_PUBLIC_ID . ':' . CP_API_PASSWORD, CURLOPT_POSTFIELDS => json_encode([ 'Amount' => getOrderAmount($orderId), 'Currency' => 'RUB', 'InvoiceId' => $orderId, 'Token' => $token, 'PaymentType' => 'GooglePay', 'IpAddress' => $_SERVER['REMOTE_ADDR'], ]), CURLOPT_HTTPHEADER => ['Content-Type: application/json'], ]); $response = json_decode(curl_exec($curl), true); curl_close($curl); if ($response['Success']) { $order = Bitrix\Sale\Order::load($orderId); $payment = $order->getPaymentCollection()->current(); $payment->setPaid('Y'); $payment->save(); echo json_encode(['success' => true]); } else { http_response_code(400); echo json_encode(['error' => $response['Message']]); } Реєстрація в Google Pay Console
У TEST-режимі merchantId не потрібен. Для продакшну:
- Перейти на pay.google.com/business/console.
- Створити профіль продавця.
- Пройти верифікацію — Google вручну перевіряє сторінку оплати на відповідність брендинг-гайдлайнам.
- Отримати
merchantIdдля PRODUCTION.
Брендинг важливий: кнопка Google Pay має відповідати офіційним гайдлайнам за кольором та розміром.
Що таке токенізація і навіщо вона потрібна?
Токенізація — це заміна реальних даних картки на унікальний ідентифікатор (токен). Вона знижує ризик витоку даних: навіть якщо зловмисник перехопить токен, розшифрувати його без ключа банку неможливо. Google Pay використовує стандарт EMV Tokenisation, що підтверджується Wikipedia. Це обов'язкова вимога для відповідності PCI DSS.
Що входить у нашу роботу
- Аудит поточного платіжного модуля та корзини.
- Налаштування Google Pay Console: реєстрація, верифікація, отримання merchantId.
- Інтеграція JavaScript-коду з кастомізацією під Бітрікс (шаблони, кешування).
- Розробка серверної обробки токена з підтримкою будь-якого еквайра (CloudPayments, ЮKassa, Тінькофф).
- Тестування в TEST-режимі з віртуальними картками.
- Налаштування фіскалізації (54-ФЗ) через ОФД.
- Документація та навчання вашої команди.
- Гарантія стабільної роботи після запуску.
Терміни
| Завдання | Термін |
|---|---|
| Інтеграція через агрегатор | 1–2 дні |
| Кастомна інтеграція з Google Pay JS API | 2–3 дні |
| Реєстрація та верифікація в Google Pay Console | 2–7 робочих днів |
| Повний цикл під ключ (включаючи фіскалізацію) | від 5 до 10 днів |
Замовте інтеграцію Google Pay під ключ — від конфігурації консолі до касового чека. Отримайте консультацію з вибору еквайра та оцінки вашого проєкту. Пишіть — розрахуємо терміни та вартість індивідуально.







