По любому вопросу мы в одном клике

Задать вопрос

Apple Pay

Введение

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

Однако, если вы хотите использовать собственную платежную страницу, расположенную на вашем домене, вы должны зарегистрировать свой домен в Apple и получить все необходимые сертификаты для вашего домена, прежде чем принимать платежи через Apple Pay. Перед тем, как принимать платежи с помощью Applу Pay, выполните действия, представленные в разделах ниже.

Создание Merchant ID

Чтобы создать свой Merchant ID (Идентификатор продаваца), выполните следующие действия.

  1. В личном кабинете Apple Member Center перейдите по ссылке Certificates, Identifiers & Profiles.
  2. На отобразившейся странице в секции Identifiers выберите Merchant IDs.
  3. На отобразившейся странице нажмите на значок + в правом верхнем углу.
  4. В полях Merchant ID Descritpion и Identifier введите описание своего идентификатора продавца Apple и сам идентификатор соответственно.
  5. Нажмите Continue.
  6. На отобразившейся странице проверьте введенные данные и нажмите Register.
  7. На отобразившейся странице нажмите Done.

Регистрация сертификата

Чтобы принимать платежи через Apple Pay, у вас должна быть ключевая пара и сертификат открытого ключа, соответствующей этой ключевой парой. Необходимые действия в личном кабинете зависят от того, есть ли у вас ключевая пара и соответствующий ей сертификат или нет.

Начальные условия Необходимые шаги
У вас нет ключевой пары и сертификата открытого ключа
  1. Создайте ключевую пару
  2. Выгрузите из личного кабинета запрос подписи сертификата
  3. Подпишите сертификат в Apple Pay

Впоследствии вам будут доступны следующие действия.
У вас есть ключевая пара и зарегистрированный в Apple Pay сертификат открытого ключа Загрузите файл, содержащий ключевую пару, в личном кабинете платежного шлюза
Впоследствии вам будут доступны следующие действия.

Создание нового сертификата

Чтобы создать ключевую пару, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите раздел Сертификаты в левом боковом меню.
  2. Выберите Apple Pay.
  3. Нажмите Создать пару ключей.
    Отобразится следующее окно.
  4. Заполните необходимые поля (см. таблицу ниже).
Параметр Описание

Алгоритм шифрования

Эта радиокнопка позволяет выбрать один из двух криптографических алгоритмов, которые будут использоваться для генерации пары ключей.
  • RSA - алгоритм RSA.
  • ЕСС - криптография на эллиптических кривых.

Country (C)

Введите двухбуквенный код страны, в которой находится ваша организация.

Locality Name (L)

Введите название населенного пункта, в котором расположена ваша организация.

Organization Name (O)

Введите название своей организации.

Apple ID

Apple ID продавца.

State Name (ST)

Введите название региона, в котором находится ваша организация.

Common Name (CN)

Введите полное доменное имя своего сайта, например, test.com.

Organization Unit (OU)

Введите название подразделения своей организации.

Созданная пара ключей будет отображаться в разделе Apple Pay (см. рисунок ниже).

Переходите к выгрузке CSR.

Загрузка ранее созданного сертификата

Чтобы загрузить существующую ключевую пару, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите раздел Сертификаты в левом боковом меню.
  2. Выберите Apple Pay.
  3. В секции Сертификаты идентификации мерчантов нажмите Добавить ключ.
    Отобразится следующее окно.
  4. Заполните поля:
    • Apple ID - Укажите Merchant Apple ID.
    • Пароль - Введите пароль, защищающий содержимое файла PKCS12.
    • Домен по умолчанию - введите домен вашего интернет-магазина.
  5. Перетащите файл ключевой пары в предназначенную для этого область.
    Он отобразится в списке.
  6. Нажмите Создать. Импортированный сертификат отобразится в списке Сертификаты идентификации мерчантов.

Далее с сертификатом доступны следующие действия.

Экспорт запроса подписи сертификата (CSR)

Чтобы выгрузить запрос подписи сертификата, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите в левом боковом меню (раздел Сертификаты)
  2. Выберите нужный платежный сервис (Apple Pay, Google Pay или Samsung Pay).
  3. Нажмите на значке в строке с нужным сертификатом и выберите Выгрузить CSR (см. изображение ниже).

    Отобразится окно сохранения файла.
  4. Укажите путь сохранения файла или сохраните его в папку по умолчанию.

Также вам доступны следующие действия.

Редактирование Merchant ID

Чтобы изменить свой Apple Merchant ID, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите раздел Сертификаты в левом боковом меню.
  2. Выберите Apple Pay.
  3. Нажмите и выберите Редактировать (см. рисунок ниже).

    Отобразится следующее окно.
  4. Отредактируйте поле Apple ID и нажмите Подтвердить.

Отключение сертификата

Чтобы запретить использование ключа, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите в левом боковом меню (раздел Сертификаты)
  2. Выберите нужный платежный сервис (Apple Pay, Google Pay или Samsung Pay).
  3. Нажмите на значке в строке нужного сертификата и выберите Запретить использование (см. изображение ниже).

    Отобразится следующее окно.
  4. Нажмите Подтвердить.

Отображение сертификата, использование которого запрещено, зависит от флажка Разрешенные сертификаты, расположенного в верхней части раздела Сертификаты (см. изображение ниже).

