Versions Compared

Key

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

...

Если используется опция возврата покупателя в магазин, рекомендуется после получения данных об успешно оплаченном заказе на URL_RETURN_OK дополнительно сделать запрос о результате авторизации на сервер АПК Ассист (о запросе результатов авторизации подробнее см. п.2.3.3) для того чтобы убедиться, что данный заказ действительно оплачен. Также рекомендуется запрашивать результат авторизации при переходе и по адресам URL_RETURN и URL_RETURN_NO, поскольку такой переход выполняется при различных статусах платежа, в том числе и при статусе «В процессе».

2. Запрос на оплату токеном

2.1. Оплата токеном в браузере на стороне магазина

При проведении оплаты токеном Google Pay в браузере на стороне магазина выполняются следующие действия:

Image Removed

  1. Покупатель выбирает товары на сайте интернет-магазина и нажимает кнопку оплаты Google Pay (доступно в браузерах с поддержкой Payment Request API на мобильных устройствах).
  2. После нажатия кнопки оплаты через Google Pay осуществляется вызов Payment Request API и передача сертификата с публичным ключом Ассист.
  3. Открывается специальный диалог браузера, в котором можно выбрать одну из карт, привязанных в мобильном приложении Google Pay.
  4. После выбора карты покупателю предлагается приложить палец к считывателю для подтверждения платежа. 
  5. Приложение Google Pay формирует зашифрованный пакет с токеном и данными платежа и возвращает его скрипту страницы магазина.
  6. Зашифрованный пакет с токеном и данными платежа передается в сервис TokenPay АПК Ассист. 
  7. АПК Ассист расшифровывает пакет с токеном и данными платежа.
  8. АПК Ассист проводит оплату токеном через процессинг расчётного банка.
  9. АПК Ассист возвращает результаты проведения оплаты интернет-магазину.

При проведении оплаты токеном Apple Pay в браузере на стороне магазина выполняются следующие действия:

Image Removed

  1. Покупатель выбирает товары на сайте интернет-магазина и нажимает кнопку оплаты Apple Pay (доступно только в браузере Safari на платформе MacOS).
  2. После нажатия кнопки оплаты через Apple Pay осуществляется вызов Payment Request API и передача сертификата с публичным ключом мерчанта. Одновременно открывается специальный диалог, в котором можно будет выбрать одну из карт, привязанных в мобильном приложении Apple Pay.
  3. После выбора карты покупателю направляется PUSH уведомление на iPhone и предлагается приложить палец к считывателю для подтверждения платежа.
  4. Приложение Apple Pay формирует зашифрованный пакет с токеном и данными платежа и возвращает его скрипту страницы магазина.
  5. Зашифрованный пакет с токеном и данными платежа передается в сервис TokenPay АПК Ассист.
  6. АПК Ассист расшифровывает пакет с токеном и данными платежа.
  7. АПК Ассист проводит оплату токеном через процессинг расчётного банка.
  8. АПК Ассист возвращает результаты проведения оплаты интернет-магазину.

Для организации приема платежей токеном в браузере на стороне магазина нужно выполнить следующие подготовительные шаги:

  • сделать заявку для подключения платёжных средств для оплаты токенами (Apple Pay, Google Pay) в службу технической поддержки АПК Ассист support@assist.ru;
  • интегрировать в код своей страницы:
    • для получения шифрованного пакета с токеном и данными платежа:
      • Payment Request API для Google Pay;
      • ApplePay JS API для Apple Pay;
    • для проведения оплаты – обращение к сервису TokenPay;
  • получить подтверждение от службы технической поддержки АПК Ассист о том, что все необходимые технические настройки для приёма платежей токенами при оплате товаров и услуг данному предприятию выполнены;
  • подготовиться к приему платежей:
  • при использовании Apple Pay создать и подписать сертификат Apple Pay для выполнения платежей с помощью соответствующего раздела в ЛК АПК Ассист;
  • при использовании Google Pay для организации схемы шифрования токена следует применять публичный ключ Public Key: 'BElVf3z1PE68riWbP0YRp4vC+0MuNbd6pqVAe1uHBHYGJvzZonlkVAp5CEEp2EEUswS7hS1y0RyNB3SR2FVExDQ=' и идентификатор мерчанта MerchantID:'16590966430175452581'.

...

2.2. Передача платежной информации TokenPay

Для передачи зашифрованного блока данных о платеже нужно отправить запрос на сервер АПК Ассист методом HTTP POST (в кодировке UTF-8).

URL запроса для передачи зашифрованного блока данных о платеже:

https://<SERVER_NAME>/pay/tokenpay.cfm ,

где <SERVER_NAME> - адрес сервера который предоставляется службой поддержки Ассист в процессе подключения.

Список параметров запроса:

...

Название

...

Обязательное поле

...

Принимаемые значения

...

Значение по умолчанию

...

Описание

...

Да

...

Число

...

Идентификатор предприятия в системе АПК Ассист

