Передача дополнительных сведений об оплатах для их учёта на стороне веб-сервиса
Введение
В некоторых случаях при проведении платежей может быть актуально передавать не только обязательные и рекомендуемые со стороны провайдера параметры, но и те сведения, которые могут быть полезны в дальнейшем на стороне мерчанта (с привязкой к конкретным платежам и их статусам). Для таких ситуаций в структуре Gate API предусмотрены параметры, позволяющие передавать различные сведения в запросах и получать эти сведения вместе с другой информацией в составе итоговых оповещений.
Передача сведений о бронировании товаров и услуг
Общая информация
С помощью объекта booking_info
можно фиксировать в запросах сведения о бронированиях, связанных с оплатами, и получать эти сведения в оповещениях от платёжной платформы. В отличие от используемых в отдельных индустриях «длинных записей» (подробнее) эта возможность может применяться более широко (например, для указания сведений о бронировании билетов на концерты) и гибко — без ограничений на категорию мерчанта (согласно коду Merchant Category Code, MCC) и требований к обязательности указания параметров. Вместе с тем, использование объекта booking_info
не обеспечивает тех преимуществ, которые могут быть доступны при работе с «длинными записями», и при наличии вопросов о работе с этими возможностями можно обращаться к курирующему менеджеру ecommpay.
Объект booking_info
может использоваться практически для всех типов платежей с прямым использованием платёжных карт и с использованием методов Apple Pay и Google Pay: в частности, для разовых оплат (одностадийных и двухстадийных), нерегулярных повторяемых оплат (экспресс-оплат и автооплат) и для проверки платёжных инструментов.
С помощью объекта booking_info
можно фиксировать в запросах сведения о бронировании товаров и услуг. Эта возможность доступна при проведении платежей с прямым использованием платёжных карт и с использованием методов Apple Pay и Google Pay.
Пример использования
В качестве примера можно рассмотреть ситуацию, когда мерчанту, ведущему бизнес в сфере музыкальных фестивалей, актуально обеспечить:
- сбор и обработку информации о бронировании билетов на фестивали;
- оперативный доступ своих сотрудников к актуальной информации такого рода по каждому пользователю.
Для этого настраивается следующая схема работы:
- В каждом запросе к Gate API, подходящем для передачи сведений о бронировании, со стороны веб-сервиса передаются такие сведения — в параметрах объекта
booking_info
.В числе этих параметров могут использоваться:
firstname
— имя получателя услуги, указанное при бронировании;surname
— фамилия получателя услуги, указанная при бронировании;email
— адрес электронной почты, указанный при бронировании;start_date
— дата начала действия забронированной услуги;end_date
— дата окончания действия забронированной услуги;description
— произвольное описание бронирования;total
— итоговая стоимость бронирования;pax
— количество лиц, для которых бронируется услуга;reference
— указатель забронированной услуги, в качестве которого могут выступать URL, название или код услуги в сервисе мерчанта;id
— идентификатор бронирования, уникальный в рамках сервиса мерчанта.
- По результатам выполнения соответствующей операции информация из объекта
booking_info
передаётся к веб-сервису в итоговом оповещении. - На стороне веб-сервиса обеспечивается необходимая обработка получаемой информации вместе с другой информацией о выполняемых операциях.
Подключение
Указывать объект booking_info
в запросах и получать передаваемые в нём сведения в оповещениях (при использовании типовой структуры оповещений) можно без согласований и каких-либо дополнительных действий. Эти возможности доступны по умолчанию.
Возможности использования объекта booking_info доступны по умолчанию и не требуют отдельного подключения.
Формат данных
Объект booking_info
может включаться в запросы к различным конечным точкам и в оповещения о результатах операций, при этом его структура определяется моделью, а его расположение в структуре запросов — спецификацией этих конечных точек.
В итоговых оповещениях о результатах операций сведения из объекта booking_info
передаются в таком же виде (как и в запросах) в объекте с названием booking info
.
Передача произвольных сведений
Общая информация
С помощью параметра merchant.data
можно фиксировать расширенные сведения о составе заказа, информацию об использовании промокодов и бонусных баллов и другие актуальные данные. При этом можно комбинировать состав таких сведений со сведениями, передаваемыми в описании платежа (в параметре payment.description
) и в информации для товарного чека (в объекте receipt_data
). Это позволяет получать в оповещениях всю необходимую информацию без её дублирования в различных параметрах.
Пример использования
В качестве примера можно рассмотреть ситуацию, когда мерчанту, ведущему бизнес в сфере видеоигр, актуально обеспечить:
- сбор и обработку информации о дополнительных услугах, приобретаемых пользователями в процессе игр;
- оперативный доступ своих сотрудников к актуальной информации такого рода по каждому пользователю.
Специалисты мерчанта обращаются с такой задачей к курирующему менеджеру ecommpay, после чегоДля этого настраивается следующая схема работы:
- В каждом запросе к Gate со стороны веб-сервиса мерчанта передаётся информация о приобретаемых услугах — в виде JSON-объекта в параметре
data
объектаmerchant
.В состав строки
data
включаются:- массив
items
, в котором каждый элемент содержит артикул (sku
), описание (description
) и количество приобретаемых услуг (count
); - параметр
total_count
с общим количеством приобретаемых услуг или товарных позиций; - параметр
user_id
с внутренним идентификатором пользователя.
- массив
- По результатам проведения каждого платежа информация из строки
data
передаётся к веб-сервису мерчанта в итоговом оповещении и становится доступной для просмотра в карточке платежа интерфейса Dashboard. - На стороне веб-сервиса обеспечивается необходимая обработка получаемой информации вместе с другой информацией о проводимых платежах.
Подключение
Возможности применения параметра merchant.data
для передачи и получения различных сведений следует согласовывать с курирующим менеджером ecommpay. После согласований специалисты ecommpay выполняют необходимые действия в платёжной платформе и уведомляют о готовности к включению расширенных сведений в оповещения и к отображению этих сведений в интерфейсе Dashboard.
Формат данных
В запросах к Gate для проведения платежей сведения в параметре merchant.data
должны передаваться в виде JSON-объекта. При этом, поскольку параметр имеет строковый тип данных (string), для передачи JSON-объекта методом POST требуется экранировать символ "
(двойной штрих, U+0022) путём постановки перед ним символа \
(косой обратной черты, U+005C). Это необходимо, чтобы чётко разграничивать на уровне программного взаимодействия, какие кавычки закрывают строку, а какие относятся к содержанию JSON-объекта внутри строки.
В итоговых оповещениях о результатах платежей сведения из параметра merchant.data
передаются в аналогичном параметре data
объекта merchant
, с применением экранирования.
В следующих примерах содержимое параметра разбито на несколько строк для удобства чтения.