Параметр Описание
Флажок Разрешенные сертификаты установлен Сертификаты, использование которых запрещено не отображаются в списке сертификатов.
Флажок Разрешенные сертификаты не установлен Сертификаты, использование которых запрещено отображаются в списке, но в столбце Разрешен напротив этого сертификата значится Нет (см. изображение ниже).

Действия, необходимые для веб-интеграции

Чтобы обеспечить возможность веб-интеграции, выполните следующие действия.

  1. Зарегистрируйте и подтвердите свой домен в Apple.
  2. Создайте сертификат идентификации продавца, преобразуйте его в .pem файл и загрузите его на свой сервер.

Этот сертификат используется для аутентификации подключений к серверам Apple Pay.

Регистрация домена в Apple

Чтобы зарегистрировать сертификат в Apple, выполните следующие действия.

  1. Войдите в свою учетную запись разработчика Apple на странице https://developer.apple.com.
  2. Следуйте инструкциям справки учетной записи разработчика Apple, чтобы зарегистрировать домен.

На шаге выбора идентификатора продавца, выберите созданный ранее идентификатор продавца.

Схема интеграции

sequenceDiagram participant Плательщик participant Ресурс продавца participant Система Apple Pay participant Платежный шлюз Плательщик->>Ресурс продавца: 1. Выбор оплаты через Apple Pay Ресурс продавца->>Система Apple Pay: 2. Отправка сведений о платеже Система Apple Pay->>Система Apple Pay: 3. Создание объекта PKPaymentToken с PaymentData Система Apple Pay-->>Ресурс продавца: 4. Отправка данных о платеже Ресурс продавца->>Ресурс продавца: 5. Извлечение PaymentData и кодирование содержимого в Base64 Ресурс продавца->>Платежный шлюз: 6. Запрос платежа со значением PaymentData, закодированным в Base64 Платежный шлюз->>Платежный шлюз: 7. Расшифровка платежных данных и оплата Платежный шлюз-->>Ресурс продавца: 8. Отправка ответа с результатом оплаты Ресурс продавца-->>Плательщик: 9. Отображение результата
  1. Пользователь в мобильном приложении выбирает вариант оплаты с помощью Apple Pay.
  2. Сведения о платеже направляются на обработку в систему Apple Pay.
  3. Для обработки данных о платеже в системе Apple Pay создается объект PKPaymentToken Object, который содержит свойство paymentData (здесь и далее см. документацию Apple Pay).
  4. Apply Pay направляет продавцу (мобильному приложению) ответ.
  5. Продавец извлекает из полученного объекта PKPaymentToken Object свойство paymentData и кодирует его содержимое в Base64.
  6. Продавец создает запрос на оплату, содержащий в том числе свойство paymentData, полученное из ответа системы Apple Pay и закодированное в Base64, и отправляет его на обработку в платежный шлюз (см. запрос на оплату через Apple Pay).
  7. Платежная система обрабатывает запрос.
  8. Платежная система возвращает ответ с результатом.
  9. Мобильное приложение отображает пользователю результат оплаты.

Cсылки на справочную информацию

Ссылка Описание
Apple Pay Раздел сайта apple.com, содержащий общую информацию об Apple Pay.
Developer Apple Pay Раздел сайта apple.com, предназначенный для разработчиков и содержащий ссылки на различные документы и справочную информацию, касающуюся Apple Pay.
Apple Pay Sandbox Раздел сайта apple.com, содержащий информацию о тестировании.
Apple Pay Guide Раздел сайта apple.com, содержащий справочник по программированию.
Apple Pay Guidelines Раздел справочного руководства по App Store, посвященный приложениям Apple Pay..
Apple Pay API Справочник API (программный интерфейс для приложений).
Структура PKPaymentToken Object Описание структуры объекта PKPaymentToken Object.
Login page Страница входа в среду разработки.
Getting Started with Apple Pay Документ в формате PDF, содержащий общие сведения об Apple Pay и ссылки на справочную информацию.
Apple Pay Marketing Guidelines Описание того, как добавить кнопку Apple Pay на свой сайт.

Google Pay

Введение

Существует несколько вариантов реализации Google Pay™. Эти варианты поддерживают методы аутентификации CRYPTOGRAM_3DS и PAN_ONLY.

Способ оплаты Описание
Из мобильного приложения Оплата осуществляется из мобильного приложения с мобильного устройства пользователя. В этом сценарии приложение запрашивает зашифрованные данные у Google Pay. Эти данные должны быть отправлены в платежный шлюз.
См. также сценарий с перенаправлением пользователя на ACS. Пожалуйста, обратитесь к соответствующей документации Google Pay:
С веб-страницы, при этом платежная страница расположена на вашей стороне Оплата осуществляется с веб-страницы. Пользователь выбирает оплату на сайте продавца, при этом продавец запрашивает зашифрованные платежные данные у системы Google Pay. Затем продавец должен отправить эти данные в платежный шлюз.
См. также сценарий с перенаправлением пользователя на ACS.
Оплата на платежной странице, которая расположена на стороне платежного шлюза Оплата осуществляется с веб-страницы. Пользователь выбирает оплату на сайте продавца, после чего продавец перенаправляет его на платежную страницу на стороне платежного шлюза. В этом случае продавец перенаправляет покупателя на платежную страницу на стороне платежного шлюза и должен обеспечить соблюдение следующих требований Google Pay:

Схемы интеграции

Оплата в мобильном приложении

sequenceDiagram participant Клиент participant Приложение participant Google Pay participant Платежный шлюз Клиент->>Приложение: 1. Выбор оплаты Google Pay Приложение->Google Pay: 2. Запрос маскированных данных карты Google Pay-->>Приложение: 3. Ответ на запрос Приложение-->>Клиент: 4. Отображение маскированных данных карты Клиент->>Приложение: 5. Подтверждение оплаты Приложение->>Google Pay: 6. Запрос зашифрованных данных карты. Google Pay->>Google Pay: 7. Шифрование данных Google Pay-->>Приложение: 8. Возврат зашифрованных платежных данных Приложение->>Платежный шлюз: 9. Запрос на оплату Google Pay Платежный шлюз->>Платежный шлюз: 10. Расшифровка платежных данных и оплата Платежный шлюз-->>Приложение: 11. Результат оплаты Приложение-->>Клиент: 12. Результат оплаты
  1. Клиент выбирает оплату через Google Pay.
  2. Приложение запрашивает Google Pay информацию о маскированных карточных данных.
  3. Google Pay возвращает в приложение маскированные карточные данные.
  4. Приложение отображает клиенту маскированные данные карты, добавленной в Google Pay.
  5. Клиент подтверждает оплату с помощью добавленной в Google Pay карты.
  6. Приложение запрашивает Google Pay зашифрованные карточные данные.
  7. Google Pay шифрует данные, используя открытый ключ мерчанта.
  8. Google Pay возвращает в приложение зашифрованные данные о платеже.
  9. Приложение отправляет запрос на оплату Google Pay платежному шлюзу, запрос содержит токен, полученный от Google Pay.
  10. Платежный шлюз расшифровывает полученный токен и производит оплату.
  11. Платежный шлюз возвращает результат оплаты в приложение.
  12. Приложение отображает результат оплаты клиенту.

Оплата на платежной странице, которая расположена на стороне интернет-магазина

sequenceDiagram participant Клиент participant Продавец participant Google Pay participant Платежный шлюз Клиент->>Продавец: 1. Выбор оплаты Google Pay Продавец->>Google Pay: 2. Запрос на оплату Google Pay Google Pay->>Google Pay: 3. Формирование зашифрованных данных платежа Google Pay-->>Продавец:4 . Передача зашифрованных данных Продавец->>Платежный шлюз: 5. Запрос на оплату Google Pay Платежный шлюз->>Платежный шлюз: 6. Расшифровка данных и оплата Платежный шлюз-->>Продавец: 7. Результат оплаты Продавец-->>Клиент: 8. Результат оплаты
  1. Клиент формирует заказ на сайте интернет-магазина и выбирает способ оплаты Google Pay.
  2. Система интернет-магазина формирует запрос на оплату в Google Pay.
  3. Система Google Pay формирует зашифрованные платежные данные.
  4. Система интернет-магазина получает зашифрованные платежные данные.
  5. Интернет-магазин формирует запрос на оплату через Google Pay, запрос содержит полученные зашифрованные платежные данные.
  6. Платежный шлюз расшифровывает полученные данные и производит оплату.
  7. Платежный шлюз возвращает результат оплаты в интернет-магазин.
  8. Результат оплаты отображается клиенту.

Оплата на платежной странице, которая расположена на стороне платежного шлюза

sequenceDiagram participant Клиент participant Продавец participant Платежный шлюз participant Google Pay Клиент->>Продавец: 1. Формирование заказа Продавец->>Платежный шлюз: 2. Регистрация заказа Платежный шлюз-->>Продавец: 3. Номер заказа и URL перенаправления Продавец-->>Клиент: 4. Перенаправление клиента Клиент->>Платежный шлюз: 5. Переход на полученный URL Платежный шлюз->>Платежный шлюз: 6. Отображение платежной формы Клиент->>Платежный шлюз: 7. Выбор оплаты через Google Pay Платежный шлюз->Google Pay: 8. Обмен данными Платежный шлюз->>Платежный шлюз: 9. Проведение платежа Платежный шлюз->>Клиент: 10. Перенаправление на финальную страницу. Клиент->>Платежный шлюз: 11. Открытие финальной страницы Платежный шлюз->>Клиент: 12. Отображение статуса клиенту

Если платежная страница расположена на стороне Google Pay, платеж происходит по следующей схеме.

  1. Клиент формирует заказ на сайте продавца.
  2. Продавец регистрирует заказ в платежном шлюзе.
  3. Платежный шлюз возвращает уникальный номер заказа в системе платежного шлюза и URL-адрес на который необходимо перенаправить клиента.
  4. Система магазина перенаправляет браузер клиента на URL-адрес, полученный на шаге 3.
  5. Браузер клиента открывает URL-адрес.
  6. Клиент получает платежную форму.
  7. Клиент выбирает способ оплаты Google Pay и подтверждает свой выбор.
  8. Происходит обмен данными между платежным шлюзом и системой Google Pay - платежный шлюз получает платежные данные.
  9. Платежный шлюз производит оплату.
  10. Клиента перенаправляют на финальную страницу магазина.
  11. Браузер клиента открывает финальную страницу.
  12. Отображается статус платежа.