...

Login

...

Да

...

8 - 20 символов

...

Логин учетной записи в АПК Ассист (лат. буквы и цифры, символ _)

...

Да

...

8 - 20 символов

...

Пароль учетной записи в АПК Ассист (лат. буквы и цифры)

...

OrderNumber

...

Да

...

128 символов

...

Номер заказа в системе расчетов предприятия.

...

OrderAmount

...

Да

...

Число, 15 цифр (разделители «.», «,»)

...

Сумма платежа в оригинальной валюте (например, 10.34)

...

OrderCurrency

...

Нет

...

3 символа

...

Валюта юр.лица или предприятия

...

Код валюты, в которой указана сумма платежа OrderAmount

...

OrderComment

...

Нет

...

256 символов

...

Комментарий

...

Delay

...

Нет

...

0 – одностадийный механизм работы

1- двустадийный механизм

...

0

...

Признак авторизации кредитной карты при двустадийном механизме работы

...

Language

...

Нет

...

RU - русский,

EN - английский

...

Язык юр.лица или предприятия

...

Язык квитанции об оплате

...

ClientIP

...

Нет

...

Максимум 15 цифр, 4 разделителя «.»

...

IP адрес покупателя

...

TokenType

...

Нет

...

1 – Apple Pay;

2 – Google Pay;

3 – Samsung Pay

...

1

...

Идентификатор типа платежного токена

...

PaymentToken

...

Нет

...

JSON

...

Платежный токен

...

Lastname

...

Да

...

70 символов

...

Фамилия покупателя

...

Firstname

...

Да

...

70 символов

...

Имя покупателя

...

Middlename

...

Нет

...

70 символов

...

Отчество покупателя

...

Email

...

Да

...

128 символа

...

E-mail покупателя

...

Address

...

Нет

...

256 символов

...

Адрес покупателя

...

HomePhone

...

Нет

...

64 символа

...

Домашний телефон покупателя

...

WorkPhone

...

Нет

...

20 символов

...

Рабочий телефон покупателя

...

MobilePhone

...

Нет

...

20 символов

...

Мобильный телефон покупателя

...

Fax

...

Нет

...

20 символов

...

Факс покупателя

...

Country

...

Нет

...

3 символа

...

Код страны покупателя

...

State

...

Нет

...

3 символа

...

Код региона покупателя

...

City

...

Нет

...

70 символов

...

Город покупателя

...

Zip

...

Нет

...

25 символов

...

Индекс предприятия связи покупателя

...

isConvert

...

Нет

...

0 - не конвертировать в базовую валюту;

1 - не конвертировать при возможности;

2 - всегда конвертировать

...

1

...

Флаг конвертации валюты платежа в базовую валюту

...

Format

...

Нет

...

4 – SOAP
5 – JSON

...

5

...

Формат выдачи результатов

...

Signature

...

Нет

...

строка

...

Формируется строка, сшитая из следующих параметров заказа:

Merchant_ID;OrderNumber;OrderAmount;OrderCurrency, разделенных точкой с запятой.

На базе этой строки алгоритмом MD5 формируется дайджест.  Дайджест подписывается закрытым RSA ключом мерчанта. Длина ключа - 1024. Полученная байтовая последовательность является подписью магазина. Подпись передается нам в виде дополнительного параметра, закодированного в виде строки BASE64

...

RecurringIndicator

...

Нет

...

1 –

рекуррентный платеж

0 - обычный платеж

...

0

...

Признак рекуррентного платежа

...

RecurringMinAmount

...

Нет/Да

...

Число, 15 цифр (разделители «.», «,»)

...

Минимальная сумма рекуррентных платежей.

Обязателен при RecurringIndicator = 1

...

RecurringMaxAmount

...

Нет/Да

...

Число, 15 цифр

(разделители «.», «,»)

...

Максимальная сумма рекуррентных платежей.

Обязателен при RecurringIndicator = 1

...

RecurringPeriod

...

Нет/Да

...

Число, 10 цифр

...

Периодичность рекуррентных платежей в днях.

Обязателен при RecurringIndicator = 1

...

RecurringMaxDate

...

Нет/Да

...

Строковое представление даты в формате DD.MM.YYYY

...

Дата окончания рекуррентных платежей.

Обязателен при RecurringIndicator = 1

Список параметров ответа:

...

Название

...

Значение

...

Параметры заказа

...

ordernumber

...

Номер заказа

...

billnumber

...

Уникальный номер заказа в системе АПК Ассист

...

testmode

...

Тестовый режим

...

ordercomment

...

Комментарий

...

orderamount

...

Оригинальная сумма заказа

...

ordercurrency

...

Оригинальная валюта заказа

...

firstname

...

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

...

lastname

...

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

...

middlename

...

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

...

Email

...

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

...

orderdate

...

Дата заказа по Гринвичу (GMT)

...

orderstate

...

Статус заказа

...

packetdate

...

Дата формирования запроса по Гринвичу (GMT)

