Встраивание кнопок для платежей с использованием методов Apple Pay и Google Pay
Общая информация
В некоторых случаях может быть актуальным использовать непосредственно в веб-сервисе брендированные кнопки, позволяющие оплачивать заказы широко известными платёжными методами, такими как Apple Pay и Google Pay. При работе с платёжной платформой ecommpay для этого можно применять специализированную редакцию платёжной формы Payment Page, встраиваемую в веб-сервис в виде соответствующих кнопок и позволяющую проводить „быстрые“ платежи — со сбором всех необходимых сведений, в том числе о доставке, на стороне сервисов платёжных методов.
При использовании этой редакции платёжной формы в интерфейсе веб-сервиса пользователю отображаются кнопки заданных методов, а при переходе по любой из этих кнопок выполняется перенаправление к соответствующему платёжному сервису, без использования интерфейса Payment Page. Вместе с тем, если для проведения платежа необходимо предоставить дополнительные сведения, пользователю может отображаться модальное окно с соответствующими страницами Payment Page. Чтобы избегать таких ситуаций, рекомендуется обеспечивать передачу необходимых сведений в запросах на открытие Payment Page, а также сбор таких сведений на стороне сервисов Apple Pay или Google Pay.
Эта редакция платёжной формы позволяет работать с методами Apple Pay и Google Pay и может сочетаться с основной редакцией Payment Page, в том числе для поддержки платежей с использованием токенов платёжных карт (подробнее), для перехода к другим методам через их предварительный выбор в веб-сервисе (подробнее) и для вызова платёжной формы с полным набором доступных методов. При этом размеры кнопок можно настраивать с помощью параметров вызова платёжной формы (подробнее далеe). Использование встроенного в интерфейс Dashboard конструктора оформления для этих кнопок не поддерживается, но может быть полезным для настройки оформления тех страниц платёжной формы, которые могут отображаться пользователям в случае необходимости предоставить дополнительные сведения.
Пользовательский сценарий
Со стороны пользователя проведение оплаты в этом случае может выглядеть следующим образом.
- Пользователь переходит в интерфейсе веб-сервиса на страницу, где ему отображаются кнопки заданных методов, и инициирует оплату с помощью одного из них.
- Пользователь перенаправляется к сервису выбранного метода.
- В сервисе выбранного метода пользователь выбирает адрес и способ доставки, если это актуально, и выполняет другие необходимые действия.
- Пользователю отображается информация о результате оплаты (с учётом того, как это настроено на стороне веб-сервиса).
Схема работы
При проведении оплаты с использованием встроенных кнопок взаимодействие между веб-сервисом и платёжной формой строится с применением специализированных библиотек ecommpay и осуществляется следующим образом.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Payment Page.
- Запрос на проведение оплаты поступает в платёжную платформу.
- В платёжной платформе выполняется приём запроса, с проверкой наличия обязательных параметров и корректной подписи.
- Осуществляется подготовка к открытию платёжной формы согласно параметрам проекта и вызова.
- Пользователю отображаются кнопки заданных методов.
- Пользователь щёлкает кнопку одного из доступных платёжных методов.
- На стороне Payment Page выполняется обработка запроса.
- От Payment Page к веб-сервису направляется сообщение о необходимости подтвердить оплату.
- От веб-сервиса к Payment Page направляется сообщение с подтверждением оплаты, после чего выполняются действия, актуальные для этого метода.
- От Payment Page к веб-сервису направляется сообщение с информацией о результате оплаты и адресом страницы для перенаправления пользователя.
Взаимодействие при указании сведений о доставке на стороне сервиса выбранного метода (Apple Pay или Google Pay) может осуществляться следующим образом.
- От веб-сервиса к Payment Page направляется сообщение с подтверждением оплаты.
- В платёжную платформу передаётся запрос на открытие интерфейса и формы оплаты Google Pay.
- Запрос на открытие интерфейса и формы оплаты Google Pay и получение информации о картах, доступных пользователю, передаётся в сервис Google Pay.
- В сервисе Google Pay выполняется обработка запроса и формируется платёжная форма со списком карт, доступных пользователю.
- Пользователю отображается интерфейс сервиса Google Pay со списком карт в маскированном виде и полями для указания сведений о доставке.
- Пользователь указывает адрес доставки.
- В сервисе Google Pay выполняется обработка запроса.
- От сервиса Google Pay к Payment Page направляется сообщение со сведениями об адресе доставки.
- От Payment Page к веб-сервису направляется сообщение со сведениями об адресе доставки.
- От веб-сервиса к Payment Page направляется сообщение с подтверждением доступности доставки по этому адресу.
- От Payment Page к сервису Google Pay направляется сообщение с подтверждением доступности доставки.
- В сервисе Google Pay выполняется обработка запроса.
- Пользователю отображается информация о доступных способах доставки.
- Пользователь выбирает способ доставки.
- В сервисе Google Pay выполняется обработка запроса.
- От сервиса Google Pay к Payment Page направляется сообщение со сведениями о выбранном пользователем способе доставки.
- От Payment Page к веб-сервису направляется сообщение со сведениями о выбранном пользователем способе доставки.
- От веб-сервиса к Payment Page направляется сообщение с подтверждением доступности доставки выбранным способом.
- От Payment Page к сервису Google Pay направляется сообщение с подтверждением доступности доставки.
- В сервисе Google Pay выполняется обработка запроса.
- Пользователю отображается информация об оплате с учётом выбранных им параметров доставки (адреса и способа).
- Пользователь выполняет другие необходимые действия, если требуется, и подтверждает оплату.
- В сервисе Google Pay выполняется обработка запроса.
- От сервиса Google Pay к Payment Page направляется сообщение со сведениями об оплате с учётом выбранных пользователем параметров доставки.
- От Payment Page к веб-сервису направляется сообщение со сведениями об оплате с учётом выбранных пользователем параметров доставки.
- От веб-сервиса к Payment Page направляется сообщение с подтверждением оплаты, после чего выполняются действия, актуальные для этого метода.
- От Payment Page к веб-сервису направляется сообщение с информацией о результате оплаты и адресом страницы для перенаправления пользователя.
Подключение и настройка
Чтобы начать работу со встроенными кнопками, следует:
- Подключить в клиентской части CSS- и JavaScript-библиотеки от ecommpay, расположенные по адресам
https://paymentpage.ecommpay.com/shared/merchant.cssиhttps://paymentpage.ecommpay.com/shared/merchant.jsсоответственно.<link rel="stylesheet" href="https://paymentpage.ecommpay.com/shared/merchant.css" /> <script type="text/javascript" src="https://paymentpage.ecommpay.com/shared/merchant.js"></script>
- Добавить в клиентской части элемент, предназначенный для отображения в нём кнопок заданных методов.
// Отображение двух кнопок в разных элементах iframe <div class = "container-one" > <div id= "widget-container-google-pay" ></div> <div id= "widget-container-apple-pay" ></div> </div> // Отображение двух кнопок в одном элементе iframe </div> <div class = "container-two" > <div id= "widget-container-one-click-buttons" ></div> </div>
- Обеспечить в серверной части сбор и подписывание параметров запросов на открытие Payment Page (в том числе с применением SDK для работы с подписью, если это актуально), а также отправку подписанных данных в клиентскую часть веб-сервиса.
- Обеспечить в клиентской части вызов платёжной формы с использованием JavaScript-библиотеки от ecommpay и метода
EPayWidget.runEmbedded. - Реализовать в клиентской части функции для обработки интерфейсных событий. Вместе с функциями, информация о которых представлена в этой статье, могут использоваться и другие (подробнее).
- Для работы с платёжным методом Apple Pay — предварительно зарегистрировать рабочие домены веб-сервиса в сервисе Apple Pay.
Использование
В целом, для проведения платежа с использованием встроенных кнопок необходимо следующее.
-
На стороне веб-сервиса необходимо сформировать запрос на открытие платёжной формы. В запросе должен указываться JavaScript-объект
configObjс параметрами вызова платёжной формы и с подписью к ним.При формировании таких запросов необходимо учитывать следующее:
- К базовому минимуму параметров, обязательному для проведения платежа, в этом случае относятся:
target_element— идентификатор того элемента iframe, в котором необходимо открыть платёжную форму;payment_id— идентификатор платежа, уникальный в рамках проекта;payment_amount— сумма платежа в дробных единицах валюты;payment_currency— буквенный код валюты платежа в формате ISO-4217 alpha-3;project_id— идентификатор проекта, полученный от ecommpay при интеграции;merchant_domain— доменное имя веб-сервиса, в котором необходимо открыть платёжную форму;force_payment_groupдля отображения кнопок обоих методов (со значениемone_click_buttons) илиforce_payment_methodдля отображения кнопки только одного из методов (со значениемapple_pay_coreдля метода Apple Pay илиgoogle_pay_hostдля метода Google Pay);mode— указатель режима работы Payment Page со значениемpurchase;signature— подпись запроса, составленная после указания всех целевых параметров.
-
Для инициирования дополнительных действий на стороне сервисов Apple Pay и Google Pay дополнительно можно указывать параметр
payment_methods_optionsи включать в него следующее:- перечень запрашиваемых сведений о пользователе в виде массива
billing_contact_fieldsдля сбора определённых сведений о пользователе, если сбор этих сведений не настроен для всех платежей в рамках используемого проекта (подробнее); - сведения о доставке товара или услуги пользователю в составе объекта
shippingдля выбора пользователем способа доставки.
Подробная информация о сведениях, которые можно указывать в параметре
payment_methods_options, представлена далее. - перечень запрашиваемых сведений о пользователе в виде массива
- Для отображения кнопок в разных элементах iframe для каждого из них необходимо сформировать отдельный запрос.
Рис. 7. Пример данных из запроса на открытие платёжной формы { "target_element":"widget-container-one-click-buttons", "payment_id":"X03936", "payment_amount":131960, "payment_currency":"USD", "project_id":22, "merchant_domain":"cosmoshop.jupiter.example", "force_payment_group":"one_click_buttons", "mode":"purchase", "signature":"YWb6Z20ByxpQ30hfTIjaCCsVIwVynXV" }Рис. 8. Пример данных из параметра payment_methods_options { "google_pay_host":{ "billing_contact_fields":[ "email", "name", "phone", "billing_address", "postal_code" ], "shipping":{ "shipping_fields":[ "shipping_address", "name", "phone" ], "allowed_country_codes":[ "GB", "IE" ], "shipping_methods":[ { "label":"Speed of sound shipping", "detail":"Express shipping (1 hour)", "amount":199, "identifier":"cosmo-shipping-009" }, { "label":"Warp drive shipping", "detail":"Instant shipping", "amount":2999, "identifier":"cosmo-shipping-012" } ] } }, "apple_pay_core":{ "billing_contact_fields":[ "email", "name", "phone", "billing_address", "postal_code" ], "shipping":{ "shipping_fields":[ "shipping_address", "name", "phone" ], "shipping_methods":[ { "label":"Speed of sound shipping", "detail":"Express shipping (1 hour)", "amount":199, "identifier":"cosmo-shipping-009" }, { "label":"Warp drive shipping", "detail":"Instant shipping", "amount":2999, "identifier":"cosmo-shipping-012" } ] } } } - К базовому минимуму параметров, обязательному для проведения платежа, в этом случае относятся:
-
Со стороны веб-сервиса необходимо вызвать платёжную форму с помощью метода
EPayWidget.runEmbedded, с указанием JavaScript-объектаconfigObjи функции-обработчикаonCheckSubmit, после чего пользователю отображается кнопка.Функция
onCheckSubmitпредназначена для регистрации и обработки информации о щёлчке кнопки.Рис. 9. Пример обращения с использованием метода runEmbedded const checkoutButtonsWidget = EPayWidget.runEmbedded({ ...configObj, onCheckSubmit: async function (data, resolve, reject) { if (!await merchantPage.validateCheckoutPage()) { return reject() // Отклонение оплаты } if (!await merchantAPI.validateCartAmount(checkoutButtonsWidget.configObj.payment_amount, checkoutButtonsWidget.configObj.payment_currency)) { return reject() // Отклонение оплаты }; return resolve(); // Подтверждение оплаты, с возможностью указать объект additional_parameters в качестве аргумента }, }, 'POST'); -
На стороне Payment Page регистрируется щелчок кнопки, после чего на стороне веб-сервиса следует проверить сведения об оплате (такие как сумма и валюта платежа, а также другие обязательные сведения) и вызвать одну из функций,
resolveдля подтверждения оплаты илиrejectдля её отклонения. В случае отклонения проведения оплаты пользователю следует предоставлять информацию об ошибке со стороны веб-сервиса.Вместе с подтверждением платежа на этом этапе можно передать сведения о пользователе, если они не были переданы при вызове платёжной формы или их необходимо изменить, а также указать адреса для автоматического перенаправления пользователя после проведения оплаты. Для этого следует использовать объект
additional_parameters.Рис. 10. Пример данных из объекта additional_parameters { // Общие сведения о пользователе customer_id:"customer_112", customer_first_name:"Arthur", customer_last_name:"McDonald", customer_phone:"447700900123", customer_email:"mcdonald@space.com" // Сведения об адресе проживания пользователя customer_country:"GB", customer_city:"Belfast", customer_address:"14A Cosmos Crescent, Flat 25", customer_zip:"BT99 0ZZ", // Сведения о расчётном адресе пользователя billing_country:"GB", billing_city:"Belfast", billing_address:"14A Cosmos Crescent, Flat 25", billing_postal:"BT99 0ZZ", // Сведения об адресе пользователя, используемом для проверки Address Verification Service avs_street_address:"14A Cosmos Crescent, Flat 25", avs_post_code:"BT99 0ZZ", // Сведения для возвращения пользователя к веб-сервису redirect_success_url:"https://cosmoshop.jupiter.example/pages/success", redirect_success_mode:"parent_page", redirect_fail_url:"https://cosmoshop.jupiter.example/pages/failed", redirect_fail_mode:"parent_page", }; - Если в запросе на открытие платёжной формы были указаны сведения о доставке товара или услуги пользователю (в составе объекта
shipping), дополнительно необходимо следующее:- После указания пользователем адреса доставки, регистрируемого с помощью функции
onCheckShippingAddressбиблиотекиmerchant.js, на стороне веб-сервиса следует проверить возможность доставки на указанный адрес.Рис. 11. Пример сведений об указанном пользователем адресе доставки { "region":"Belfast City", "city":"Belfast", "country_code":"GB", "postal_code":"BT99 0ZZ" }Далее в зависимости от результата проверки следует вызвать одну из функций:
onCheckShippingAddress.resolveдля подтверждения возможности доставки, с обязательным указанием суммы платежа с учётом этой доставки и необязательным указанием обновлённых сведений о параметрах доставки (в массивеshipping_methods);onCheckShippingAddress.rejectдля её отклонения, с необязательным указанием текстов сообщений, которые необходимо отобразить пользователю — как общего сообщения об ошибке, так и отдельных пояснений для любых указанных параметров доставки (рекомендуется указывать подробные сведения об ошибках для повышения удобства пользователей).Рис. 12. Пример сведений об ошибке errors = { "fields": { "country_code": "Supported shipping countries: GB, DE, IT", "region": "This region is not supported", "city": "Only Dublin is available", "postal_code": "The range of postal address 10060 - 100150", }, "message": "Cannot ship to the provided address" }
Этот шаг может выполняться несколько раз, а также может выполняться до или после следующего шага, в зависимости от порядка действий пользователя и особенностей используемого сервиса.
- После выбора пользователем способа доставки, регистрируемого с помощью функции
onCheckShippingMethodбиблиотекиmerchant.js, на стороне веб-сервиса следует проверить доступность этого способа.Рис. 13. Пример сведений о выбранном пользователем способе доставке { "identifier":"cosmo-shipping-012" }Далее в зависимости от результата проверки следует вызвать одну из функций:
onCheckShippingMethod.resolveдля подтверждения возможности доставки, с обязательным указанием суммы платежа с учётом этой доставки;onCheckShippingMethod.rejectдля её отклонения, с обязательным указанием суммы платежа без учёта доставки и необязательным указанием текста сообщения об ошибке, которое необходимо отобразить пользователю (рекомендуется указывать подробные сведения об ошибках для повышения удобства пользователей).Рис. 14. Пример сведений об ошибке errors = { "message": "This shipping option cannot be selected for this address", }
Этот шаг может выполняться несколько раз, а также может выполняться до или после предыдущего шага, в зависимости от порядка действий пользователя и особенностей используемого сервиса.
- После подтверждения пользователем оплаты, регистрируемого с помощью функции
onConfirmationбиблиотекиmerchant.js, на стороне веб-сервиса следует проверить сведения об оплате с учётом указанных пользователем способа и адреса доставки, в том числе актуальную сумму платежа.Рис. 15. Пример сведений об оплате для проверки на стороне веб-сервиса { "customer":{ "email":"mcdonald@space.com", "first_name":"Arthur", "last_name":"McDonald", "phone":"447700900123" }, "billing_address":{ "address":"14A Cosmos Crescent, Flat 25", "city":"Belfast", "region":"Belfast City", "country_code":"GB", "postal_code":"BT99 0ZZ" }, "shipping_address":{ "address":"Dock 7, Innovation Hangar", "city":"Belfast", "region":"Belfast City", "country_code":"GB", "postal_code":"BT99 1XY", "first_name":"Arthur", "last_name":"McDonald", "phone":"447700900321" } }Далее в зависимости от результата проверки следует вызвать одну из функций:
onConfirmation.resolveдля подтверждения оплаты, с основными сведениями об оплате — идентификаторами проекта и платежа, а также суммой и валютой платежа — и с подписью к ним (в объектеpayment_update).Рис. 16. Пример сведений для подтверждения оплаты { "payment_id":"X03936", "project_id":22, "payment_amount":134959, "payment_currency":"USD", "signature":"a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u" }Вместе с подтверждением платежа на этом этапе можно передать сведения о пользователе, если они не были переданы при вызове платёжной формы или их необходимо изменить, в объекте
additional_parameters.Рис. 17. Пример данных из объекта additional_parameters {"billing_country": "GB", "customer_email": "mcdonald@space.com", "avs_post_code": "BR1 1AA", "redirect_success_url":"https://cosmoshop.jupiter.example/order?id=123"}onConfirmation.rejectдля её отклонения, с указанием суммы платежа и того текста сообщения об ошибке, который необходимо отобразить пользователю.Рис. 18. Пример сведений об ошибке errors = { "fields": { "country_code": "Supported shipping countries: GB, DE, IT", "region": "This region is not supported", "city": "Only Dublin is available", "postal_code": "The range of postal address 10060 - 100150", }, "message": "Cannot ship to the provided address" }
Информацию об итоговой сумме платежа с учётом выбранными пользователем параметрами доставки можно отслеживать через серверные оповещения.
- После указания пользователем адреса доставки, регистрируемого с помощью функции
onShowLoader— для отображения страницы ожидания веб-сервиса;onHideLoader— для скрытия страницы ожидания веб-сервиса (в случае необходимости отображать пользователю страницы платёжной формы Payment Page);onPaymentSubmitResult— для получения информации об идентификаторе запроса на проведения платежа (в случае необходимости отслеживать статус платежа);onError— для получения информации об ошибках на стороне платежной формы.
В целом, HTML-страница клиентской части веб-сервиса с возможностью проведения платежей с использованием кнопок может выглядеть следующим образом.
const expressButtons = EPayWidget.runEmbedded({
payment_amount: 131960,
payment_currency: "USD",
project_id: "22",
payment_id: "X03936",
force_payment_group: "one_click_buttons",
payment_methods_options: {"google_pay_host": {"billing_contact_fields": ["name", "email", "phone", "billing_address"]}},
target_element: "widget-container-one-click-buttons",
merchant_domain: cosmoshop.jupiter.example,
signature: "abcYWb6Z30hfTIjaCCsVIDEF123",
onShowLoader: merchantPage.showMerchantLoader,
onHideLoader: merchantPage.hideMerchantLoader,
onCheckSubmit: async function (data, resolve, reject) {
if (await merchantAPI.canStartPayment(merchantPage.cart)) {
return resolve();
}
return reject();
},
onCheckShippingAddress: async function (data, resolve, reject) {
const {addressIsAvailable, newPaymentAmount, newShippingMethods, errors} = await merchantAPI.validateShippingAddress(data);
if (addressIsAvailable) {
return resolve({payment_amount: newPaymentAmount, shipping_methods: newShippingMethods});
} else {
return reject({payment_amount: newPaymentAmount, errors});
}
},
onCheckShippingMethod: async function (data, resolve, reject) {
const {addressIsAvailable, newPaymentAmount} = await merchantAPI.saveShippingMethod(orderId, data.identifier);
if (addressIsAvailable) {
return resolve({payment_amount: newPaymentAmount});
} else {
return reject({payment_amount: newPaymentAmount});
}
},
onConfirmation: async function (data, resolve, reject) {
const { orderId, paymentUpdate, additionalParameters, errors } = await merchantAPI.placeOrder(merchantPage.cart, merchantPage.customerInfo);
if (orderId) {
return resolve({payment_update: paymentUpdate, additional_parameters: additionalParameters});
} else {
return reject({errors})
}
},
onPaymentSubmitResult: async function (data) {
await merchantAPI.saveTransactionId(data.request_id)
},
onError: async function ({ messages }) {
await merchantAPI.log("Payment error occurred " + messages)
if (messages.includes("invalid payment_id")) {
merchantPage.redirectToContactSupportPage();
}
},
});
Используемые параметры
Общие параметры
Для открытия платёжной формы в виде кнопок может использоваться набор параметров, представленных в следующей таблице.
| Параметр | Описание |
|---|---|
|
|
Почтовый индекс пользователя, используемый для проверки Address Verification ServiceAVS. Пример: |
|
|
Адрес пользователя, используемый для проверки Address Verification ServiceAVS. Включает в себя номер дома и название улицы. Пример: |
|
|
Номер дома (с обозначением корпуса или строения, где это актуально) и название улицы в расчётном адресе пользователя. Для сбора сведений о расчётном адресе пользователя на стороне сервисов Apple Pay и Google Pay следует использовать параметр Пример: |
|
|
Название города в расчётном адресе пользователя. Для сбора сведений о расчётном адресе пользователя на стороне сервисов Apple Pay и Google Pay следует использовать параметр Пример: |
|
|
Код страны в расчётном адресе пользователя (в формате ISO 3166-1 alpha-2). Для сбора сведений о расчётном адресе пользователя на стороне сервисов Apple Pay и Google Pay следует использовать параметр Пример: |
|
|
Почтовый индекс в расчётном адресе пользователя. Для сбора сведений о расчётном адресе пользователя на стороне сервисов Apple Pay и Google Pay следует использовать параметр Пример: |
|
|
Название региона (штата, провинции или иной территориальной области) в расчётном адресе пользователя. Для сбора сведений о расчётном адресе пользователя на стороне сервисов Apple Pay и Google Pay следует использовать параметр Пример: |
|
|
Внутренний код региона (штата, провинции или иной территориальной области) в расчётном адресе пользователя. Представляет собой вторую часть международного кода территории (в формате ISO 3166-2), без двухбуквенного кода страны и разделительного дефиса, и является применимым в тех случаях, когда передаётся в одном запросе с кодом страны в значении параметравместе с параметром
Для сбора сведений о расчётном адресе пользователя на стороне сервисов Apple Pay и Google Pay следует использовать параметр Пример: |
|
|
Название улицы и номер дома (с обозначением корпуса или строения, где это актуально) в адресе проживания пользователя, с использованием разделительной запятой. Представляет собой строку длиной не более 255 символов. Пример: |
|
|
Название места рождения пользователя (города или иного населённого пункта). Представляет собой строку длиной не более 255 символов. Пример: |
|
|
Название города (или иного населённого пункта) в адресе проживания пользователя. Представляет собой строку длиной не более 255 символов. Пример: |
|
|
Код страны в адресе проживания пользователя (в формате ISO 3166-1 alpha-2). Указывается в формате ISO 3166-1 alpha-2. Пример: |
|
|
Дата рождения пользователя в формате Представляет собой строку в формате Пример: |
|
|
Адрес электронной почты пользователя. Представляет собой строку длиной не более 255 символов, состоящую из локального адреса и доменного имени, разделённых символом «@». Для сбора сведений об электронной почте пользователя на стороне сервисов Apple Pay и Google Pay следует использовать параметр Пример: |
|
|
Имя пользователя. Представляет собой строку длиной не более 255 символов. Для сбора сведений об имени пользователя на стороне сервисов Apple Pay и Google Pay следует использовать параметр Пример: |
|
|
Идентификатор пользователя в рамках проекта (указанного в значении параметра Должен быть однозначно сопоставим с учётной записью пользователя в веб-сервисе, в том числе для корректной работы с рисками и борьбы с мошенническими операциями. Пример: |
|
|
Фамилия пользователя. Представляет собой строку длиной не более 255 символов. Для сбора сведений о фамилии пользователя на стороне сервисов Apple Pay и Google Pay следует использовать параметр Пример: |
|
|
Отчество (или второе или среднее имя) пользователя. Представляет собой строку длиной не более 255 символов. Пример: |
|
|
Номер телефона пользователя. В общем случае должен быть полным, с кодом страны, хотя в отдельных случаях допустимо указание и без кода страны. Должен содержать не менее 4 и не более 24 цифр. В общем случае должен включать код страны и содержать не менее 4 и не более 24 цифр. Для сбора сведений о телефоне пользователя на стороне сервисов Apple Pay и Google Pay следует использовать параметр Пример: |
|
|
Название региона (штата, провинции или иной территориальной области) в адресе проживания пользователя. Представляет собой строку длиной не более 255 символов. Пример: |
|
|
Название улицы в адресе проживания пользователя. Представляет собой строку длиной не более 255 символов. Пример: |
|
|
Почтовый индекс в адресе проживания пользователя. Представляет собой строку длиной не более 10 символов. Пример: |
|
|
В рамках проведения платежей с использованием встроенных кнопок может принимать одно из следующих значений:
При каждом вызове платёжной формы должен указываться один из параметров, Пример: |
|
|
В рамках проведения платежей с использованием кнопок может принимать значение При каждом вызове платёжной формы должен указываться один из параметров, Пример: |
|
|
Доменное имя веб-сервиса, в котором необходимо открыть платёжную форму. Пример: |
|
|
Указатель режима работы Payment Page. В рамках проведения платежей с использованием кнопок должен принимать значение Пример: |
|
|
Сумма платежа в дробных единицах валюты. Приводится в дробных единицах валюты без десятичного разделителя. Пример: |
|
|
Трёхбуквенный код валюты платежа. Указывается в формате ISO-4217 alpha-3, согласно справочнику. Код валюты платежа (в формате ISO-4217 alpha-3, согласно справочнику). Пример: |
|
|
Идентификатор платежа в рамках проекта, длиной не более 255 символов с обеспечением регистронезависимости. Должен задаваться на стороне веб-сервиса и представлять собой строку длиной не более 255 символов с обеспечением регистронезависимости и уникальности в рамках используемого проекта. Пример: |
|
|
Дополнительные сведения, актуальные при работе с отдельными платёжными методами и сторонними сервисами. Могут содержать параметры, описанные далее |
|
|
Идентификатор проекта взаимодействия веб-сервиса с платёжной платформой, полученный от ecommpay при интеграции (подробнее). Пример: |
|
|
Адрес для автоматического итогового возвращения пользователя к веб-сервису при отклонении оплаты. Пример: |
|
|
Адрес для автоматического итогового возвращения пользователя к веб-сервису при проведении оплаты. Пример: |
|
|
Цифровая подпись к параметрам запроса. Должна составляться после указания всех целевых параметров в соответствии с заданным алгоритмом (подробнее). Подпись к параметрам запроса (подробнее). |
|
|
Идентификатор элемента iframe (в рамках HTML-страницы веб-сервиса), в котором необходимо открыть платёжную форму. Идентификатор элемента iframe для открытия платёжной формы. Пример: |
Специальные параметры для работы с методами Apple Pay и Google Pay
При работе со встроенными кнопками в параметре payment_methods_options допустимо указывать дополнительные сведения, актуальные для работы с тем или иным методом, представленные в следующей таблице.
| Параметр | Описание | |
|---|---|---|
|
|
Дополнительные сведения, актуальные при работе с платёжным методом Google Pay | 29-2 |
|
|
Сведения о доставке товара или услуги пользователю | 29-2-129-2 |
|
|
Сведения об адресе доставки, которые необходимо собрать на стороне сервиса Google Pay. Представляют собой массив с перечнем запрашиваемых сведений, в числе которых могут быть:
Пример: |
29-2-1-129-2-1 |
|
|
Сведения о странах, для которых доступна доставка. Если эти сведения не указаны, доступными считаются все страны. Представляют собой массив с перечнем кодов стран в формате ISO 3166-1 alpha-2. Пример: |
29-2-1-229-2-1 |
|
|
Сведения о доступных способах доставки. Способ доставки, указанный первым, отображается в сервисе Google Pay выбранным по умолчанию | 29-2-1-329-2-1 |
|
|
Название способа доставки, которое следует отображать пользователю. Должно указываться при передаче массива Пример: |
29-2-1-3-129-2-1-3 |
|
|
Описание способа доставки, которое следует отображать пользователю. Должно указываться при передаче массива Пример: |
29-2-1-3-229-2-1-3 |
|
|
Стоимость доставки в дробных единицах валюты платежа. Приводится в дробных единицах валюты платежа, указанной в параметре Должна указываться при передаче массива Пример: |
29-2-1-3-329-2-1-3 |
|
|
Служебный идентификатор способа доставки, заданный на стороне веб-сервиса. Должен указываться при передаче массива Пример: |
29-2-1-3-429-2-1-3 |
|
|
Сведения о расчётном адресе пользователя, которые необходимо собрать на стороне сервиса Google Pay. Представляют собой массив с перечнем запрашиваемых сведений, в числе которых могут быть:
Пример: |
29-2-229-2 |
|
|
Высота кнопки в пикселях. Пример: |
29-2-329-2 |
|
|
Дополнительные сведения, актуальные при работе с платёжным методом Apple Pay | 29-1 |
|
|
Сведения о доставке товара или услуги пользователю | 29-1-129-1 |
|
|
Сведения об адресе доставки, которые необходимо собрать на стороне сервиса Apple Pay. Представляют собой массив с перечнем запрашиваемых сведений, в числе которых могут быть:
Пример: |
29-1-1-129-1-1 |
|
|
Сведения о доступных способах доставки. Способ доставки, указанный первым, отображается в сервисе Apple Pay выбранным по умолчанию | 29-1-1-329-1-1 |
|
|
Название способа доставки, которое следует отображать пользователю. Должно указываться при передаче массива Пример: |
29-1-1-3-129-1-1-3 |
|
|
Описание способа доставки, которое следует отображать пользователю. Должно указываться при передаче массива Пример: |
29-1-1-3-229-1-1-3 |
|
|
Стоимость доставки в дробных единицах валюты платежа. Приводится в дробных единицах валюты платежа, указанной в параметре Должна указываться при передаче массива Пример: |
29-1-1-3-329-1-1-3 |
|
|
Служебный идентификатор способа доставки, заданный на стороне веб-сервиса. Должен указываться при передаче массива Пример: |
29-1-1-3-429-1-1-3 |
|
|
Сведения о расчётном адресе пользователя, которые необходимо собрать на стороне сервиса Apple Pay. Представляют собой массив с перечнем запрашиваемых сведений, в числе которых могут быть:
Пример: |
29-1-229-1 |
|
|
Высота кнопки в пикселях. Пример: |
29-1-329-1 |