Оплата Google Pay с использованием 3DS 2.0.

При оплате Google Pay с помощью метода /google/payment.do или google/paymentDirect.do можно использовать аутентификацию клиента по протоколу 3DS 2.0. В этом случае для каждой транзакции вам необходимо отправить в платёжный шлюз запрос на оплату два раза. Отправка первого запроса инициирует процедуру аутентификации по протоколу 3DS 2.0, а отправка второго — продолжает процедуру с данными, полученным от сервера 3DS (дополнительного компонента, который взаимодействует с платежными системами и ACS).

Если клиент после аутентификации перенаправляется на страницу магазина, необходимо завершить платёж, отправив запрос finish3dsVer2Payment.do.

Схема 3DS2 с использованием google/paymentDirect.do.

Ниже приведена схема оплаты с помощью запроса google/paymentDirect.do (расшифровка токена на вашей стороне) с использованием 3DS 2.0.

sequenceDiagram autonumber participant Client as Клиент participant Merchant as Мерчант participant Google Pay participant PG as ПШ participant 3DS server participant ACS Client ->> Merchant: Выбор оплаты Google Pay Merchant ->> Google Pay: Запрос списка карт Google Pay -->> Merchant: Список маскированных карт Merchant ->> Google Pay: Выбор карты для оплаты Google Pay -->> Merchant: Зашифрованный paymentToken Merchant ->> Merchant: Расшифровка токена Merchant ->> PG: первый запрос google/paymentDirect.do
(расшифрованный токен в Base64) PG -->> Merchant: Ответ на первый запрос Merchant ->> 3DS server: вызов скрытого iframe (threeDSMethodURLServer) opt В ответе threeDSMethodURL Merchant ->> ACS: Вызов скрытого iframe (threeDSMethodURL) end Merchant ->> PG: Второй запрос google/paymentDirect.do PG -->> Merchant: Ответ на второй запрос opt Необходимо перенаправление на ACS Merchant ->> ACS: CReq (Challenge request) ACS -->> Client: HTML-форма для аутентификации Client ->> ACS: Подтверждение подлинности ACS -->> Client: Результат проверки и перенаправление в магазин Merchant ->> PG: finish3dsVer2Payment.do PG -->> Merchant: Ответ на запрос end Merchant ->> PG: Запрос статуса заказа PG -->> Merchant: Ответ на запрос статуса Merchant -->> Client: Отображение результата
  1. Клиент в мобильном приложении или на сайте выбирает оплату с помощью Google Pay.
  2. Приложение запрашивает в Google Pay список карт клиента.
  3. Google Pay передаёт в приложение список маскированных карт клиента.
  4. Клиент выбирает карту, которой будет расплачиваться. Эти данные отправляются в Google Pay.
  5. Google Pay передаёт в приложение зашифрованный paymentToken.
  6. Мерчант расшифровывает paymentToken.
  7. Оплата заказа - этап1. Мерчант передаёт расшифрованные данные paymentToken в платёжный шлюз, отправляя запрос google/paymentDirect.do.
  8. Платёжный шлюз проверяет на сервере 3DS возможность проведения аутентификации клиента по протоколу 2.0 и отправляет ответ. В ответе, в том числе, возвращаются следующие параметры:
    • is3DSVer2 - флаг возможности проведения аутентификации 3DSv2 (true/false),
    • threeDSServerTransId - идентификатор транзакции, присвоенный сервером 3DS,
    • threeDSMethodURLServer - адрес сервера 3DS для сбора данных о браузере,
    • threeDSMethodURL - (необязательно) адрес сервера ACS для сбора данных о браузере,
    • threeDSMethodDataPacked - (необязательно) данные для сбора данных о браузере на ACS.
  9. Мерчант в отдельном iframe методом POST вызывает threeDSMethodURLServer, используя значение, полученное из ответа на запрос оплаты заказа. Это позволяет серверу 3DS собрать данные о браузере клиента.
  10. (Необязательный шаг) Если в ответе на запрос оплаты заказа пришли параметры threeDSMethodURL и threeDSMethodDataPacked, то мерчант в отдельном iframe методом POST вызывает threeDSMethodURL. В этом методе необходимо передать значение, полученное из параметра threeDSMethodDataPacked, полученного в ответе на запрос оплаты заказа. При этом нужно его передать в параметре, который называется threeDSMethodData. Это позволяет ACS собрать данные о браузере клиента.
  11. Оплата заказа - этап 2. Мерчант повторно отправляет запрос google/paymentDirect.do, чтобы завершить оплату заказа (или осуществить перевод денежных средств). При этом необходимо передать параметр threeDSServerTransId - идентификатор транзакции, который был создан сервером 3DS и возвращён на шаге 8. Кроме того, для переадресации клиента на страницу магазина после проведения оплаты заказа можно передать ссылку переадресации в параметре threeDSVer2FinishUrl.
  12. Платежный шлюз взаимодействует с 3DS сервером и ACS, чтобы выяснить, требуется ли клиенту проходить аутентификацию на ACS, и отправляет ответ на запрос оплаты. Если клиенту требуется проходить аутентификацию на ACS, в ответе возвращается acsUrl – URL для перенаправления на ACS, а также packedCReq – упакованные данные для challenge request. Если не требуется – возвращается ответ об успешном завершении оплаты.
  13. Если клиенту не требуется проходить аутентификацию на ACS, переходите на шаг 19.

    Если клиенту требуется проходить аутентификацию на ACS, с платежной страницы происходит перенаправление на acsUrl с параметром creq=packedCReq, полученным на шаге 12.

  14. ACS направляет клиенту HTML-форму для прохождения проверки подлинности.

  15. Клиент проходит проверку подлинности

  16. ACS перенаправляет клиента на страницу магазина.

  17. Для завершения транзакции мерчант отправляет в платежный шлюз запрос finish3dsVer2Payment.do, передавая параметр threeDSServerTransId - идентификатор транзакции, который был создан сервером 3DS и возвращён на шаге 8.

  18. Платёжный шлюз отправляет мерчанту ответ на сделанный запрос.

  19. Мерчант делает расширенный запрос статуса заказа getOrderStatusExtended.do в платёжный шлюз, чтобы выяснить состояние заказа.

  20. Платёжный шлюз отправляет ответ на сделанный запрос.

  21. Мерчант отображает клиенту страницу с результатом.