...

signature

...

  • для типа подписи MD5 – пусто;
  • · для типа PGP – значение X, подписанное закрытым ключом АПК Ассист, закодированное в BASE64.

...

checkvalue

...

uppercase(md5(uppercase(md5(SALT) + md5(Х)))), где SALT – секретное слово; Х – результат строковой склейки параметров merchant_id, ordernumber, orderamount, ordercurrency, orderstate (без разделителей), + -строковая склейка

...

Параметры операции

...

billnumber

...

Расширенный формат billnumber

...

operationtype

...

Тип операции

...

operationstate

...

Состояние операции

...

amount

...

Сумма операции

...

currency

...

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

...

ipaddress

...

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

...

clientip

...

IP-адрес совершившего операцию

...

meantype_id

...

ID платежного средства

...

meantypename

...

Тип платежного средства

...

meansubtype

...

Подтип платежного средства

...

meannumber

...

Номер платежного средства

...

cardholder

...

Держатель платежного средства

...

issuebank

...

Название банка-эмитента

...

bankcountry

...

Страна банка-эмитента

...

responsecode

...

Код возврата

...

message

...

Сообщение о результате операции

...

customermessage

...

Сообщение о результате для покупателя

...

recommendation

...

Рекомендация

...

approvalcode

...

Код авторизации

...

protocoltypename

...

Протокол

...

processingname

...

Процессинг

...

operationdate

...

Дата и время операции (GMT)

...

authresult

...

Результат аворизации по 3DSecure (Y - успешно, N - неуспешно, A - Attempt, U – неизвестно)

...

authrequired

...

Результат проверки вовлеченности карты (1 – вовлечена, 0 – не вовлечена, -1 – неизвестно, null – ошибка при определении вовлеченности)

...

slipno

...

Номер финансовой транзакции, отправляемый в процессинг

Warning

Внимание! В рамках одного заказа может быть проведено несколько операций (оплаты, подтверждения оплаты, отмены). Более того, в рамках одного заказа может быть несколько операций оплаты, если некоторые из них были неуспешными. Успешная операция оплаты заказа может быть только одна. В этих случаях в ответе на запрос о результатах операций по номеру заказа может быть несколько вложенных операций для одного номера заказа.

Warning

Внимание! В полученном ответе необходимо проверить значение параметра testmode. Если платеж был выполнен в тестовом режиме (testmode=1), то отгружать товар или оказывать услугу по текущему заказу не требуется.

Пример результата запроса в формате JSON:

Code Block
languagexml
{"order":
{
    "ordernumber":"26012015_4"
    ,"billnumber":"5899110210668265"
    ,"testmode":"0"
    ,"ordercomment":"тестовый платеж"
    ,"orderamount":"24.00"
    ,"ordercurrency":"RUB"
    ,"firstname":""
    ,"lastname":""
    ,"middlename":""
    ,"email":""
    ,"orderdate":"26.01.2015 17:25:39"
    ,"orderstate":"Timeout"
    ,"fraud_state":""
    ,"fraud_reason":""
    ,"checkvalue":"85C6C974AADC1CADFCFD195730ED090B"
    ,"operations":[
{"billnumber":"5899110210668265.1"
,"operationtype":"100"
,"operationstate":"TimeOut"
,"amount":"24.00"
,"currency":"RUB"
,"clientip":"10.20.10.85"
,"ipaddress":"0.0.0.0"
,"meantype_id":"61"
,"meantypename":"SamsungPay"
,"meansubtype":""
,"meannumber":""
,"cardholder":""
,"issuebank":"UNKNOWN"
,"bankcountry":"UNKNOWN"
,"responsecode":"AS200"
,"message":"Data input timeout."
,"customermessage":"Data input timeout."
,"recommendation":""
,"approvalcode":""
,"protocoltypename":"NET"
,"processingname":""
,"operationdate":"26.01.2015 17:25:39"
,"authresult":""
,"authrequired":""
,"slipno":""}
]
}
,"packetdate":"26.01.2015 18:16:19"
}

Диаграмма оплаты по токену

  1. Покупатель выбирает товар в приложении магазина.
  2. Покупатель подтвердил заказ.
  3. Заказ сформирован на сервере магазина.
  4. Покупатель подтвердил оплату токеном в приложении.
  5. Сервер магазина получает заказ для оплаты.
  6. Зашифрованная платежная информация с токеном отправляется в систему Ассист.
  7. Ассист расшифровывает пакет с токеном и данными платежа.
  8. Ассист проводит авторизацию (оплату) в Банке-эквайере. 
  9. Осуществление межбанковской транзакции.
  10. Банк-эквайер возвращает результат оплаты.
  11. Ассист возвращает результат оплаты на сервер магазина.
  12. Результат оплаты отображается  в приложении магазина.
  13. Ассист отправляет фискальные данные на сервер магазина.
  14. Ассист отправляет электронный чек покупателю с помощью Email и/или СМС.