Схема 3DS2 с использованием google/payment.do.

Ниже приведена схема оплаты с помощью запроса /google/payment.do (расшифровка токена на стороне Платежного шлюза) с использованием 3DS 2.0.

sequenceDiagram autonumber participant Client as Клиент participant Merchant as Мерчант participant Google Pay participant PG as ПШ participant 3DS server participant ACS Client ->> Merchant: Выбор оплаты Google Pay Merchant ->> Google Pay: Запрос маскированных данных карты Google Pay -->> Merchant: Возврат маскированных данных карты Merchant -->> Client: Отображение маcкированных данных карты Client ->> Merchant: Подтверждение оплаты Merchant ->> Google Pay: Запрос зашифрованных данных карты Google Pay ->> Google Pay: Шифрование данных Google Pay -->> Merchant: Зашифрованные данные Merchant ->> PG: Первый запрос google/payment.do
(зашифрованный токен в Base64) PG ->> PG: Расшифровка токена PG -->> Merchant: Ответ на первый запрос Merchant ->> 3DS server: Вызов скрытого iframe (threeDSMethodURLServer) opt В ответе threeDSMethodURL Merchant ->> ACS: Вызов скрытого iframe (threeDSMethodURL) end Merchant ->> PG: Второй запрос google/payment.do PG -->> Merchant: Ответ на второй запрос opt Необходимо перенаправление на ACS Merchant ->> ACS: CReq (Challenge request) ACS -->> Client: HTML-форма для аутентификации Client ->> ACS: Подтверждение подлинности ACS -->> Client: Результат проверки и перенаправление в магазин Merchant ->> PG: finish3dsVer2Payment.do PG -->> Merchant: Ответ на запрос end Merchant ->> PG: Запрос статуса заказа PG -->> Merchant: Ответ на запрос статуса Merchant -->> Client: Отображение результата
  1. Клиент в мобильном приложении или на сайте выбирает оплату с помощью Google Pay.
  2. Приложение запрашивает в Google Pay маскированные данные карты клиента.
  3. Google Pay передаёт в приложение маскированные данные карты клиента.
  4. Мерчант отображает клиенту данные карты.
  5. Клиент подтверждает оплату.
  6. Мерчант запрашивает у Google Pay зашифрованные данные карты.
  7. Google Pay шифрует данные карты.
  8. Google Pay возвращает мерчанту зашифрованные данные карты (токен).
  9. Оплата заказа - этап1. Продавец передаёт расшифрованные данные paymentToken в платёжный шлюз, отправляя запрос /google/payment.do.
  10. Платежный шлюз расшифровывает токен.
  11. Платёжный шлюз проверяет на сервере 3DS возможность проведения аутентификации клиента по протоколу 2.0 и отправляет ответ. В ответе, в том числе, возвращаются следующие параметры:
    • is3DSVer2 - флаг возможности проведения аутентификации 3DSv2 (true/false),
    • threeDSServerTransId - идентификатор транзакции, присвоенный сервером 3DS,
    • threeDSMethodURLServer - адрес сервера 3DS для сбора данных о браузере,
    • threeDSMethodURL - (необязательно) адрес сервера ACS для сбора данных о браузере,
    • threeDSMethodDataPacked - (необязательно) данные для сбора данных о браузере на ACS.
  12. Мерчант в отдельном iframe методом POST вызывает threeDSMethodURLServer, используя значение, полученное из ответа на запрос оплаты заказа. Это позволяет серверу 3DS собрать данные о браузере клиента.
  13. (Необязательный шаг) Если в ответе на запрос оплаты заказа пришли параметры threeDSMethodURL и threeDSMethodDataPacked, то мерчант в отдельном iframe методом POST вызывает threeDSMethodURL. В этом методе необходимо передать значение, полученное из параметра threeDSMethodDataPacked, полученного в ответе на запрос оплаты заказа. При этом нужно его передать в параметре, который называется threeDSMethodData. Это позволяет ACS собрать данные о браузере клиента.
  14. Оплата заказа - этап 2. Мерчант повторно отправляет запрос /google/payment.do, чтобы завершить оплату заказа (или осуществить перевод денежных средств). При этом необходимо передать параметр threeDSServerTransId - идентификатор транзакции, который был создан сервером 3DS и возвращён на шаге 11. Кроме того, для переадресации клиента на страницу магазина после проведения оплаты заказа можно передать ссылку переадресации в параметре threeDSVer2FinishUrl.
  15. Платежный шлюз взаимодействует с 3DS сервером и ACS, чтобы выяснить, требуется ли клиенту проходить аутентификацию на ACS, и отправляет ответ на запрос оплаты. Если клиенту требуется проходить аутентификацию на ACS, в ответе возвращается acsUrl – URL для перенаправления на ACS, а также packedCReq – упакованные данные для challenge request. Если не требуется – возвращается ответ об успешном завершении оплаты.
  16. Если клиенту не требуется проходить аутентификацию на ACS, переходите на шаг 22.

    Если клиенту требуется проходить аутентификацию на ACS, с платежной страницы происходит перенаправление на acsUrl с параметром creq=packedCReq, полученным на шаге 15.

  17. ACS направляет клиенту HTML-форму для прохождения проверки подлинности.

  18. Клиент проходит проверку подлинности

  19. ACS перенаправляет клиента на страницу магазина.

  20. Для завершения транзакции мерчант отправляет в платежный шлюз запрос finish3dsVer2Payment.do, передавая параметр threeDSServerTransId - идентификатор транзакции, который был создан сервером 3DS и возвращён на шаге 11.

  21. Платёжный шлюз отправляет мерчанту ответ на сделанный запрос.

  22. Мерчант делает расширенный запрос статуса заказа getOrderStatusExtended.do в платёжный шлюз, чтобы выяснить состояние заказа.

  23. Платёжный шлюз отправляет ответ на сделанный запрос.

  24. Мерчант отображает клиенту страницу с результатом.

Требования к платежной странице на стороне продавца

Платежная страница на стороне продавца должна соответствовать следующим требованиям.

paymentsClient.isReadyToPay({allowedPaymentMethods: allowedPaymentMethods})
    .then(function(response) {
      if (response.result) {
        // in this case the button should be displayed
        addGooglePayButton();
      }
    })
    .catch(function(err) {
      // show error in developer console for debugging
      console.error(err);
    });

function addGooglePayButton() {
  var button = document.createElement('button');
  button.className = 'google-pay';
  button.appendChild(document.createTextNode('Google Pay'));
  sbutton.addEventListener('click', onGooglePaymentButtonClicked);
  document.getElementById('container').appendChild(button);
}
var paymentsClient =
    new google.payments.api.PaymentsClient({environment: 'TEST'});
function getGooglePaymentDataConfiguration() {
  return {
    merchantId: '00000000000000000000', //constant for the bank's RBE; for the environment: 'TEST' is not indicated
    transactionInfo = {
        totalPriceStatus: 'FINAL',
        totalPrice: '123.45', //amount in major units
        currencyCode: 'EUR' //ISO 4217
    },
    paymentMethodTokenizationParameters: {
        tokenizationType: 'PAYMENT_GATEWAY',
        parameters: {
            gateway: 'some-bank', //constant for the bank's RBE
            gatewayMerchantId: 'exampleGatewayMerchantId' //merchant identifier in the payment gateway
        }
    },
    allowedPaymentMethods: ['CARD', 'TOKENIZED_CARD'],
    cardRequirements: {
        allowedCardNetworks: ['MASTERCARD', 'VISA']
    }
  };
}
var paymentDataRequest = getGooglePaymentDataConfiguration();
paymentsClient.loadPaymentData(paymentDataRequest).then(function(paymentData){
  processPayment(paymentData);
}).catch(function(err){
  // show error in developer console for debugging
  console.error(err);
});

Создание ключевой пары

Чтобы создать ключевую пару, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите раздел Сертификаты в левом боковом меню.
  2. Выбор оплаты Google Pay.
  3. В разделе Работа с ключами нажмите Создать пару ключей.
    Отобразится следующее окно.
  4. В поле Google ID укажите ваш идентификатор Google, полученным из Google Pay, затем нажмите Подтвердить.
  5. Созданная пара ключей будет отображаться в разделе Работа с ключами (см. рисунок ниже).

Выгрузка публичного ключа

Чтобы выгрузить открытый ключ, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите раздел Сертификаты в левом боковом меню.
  2. Выбор оплаты Google Pay.
  3. Нажмите напротив нужного сертификата и выберите Выгрузить ключ (см. изображение ниже).
  4. В диалоге Сохранить файл выберите путь, по которому будет сохранен файл, или сохраните его в папку по умолчанию.

Также доступны следующие действия.

Редактирование Google ID

Чтобы изменить свой Google ID, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите раздел Сертификаты в левом боковом меню.
  2. Выбор оплаты Google Pay.
  3. Нажмите рядом с вашим сертификатом и выберите Редактировать (см. рисунок ниже).
    Отобразится следующее окно.
  4. Отредактируйте значение в поле Google ID и нажмите Подтвердить.

Отключение сертификата

Чтобы запретить использование ключа, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите в левом боковом меню (раздел Сертификаты)
  2. Выберите нужный платежный сервис (Apple Pay, Google Pay или Samsung Pay).
  3. Нажмите на значке в строке нужного сертификата и выберите Запретить использование (см. изображение ниже).

    Отобразится следующее окно.
  4. Нажмите Подтвердить.

Отображение сертификата, использование которого запрещено, зависит от флажка Разрешенные сертификаты, расположенного в верхней части раздела Сертификаты (см. изображение ниже).

Параметр Описание
Флажок Разрешенные сертификаты установлен Сертификаты, использование которых запрещено не отображаются в списке сертификатов.
Флажок Разрешенные сертификаты не установлен Сертификаты, использование которых запрещено отображаются в списке, но в столбце Разрешен напротив этого сертификата значится Нет (см. изображение ниже).

Samsung Pay

Общая информация

Перед тем, как принимать платежи через Samsung Pay, выполните следующие действия.

  1. Заведите учетную запись на сайте https://account.samsung.com.
  2. Используя созданную учетную запись, зарегистрируйтесь на сайте https://pay.samsung.com/developers.
  3. На сайте https://pay.samsung.com/developers создайте Service (Сервис) и в качестве Payment Gateway (Платежный шлюз) выберите BPC.
  4. Переходите к действиям в личном кабинете платежного шлюза:

Создание ключевой пары

Чтобы создать ключевую пару, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите раздел Сертификаты в левом боковом меню.
  2. Выбор оплаты Samsung Pay.
  3. В разделе Работа с ключами нажмите Создать пару ключей.
    Отобразится следующее окно.
  4. Заполните поля (см. таблицу ниже).
Поле Описание

Country (C)

Введите двухбуквенный код страны, в которой находится ваша организация.

State Name (ST)

Введите название региона, в котором находится ваша организация.

Locality Name (L)

Введите название населенного пункта, в котором расположена ваша организация.

Common Name (CN)

Введите полное доменное имя своего сайта, например, test.com.

Organization Name (O)

Введите название своей организации.

Organization Unit (OU)

Введите название подразделения своей организации.

Созданная пара ключей будет отображаться в разделе Работа с ключами (см. рисунок ниже).

Переходите к выгрузке CSR.

Экспорт запроса подписи сертификата (CSR)

Чтобы выгрузить запрос подписи сертификата, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите в левом боковом меню (раздел Сертификаты)
  2. Выберите нужный платежный сервис (Apple Pay, Google Pay или Samsung Pay).
  3. Нажмите на значке в строке с нужным сертификатом и выберите Выгрузить CSR (см. изображение ниже).

    Отобразится окно сохранения файла.
  4. Укажите путь сохранения файла или сохраните его в папку по умолчанию.

Теперь вы можете загрузить запрос подписи сертификата в личном кабинете Samsung Pay.

Также вы можете установить запрет на использование сертификата.

Заверешение регистрации

В личном кабинете на сайте https://pay.samsung.com/developers загрузите запрос подписи сертификата в качестве Merchant CSR (Запрос подписи сертификата продавца).

Отключение сертификата

Чтобы запретить использование ключа, выполните следующие действия.

  1. Зайдите в личный кабинет и выберите в левом боковом меню (раздел Сертификаты)
  2. Выберите нужный платежный сервис (Apple Pay, Google Pay или Samsung Pay).
  3. Нажмите на значке в строке нужного сертификата и выберите Запретить использование (см. изображение ниже).

    Отобразится следующее окно.
  4. Нажмите Подтвердить.

Отображение сертификата, использование которого запрещено, зависит от флажка Разрешенные сертификаты, расположенного в верхней части раздела Сертификаты (см. изображение ниже).

Параметр Описание
Флажок Разрешенные сертификаты установлен Сертификаты, использование которых запрещено не отображаются в списке сертификатов.
Флажок Разрешенные сертификаты не установлен Сертификаты, использование которых запрещено отображаются в списке, но в столбце Разрешен напротив этого сертификата значится Нет (см. изображение ниже).

Схемы интеграции

Оплата из мобильного приложения

sequenceDiagram participant Плательщик participant Мобильное приложение participant Samsung Pay participant Платежный шлюз Плательщик->>Мобильное приложение: 1. Выбор оплаты Samsung Pay. Мобильное приложение->>Samsung Pay: 2. Запрос на оплату. Samsung Pay->>Samsung Pay: 3. Проверка устройства Samsung Pay-->>Мобильное приложение:4. Ответ с параметром 3ds.data Мобильное приложение->>Платежный шлюз: 5. Запрос на оплату. Параметр paymentToken содержит данные 3ds.data. Платежный шлюз->>Платежный шлюз: 6. Расшифровка данных и оплата Платежный шлюз -->>Мобильное приложение: 7. Результат оплаты Мобильное приложение-->>Плательщик: 8. Отображение результата
  1. Клиент выбирает выбирает способ оплаты Samsung Pay.
  2. Приложение отправляет сведения о платеже в Samsung.
  3. Samsung проверяет приложение.
  4. Samsung отправляет в приложение ответ содержащий, среди прочего, параметр 3ds.data с зашифрованными данными о платеже.
  5. Продавец отправляет в платежный шлюз запрос на оплату. Параметр 3ds.data включает содержимое paymentToken, полученное от Samsung.
  6. Платежный шлюз расшифровывает содержимое paymentToken и производит оплату.
  7. Платежный шлюз отправляет в приложение результат оплаты.
  8. Приложение отображает клиенту результат оплаты.

Оплата с веб-страницы на стороне платежного шлюза

sequenceDiagram participant Клиент participant Сайт продавца participant Платежный шлюз participant Samsung Pay Клиент->>Сайт продавца 1. Формирование заказа Сайт продавца->>Платежный шлюз: 2. Запрос на оплату. Платежный шлюз->>Клиент: 3. Перенаправление на страницу платежного шлюза Клиент->>Платежный шлюз: 4. Оплата через Samsung Pay Платежный шлюз->Samsung Pay: 5. Обмен данными Платежный шлюз->>Клиент: 6. Перенаправление на страницу Samsung Pay opt Мобильное утсройства клиента не связано с аккаунтом Samsung Клиент->>Samsung Pay: 7. Ввод логина. end Samsung Pay-->>Клиент: 8. Запрос данных аутентификации Клиент->>Samsung Pay: 9. Прохождение аутентификации Платежный шлюз->>Samsung Pay: 10. Обмен платежными данными Samsung Pay-->>Клиент: 11. Отображение результата оплаты
  1. Пользователь на сайте формирует заказ и начинает процедуру оплаты.
  2. Продавец направляет в платежный шлюз запрос на регистрацию заказа:
  3. Продавец отправляет в платежный шлюз запрос на оплату.
  4. Клиент выбирает оплату через Samsung Pay.
  5. Платежный шлюз обменивается данными с Samsung Pay.
  6. Клиент перенаправляется на страницу Samsung Pay.
  7. Клиент вводит свой логин.
  8. Приложение на мобильном устройстве пользователя запрашивает аутентификационные данные.
  9. Клиент в своем устройстве проходит аутентификацию.
  10. Платежный шлюз обменивается с системой Samsung Pay платежными данными.
  11. Клиент перенаправляется на страницу результата оплаты.

Оплата с веб-страницы на стороне мерчанта

sequenceDiagram participant Клиент participant Сайт продавца participant Платежный шлюз participant Samsung Pay Клиент->>Сайт продавца: 1. Сформировать заказ Сайт продавца->>Платежный шлюз: 2. Регистрация заказа Платежный шлюз-->>Сайт продавца: 3. Идентификатор заказа. Сайт продавца-->>Клиент: 4. Перенаправление на платежную страницу. Клиент->>Сайт продавца: 5. Получение платежной страницы Сайт продавца-->>Клиент: 6. Платежная страница Клиент->>Сайт продавца: 7. Запрос оплаты Samsung Pay. Сайт продавца->>Платежный шлюз: 8. Оплата через Samsung Pay Платежный шлюз->Samsung Pay: 9. Обмен данными Платежный шлюз-->>Сайт продавца: 10. Ответ на запрос оплаты Samsung Pay Сайт продавца->>Samsung Pay: 11. Перенаправление клиента на страницу Samsung Pay alt Нет связи устройства и Samsung ID. Samsung Pay-->>Клиент: 12. Запрос идентификатора Samsung ID Клиент-->>Samsung Pay: 13. Указание Samsung ID end Samsung Pay-->>Клиент: 14. Информирование о необходимости проверить связанные устройства Samsung Pay-->>Клиент: 15. Запрос подтверждения авторизации на телефоне Клиент-->>Samsung Pay: 16. Подтверждение авторизации Платежный шлюз->>Samsung Pay: 17. Обмен данными Платежный шлюз-->>Сайт продавца: 18. Результат оплаты Сайт продавца-->>Клиент: 19. Результат оплаты

Оплата с платежной страницы на стороне мерчанта

  1. Клиент формирует заказ на сайте продавца.
  2. Продавец направляет в платежный шлюз запрос регистрации заказа.
  3. Платежный шлюз регистрирует заказ, в ответе отправляет идентификатор созданного заказа.
  4. Магазин перенаправляет клиента на платежную страницу мерчанта.
  5. Браузер клиента открывает платежную страницу мерчанта.
  6. Клиент получает платежную форму.
  7. Клиент выбирает оплату через Samsung Pay (Web).
  8. Продавец отправляет в платежный шлюз запрос оплаты через Samsung Pay.
  9. Платежный шлюз обменивается данными с Samsung Pay.
  10. Платежный шлюз отправляет ответ на запрос оплаты через Samsung Pay.
  11. Платежная форма перенаправляет клиента на страницу Samsung Pay. При этом используется JavaScript-сценарий, в котором вызывается функция connect. В этой функции нужно передать данные из ответа на запрос оплаты через Samsung Pay.
  12. Клиенту отображается форма для ввода идентификатора.
  13. Клиент вводит идентификатор и подтверждает необходимость связывания устройства.
  14. Samsung Pay запрашивает аутентификацию клиента.
  15. Samsung Pay отправляет оповещение на мобильное устройство клиента для выбора карты оплаты и подтверждения оплаты.
  16. Клиент подтверждает оплату.
  17. Samsung Pay обменивается данным с платежным шлюзом.
  18. Платежный шлюз направляет результат платежа на платежную страницу.
  19. Платежная страница отображает результат клиенту.
Категории:
eCommerce API V1
Категории
Результаты поиска