# Встраивание облегчённой редакции Payment Page для карточных платежей {#ru_pp_microframe_solution} статья о порядке работы с облегчённой редакцией платёжной формы Payment Page для классических карточных платежей ## Общая информация {#section_rjf_5dl_bzb .section} В некоторых случаях может быть актуальным встраивать в пользовательский интерфейс веб-сервиса максимально лаконичную платёжную формуи обеспечивать своим пользователям более быстрый и „бесшовный“ сервис по сравнению с типовыми решениями, по крайней мере для наиболее востребованных вариантов платежей. В платёжной платформе Ecommpay для таких ситуаций предусмотрена *облегчённая редакция платёжной формы Payment Page*— с минимальным количеством полей ввода и без кнопки подтверждения \(чтобы оставлять реализацию такой кнопки или иного элемента управления на стороне веб-сервиса\).  Облегчённая редакция сконфигурирована для проведения классических карточных платежей с поддержкой наиболее актуальных при этом процедур и возможностей. Для поддержки расширенных сценариев работы, как и для использования альтернативных платёжных методов, предусмотрены другие редакции Payment Page. При этом можно комбинировать применение различных редакций и подстраивать их оформление и возможности под специфику веб-сервиса.Так, для платежей с прямым использованием карт можно использовать облегчённую редакцию, для оплат с глубокой интеграцией сервисов Apple Pay и Google Pay — специализированную редакцию для этих сервисов \([подробнее](ru_pp_embedded_payment_buttons.md#)\), а для работы с другими методами — основную редакцию Payment Page.  ## Возможности {#section_ql1_ggr_c3c .section} При работе с облегчённой редакцией Payment Page можно: - Настраивать вид формы с помощью конструктора оформления, встроенного в интерфейс Dashboard \([подробнее](ru_PP__design_customisation.md#)\). - Настраивать состав отображаемых полей. В рамках такой настройки можно исключать поле для указания имени держателя карты\(если такая возможность настроена для используемого проекта\) и добавлять поля для сбора информации о пользователе\([подробнее](ru_PP_Gathering_customer_data.md)\). - Предоставлять пользователям возможности сохранения, использования и удаления реквизитов картпри работе с формой \(эта возможность по умолчанию доступна, но может быть отключена по согласованию с курирующим менеджером Ecommpay\). - Проводить классические карточные разовые оплаты\(в одну и две стадии\) и проверки действительности карт, с возможностью регистрировать при этом повторяемые оплаты — с выполнением актуальных вспомогательных процедур, включая аутентификацию 3‑D Secure, проверку адресов пользователей \(Address Verification Service\) и дополнение информации о платежах. ## Пользовательский сценарий {#section_eb2_pzd_qbc .section} Со стороны пользователя проведение оплаты с использованием облегчённой редакции Payment Page может выглядеть следующим образом.      1. Пользователь инициирует в интерфейсе веб-сервиса оплату, после чего ему предоставляется возможность указать данные актуальной карты. На этом шаге в платёжной форме могут отображаться панели выбора карты \(если ранее для этого пользователя были сохранены реквизиты какой-либо карты\), поля для ввода данных актуальной карты, а также дополнительные поля и флажок для согласия на сохранение указанных данных \(если это настроено для используемого проекта\). 2. Пользователь указывает необходимые данные и подтверждает оплату. В случае, если данные не указаны или указаны некорректно, непосредственно в платёжной форме пользователю отображаются соответствующие уведомления. 3. Пользователю отображается информация об ожидании результата оплаты. Это может выполняться как в интерфейсе платёжной формы, так и в интерфейсе веб-сервиса — с учётом того, как это настроено на стороне веб-сервиса, но без закрытия платёжной формы. 4. Если это необходимо для проведения платежа, пользователю отображаются формы для дополнительных действий и он выполняет эти действия. Такими дополнительными формами могут выступать модальное окно с полями для ввода дополнительных сведений, отображаемое в рабочей области веб-сервиса \(поверх платёжной формы\), и страница аутентификации 3‑D Secure, отображаемая в используемом элементе iframe вместо платёжной формы. 5. Пользователю отображается информация о результате оплаты. Для этого задействуются платёжная форма и, если это настроено в веб-сервисе, то и его интерфейс. ## Схема работы {#section_pkd_zml_bzb .section} При проведении оплаты с использованием облегчённой редакции платёжной формы Payment Page взаимодействие между веб-сервисом и формой строится с применением специализированных библиотек Ecommpay. В типовом случае, когда на стороне веб-сервиса обеспечивается отображение собственной страницы ожидания \(поверх интерфейса платёжной формы\), такое взаимодействие может осуществляться следующим образом. **Прим.:** Перенаправлять пользователя на отдельную страницу ожидания или самостоятельно запрашивать информацию о состоянии платежа не требуется. Информация о состоянии платежа автоматически проверяется на стороне Payment Page и передаётся к веб-сервису с помощью соответствующих [функций](ru_pp_microframe_solution.md#section_n5w_tfs_k3c).  1. Пользователь на стороне веб-сервиса инициирует оплату. 2. На стороне веб-сервиса осуществляется вызов платёжной формы Payment Page с помощью метода `EPayWidget.runEmbedded`. 3. Запрос на открытие Payment Page поступает в платёжную платформу. 4. В платёжной платформе выполняется приём запроса, с проверкой наличия обязательных параметров и корректной подписи. 5. Осуществляется подготовка к открытию платёжной формы согласно параметрам проекта и вызова. 6. Пользователю отображается облегчённая редакция платёжной формы Payment Page, встроенная в страницу веб-сервиса. 7. Пользователь указывает необходимые данные и подтверждает оплату — тем способом, который реализован на стороне веб-сервиса. 8. На стороне веб-сервиса вызывается метод `trySubmit` используемого экземпляра класса `EPayWidget` — для первичной проверки указанных сведений. 9. На стороне Payment Page выполняется первичная проверка указанных пользователем сведений. 10. От Payment Page к веб-сервису с помощью функции обратного вызова `onCheckSubmit` передаётся информация о готовности к проведению оплаты и необходимости её подтверждения. 11. На стороне веб-сервиса выполняется метод `resolve` функции `onCheckSubmit`, в результате чего к Payment Page направляется информация о подтверждении оплаты. 12. На стороне веб-сервиса выполняется функция обратного вызова `onShowLoader` для отображения пользователю страницы ожидания веб-сервиса. 13. Пользователю отображается страница ожидания веб-сервиса. 14. В платёжную платформу передаётся запрос на проведение оплаты. 15. В платёжной платформе выполняются обработка полученного запроса и его отправка в платёжную среду. 16. В платёжной среде выполняется обработка платежа. 17. От платёжной среды к платёжной платформе направляется информация о результате оплаты. 18. От платёжной платформы к Payment Page направляется информация о результате оплаты. 19. На стороне веб-сервиса выполняется функция обратного вызова `onHideLoader` для скрытия страницы ожидания веб-сервиса и отображения пользователю платёжной формы. 20. Информация о результате оплаты отображается пользователю в Payment Page. ## Подключение, настройка и тестирование {#section_msg_fqr_c3c .section} Чтобы начать работу с облегчённой редакцией платёжной формы, следует: 1. Если ранее не были решены общие организационные вопросы, касающиеся взаимодействия с Ecommpay — решить эти вопросы, подав заявку и предоставив необходимую информацию \([подробнее](ru_pp_interaction_organisation.md#)\). 2. Если ранее не были выполнены общие технические работы по интеграции Payment Page с применением специализированных библиотек — выполнить такие работы: 1. Подключить в клиентской части CSS- и JavaScript-библиотеки от Ecommpay, расположенные по адресам `https://paymentpage.ecommpay.com/shared/merchant.css` и `https://paymentpage.ecommpay.com/shared/merchant.js` соответственно. ``` {#codeblock_c31_yrr_c3c .language-xml} ``` **Внимание:** CSS- и JavaScript-библиотеки от Ecommpay должны подключаться только через сеть доставки содержимого \(Content Delivery Network, CDN\).Локальное использование этих библиотек может приводить к критичным ошибкам в работе с формой. 2. Настроить политику обеспечения безопасности контента с помощью директив Content Security Policy, указав в HTTP-заголовке `Content-Security-Policy` адреса источников, необходимых для корректной работы платёжной формы \([подробнее](ru_pp_interaction_organisation.md#section_m5x_m2v_njc)\). ``` {#codeblock_ejr_n4k_mjc} Content-Security-Policy: script-src https://paymentpage.ecommpay.com https://applepay.cdn-apple.com; style-src https://paymentpage.ecommpay.com; img-src https://applepay.cdn-apple.com; frame-src https://paymentpage.ecommpay.com https://applepay.cdn-apple.com ``` 3. Обеспечить в серверной части сбор и подписывание параметров запросов на открытие Payment Page \(автоматизировав соответствующие [алгоритмы](ru_platform_signature.md#) или используя [SDK](ru_sdk_overview.md#section_o1r_2pd_qvb)\), а также отправку подписанных данных в клиентскую часть веб-сервиса. 3. Обеспечить в клиентской части веб-сервиса технические возможности для работы с облегчённой редакцией Payment Page: 1. Возможность использования элемента для отображения формы. ``` {#codeblock_kpz_1sr_c3c .language-xml}
``` 2. Возможность вызова платёжной формы с использованием JavaScript-библиотеки от Ecommpay и метода `EPayWidget.runEmbedded` \(подробнее далее\). 3. Определение функций для обработки целевых интерфейсных событий \(подробнее далее\). 4. Если актуально, согласовать с курирующим менеджером Ecommpay состав отображаемых полей и использование настраиваемых возможностей. В рамках такой настройки могут согласовываться: - скрытие поля для указания имени держателя карты, с условием включения в каждый запрос на открытие платёжной формы параметров `customer_first_name` и `customer_last_name` \(и дальнейшим автоматическим заполнением имени держателя карты исходя из указанных в этих запросах сведений\) или с полным отсутствием сведений о держателе карты \(и возможным снижением проходимости платежей\); - отображение дополнительных полей для сбора данных о пользователях, например номеров их телефонов и адресов электронной почты \([подробнее](ru_PP_Gathering_customer_data.md)\); - предоставление пользователям возможностей сохранения, использования и удаления реквизитов картпри работе с формой \(такая возможность по умолчанию доступна, но может быть отключена\). 5. Если актуально, настроить оформление платёжной формы с помощью конструктора, встроенного в интерфейс Dashboard \([подробнее](ru_PP__design_customisation.md#)\). 6. Протестировать проведение платежей и запустить решение в работу.При этом для тестирования можно использовать тестовые проекты и номера платёжных карт \([подробнее](ru_test_cards.md)\). При возникновении вопросов о работе с платформой через облегчённую редакцию Payment Page можно обращаться к настоящей документации, а также к курирующему менеджеру и специалистам технической поддержки Ecommpay. ## Работа с функциями обратного вызова {#section_n5w_tfs_k3c .section} Использование облегчённой редакции Payment Page подразумевает работу с функциями обратного вызова, определяемыми со стороны веб-сервиса при вызове формы. Прежде всего,для корректного проведения платежей должна определяться функция `onCheckSubmit`. В дополнение к этой функции могут быть актуальны следующие: - `onShowLoader` — для отображения страницы ожидания веб-сервиса; - `onHideLoader` — для скрытия страницы ожидания веб-сервиса\(и возвращения пользователя к интерфейсу платёжной формы\); - `onPaymentSubmitResult` — для получения информации о регистрации запроса на проведение платежа; - `onPaymentFail` — для получения информации об отказе в проведении платежа; - `onPaymentSuccess` — для получения информации о проведении платежа; - `onError` — для получения информации об ошибках на стороне платёжной формы. **Прим.:** Функции `onPaymentFail` и `onPaymentSuccess` следует использовать в качестве основного способа получения информации о результате проведения платежа, в том числе для инициирования перенаправления пользователя на соответствующую страницу веб-сервиса, если для этого не используется параметр `redirect_success_url` \([подробнее](ru_pp_microframe_solution.md#table_rxs_ryx_c3c)\). Перенаправлять пользователя на отдельную страницу ожидания или самостоятельно запрашивать информацию о состоянии платежа не требуется. Информация о состоянии платежа автоматически проверяется на стороне Payment Page и передаётся к веб-сервису с помощью соответствующих функций. Помимо этого, могут определяться и другие актуальные функции, позволяющие контролировать работу пользователей с интерфейсом платёжной формы \([подробнее](ru_pp_ui_monitoring.md#)\). Определение актуальных функций в клиентской части веб-сервиса может выглядеть следующим образом. ``` {#codeblock_psg_fqr_c3c .language-javascript} const checkoutButtonsWidget = EPayWidget.runEmbedded({ ...configObj, // Определение функции для отображения страницы ожидания веб-сервиса onShowLoader: merchantPage.showMerchantLoader, // Определение функции для скрытия страницы ожидания веб-сервиса onHideLoader: merchantPage.hideMerchantLoader, // Определение функции для получения информации о проведении платежа и последующего перенаправления пользователя onPaymentSuccess: function (data) { merchantPage.redirectToSuccessPage(); }, // Определение функции для получения информации об отказе в проведении платежа и отображения пользователю соответствующего сообщения onPaymentFail: function (data) { merchantPage.showPaymentFailMessage(); }, // Определение функции для проверки возможности оплаты onCheckSubmit: async function (data, resolve, reject) { try { // Проверка корректности заказа if (!await merchantPage.validateCheckoutPage()) { return reject() // Отклонение оплаты из-за некорректного состава заказа } if (!await merchantAPI.validateCartAmount(checkoutButtonsWidget.configObj.payment_amount, checkoutButtonsWidget.configObj.payment_currency)) { return reject() // Отклонение оплаты из-за ошибок с суммой и валютой платежа } // Регистрация заказа на стороне веб-сервиса const { orderId, additionalParameters } = await merchantAPI.placeOrder(merchantPage.cart, merchantPage.customerInfo); if (!orderId) { return reject() // Отклонение оплаты из-за ошибок с регистрацией заказа } // Подтверждение оплаты со стороны веб-сервиса с указанием дополнительных сведений return resolve({ additional_parameters: additionalParameters}); } catch (error) { console.error('onCheckSubmit error:', error); return reject(); } }, // Определение функции для получения информации о регистрации запроса в платёжной платформе onPaymentSubmitResult: async function (data) { await merchantAPI.saveTransactionId(orderId, data.request_id) }, // Определение функции для отображения пользователю сообщений об ошибках onError: async function ({ messages }) { await merchantAPI.log("Payment error occurred " + messages) if (messages.includes("invalid payment_id")) { merchantPage.redirectToContactSupportPage(); } }, }, 'POST'); // Вызов функции trySubmit при подтверждении пользователем оплаты (щелчком по кнопке) document.getElementById('placeOrderBtn').addEventListener('click', function() { checkoutButtonsWidget.trySubmit(); }); ``` ## Использование {#section_frr_lrr_c3c .section} В целом для проведения платежа с использованием облегчённой редакции платёжной формы со стороны веб-сервиса необходимо следующее. 1. Сформировать запрос на открытие платёжной формы. В таком запросе должен указываться JavaScript-объект `configObj` [с параметрами вызова формы](ru_pp_microframe_solution.md#section_qgm_ywl_bzb) и [с подписью](ru_platform_signature.md#) к ним. К базовому минимуму параметров, обязательному для проведения платежа, в этом случае относятся: - `target_element` — идентификатор тогоэлемента iframe, в котором необходимо открыть платёжную форму; - `payment_id` — идентификатор платежа, уникальный в рамках проекта; - `payment_amount` — сумма платежав дробных единицах валюты; - `payment_currency` — буквенный код валюты платежав формате ISO-4217 alpha-3; - `project_id` — идентификатор проекта, полученный от Ecommpay при интеграции; - `merchant_domain` — доменное имя веб-сервиса, в котором необходимо открыть платёжную форму; - `force_payment_method` — служебный код платёжного метода, который следует использовать в качестве предварительно выбранного, со значением `card`; - `mode` — указатель режима работы Payment Page со значением `purchase` для любой из разовых оплат или `card_verify` для проверки действительности карты; - `signature` — подпись запроса, составленная после указания всех целевых параметров. ``` {#codeblock_nhw_3tr_c3c .language-json} const configObj = { target_element: "widget-container-card-embedded", payment_id: "X03937", payment_amount: 1960, payment_currency: "EUR", project_id: 22, merchant_domain: "cosmoshop.jupiter.example", force_payment_method : "card", signature: "0ByxpQ30hfTIjaCCsVIwVyabcDEF123" }; ``` 2. Вызвать платёжную форму с помощью метода `EPayWidget.runEmbedded`. При вызове платёжной формы необходимо указать JavaScript-объект `configObj` и определить целевые функции обратного вызова, такие как `onCheckSubmit`, `onShowLoader` и `onHideLoader` \(подробнее далее\). 3. При подтверждении пользователем оплаты, например при щелчке по кнопке подтверждения, вызвать метод `trySubmit` используемого экземпляра класса `EPayWidget`. В результате вызова этого метода на стороне Payment Page выполняется первичная проверка указанных пользователем сведений, после чего автоматически выполняется одна из функций: - `onCheckSubmit` — при отсутствии ошибок, без предоставления информации в объекте `data`; - `onValidationError` — при наличии ошибок, с указанием в объекте `data` информации об этих ошибках. ``` {#codeblock_nsp_4rw_c3c .language-json} "{\"message\":\"epframe.embedded_mode.validation_error\",\"data\":{\"pan\":\"Invalid card number.\",\"month_year\":\"Expiry date required.\",\"cvv\":\"CVV2/CVC2 required.\",\"card_holder\":\"Cardholder name required.\"},\"guid\":\"288d-f68c-e53d-3890\"}" ``` 4. Проверить сведения об оплате\(включая сумму и валюту платежа, а также другие обязательные сведения\) и обеспечить вызов актуального метода для функции `onCheckSubmit`: - `resolve` — для подтверждения оплаты\(при отсутствии ошибок\); - `reject` — для отклонения оплаты\(при наличии ошибок\). Вместе с подтверждением платежа на этом этапе можно указать в объекте `additional_parameters` дополнительные сведения о пользователе, если они не были переданы при вызове платёжной формы или их необходимо изменить, а также адреса веб-сервиса для автоматического итогового перенаправления пользователя при проведении и отклонении оплаты. ``` {#codeblock_rv4_xyr_c3c .language-json} { // Общие сведения о пользователе 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" } ``` ## Используемые параметры {#section_qgm_ywl_bzb .section} При вызове облегчённой редакции платёжной формы могут использоваться следующие параметры. |Параметр|Описание| |--------|--------| |`avs_post_code` string, optional |Почтовый индекс пользователя, используемый для проверки [Address Verification Service](ru_PP_avs.md). Пример: `BT99 0ZZ` | |`avs_street_address` string, optional |Адрес пользователя, используемый для проверки [Address Verification Service](ru_PP_avs.md). Включает в себя номер дома и название улицы. Пример: `14A Cosmos Crescent, Flat 25` | |`billing_address` string, optional |Номер дома\(с обозначением корпуса или строения, где это актуально\) и название улицы в расчётном адресе пользователя. Пример: `14A Cosmos Crescent, Flat 25` | |`billing_city` string, optional |Название города в расчётном адресе пользователя. Пример: `Belfast` | |`billing_country` string, optional |Код страны в расчётном адресе пользователя. Указывается в формате ISO 3166-1 alpha-2. Пример: `GB` | |`billing_postal` string, optional |Почтовый индекс в расчётном адресе пользователя. Пример: `BT99 0ZZ` | |`customer_address` string, optional |Название улицы и номер дома\(с обозначением корпуса или строения, где это актуально\) в адресе проживания пользователя, с использованием разделительной запятой. Представляет собой строку длиной не более 255 символов. Пример: `14A Cosmos Crescent, Flat 25` | |`customer_city` string, optional |Название города \(или иного населённого пункта\) в адресе проживания пользователя. Представляет собой строку длиной не более 255 символов. Пример: `Belfast` | |`customer_country` string, optional |Код страны в адресе проживания пользователя. Указывается в формате ISO 3166-1 alpha-2. Пример: `GB` | |`customer_email` string, optional |Адрес электронной почты пользователя. Представляет собой строку длиной не более 255 символов, состоящую из локального адреса и доменного имени, разделённых символом `@`. Пример: `mcdonald@space.com` | |`customer_first_name` string, optional |Имя пользователя. Представляет собой строку длиной не более 255 символов. Пример: `Arthur` | |`customer_id` string, optional |Идентификатор пользователя в рамках проекта\(указанного в значении параметра `project_id`\). Должен быть однозначно сопоставим с учётной записью пользователя в веб-сервисе, в том числе для корректной работы с рисками и борьбы с мошенническими операциями. Пример: `customer_112` | |`customer_last_name` string, optional |Фамилия пользователя. Представляет собой строку длиной не более 255 символов. Пример: `McDonald` | |`customer_phone` string, optional |Номер телефона пользователя. В общем случае должен быть полным, с кодом страны, хотя в отдельных случаях допустимо указание и без кода страны. Должен содержать не менее 4 и не более 24 цифр. Пример: `447700900123` | |`force_payment_method` string, required |В рамках проведения платежей с использованием облегчённой редакции платёжной формы должен принимать значение `card`. Пример: `card` | |`merchant_domain` string, required |Доменное имя веб-сервиса, в котором необходимо открыть платёжную форму. Пример: `cosmoshop.jupiter.example` | |`mode` string, required |Указатель режима работы Payment Page. В рамках проведения платежей с использованием кнопок должен принимать значение `purchase` для проведения оплаты или `card_verify` для проверки действительности карты. Пример: `purchase` | |`operation_type` string, optional |Указатель варианта проведения оплаты — в одну или две стадии. Актуален в тех случаях, когда необходимо использовать вариант, отличный от заданного по умолчанию.Может принимать одно из следующих значений: - `sale` — для оплаты в одну стадию\(с незамедлительным списанием средств; [подробнее](ru_pp_purchase.md)\); - `auth` — для оплаты в две стадии\(с предварительной блокировкой и последующим списанием средств; [подробнее](ru_pp_purchase_auth.md)\). Пример: `auth` | |`payment_amount` integer, required |Сумма платежа. Приводится в дробных единицах валюты без десятичного разделителя. Пример: `1960`\(для суммы 19,60 при использовании валюты с двумя дробными разрядами\) | |`payment_currency` string, required |Трёхбуквенный код валюты платежа. Указывается в формате ISO-4217 alpha-3, согласно [справочнику](ru_currency_codes.md). Пример: `EUR` | |`payment_id` string, required |Идентификатор платежа. Должен задаваться на стороне веб-сервиса и представлять собой строку длиной не более 255 символов с обеспечением регистронезависимости и уникальности в рамках используемого проекта. Пример: `X03936` | |`project_id` integer, required |Идентификатор проектавзаимодействия веб-сервиса с платёжной платформой, полученный от Ecommpayпри интеграции \([подробнее](ru_glossary.md#)\). Пример: `22` | |`recurring` string, optional |Сведения о регистрируемой повторяемой оплате \([подробнее](ru_pp_recurring.md)\). При использовании JavaScript-библиотеки Ecommpay могут представлять собой JSON-объект, включающий в себя различные сведения из числа допустимых. ``` {#codeblock_st1_lbb_j3c .language-json} { "register": true, "type": "U" } ``` | |`redirect_fail_mode` string, optional |Способ открытия страницы веб-сервиса, адрес которой указан в параметре `redirect_fail_url`, при отклонении оплаты. Может принимать одно из следующих значений: - `iframe` — открытие страницы втом же объекте iframe, в котором открыта форма; - `parent_page` — открытие страницы в используемой вкладке; - `blank_page` — открытие страницы в новой вкладке. Пример: `parent_page` | |`redirect_fail_url` string, optional |Адрес дляавтоматического итогового перенаправления пользователя при отклонении оплаты. Пример: `https://cosmoshop.jupiter.example/pages/failed` | |`redirect_success_mode` string, optional |Способ открытия страницы веб-сервиса, адрес которой указан в параметре `redirect_success_url`, при проведении оплаты. Может принимать одно из следующих значений: - `iframe` — открытие страницы втом же объекте iframe, в котором открыта форма; - `parent_page` — открытие страницы в используемой вкладке; - `blank_page` — открытие страницы в новой вкладке. Пример: `parent_page` | |`redirect_success_url` string, optional |Адрес дляавтоматического итогового перенаправления пользователя при проведении оплаты. Пример: `https://cosmoshop.jupiter.example/pages/success` | |`signature` string, required |Цифровая подпись к параметрам запроса. Должна составляться после указания всех целевых параметров в соответствии с заданным алгоритмом \([подробнее](ru_platform_signature.md#)\). | |`style_id` integer, optional |Идентификатор стиля оформления платёжной формы. Может использоваться при работе с различными стилями оформления Payment Page \([подробнее](ru_PP__design_customisation.md#)\). Пример: `6123` | |`target_element` string, required |Идентификатор элемента iframe \(в рамках HTML-страницы веб-сервиса\), в котором необходимо открыть платёжную форму. Пример: `widget-container-card-embedded` | ## Дополнительные материалы {#section_j5w_yck_k3c .section} При работе с платёжной платформой через облегчённую редакцию платёжной формы Payment Page могут быть полезны следующие материалы: - [Индивидуальное оформление](ru_PP__design_customisation.md#)— статья о работе с конструктором оформления Payment Page. - [Сбор данных о пользователях](ru_PP_Gathering_customer_data.md)— статья о возможности получать и использовать дополнительную информацию о пользователях. - [Повторные попытки проведения платежей](ru_PP_Try_Again.md)— статья о возможности предоставлять пользователям дополнительные попытки проведения платежей. - [Работа с подписью к данным](ru_platform_signature.md#)— статья о порядке создания и проверки подписи в программных запросах и оповещениях при взаимодействии с платёжной платформой. - [SDK для работы с подписью](ru_sdk_overview.md#section_o1r_2pd_qvb)— материалы о порядке применения SDK для работы с подписью. - [Контроль интерфейсных событий](ru_pp_ui_monitoring.md#)— статья о возможностях получать и обрабатывать информацию о различных интерфейсных событиях, связанных с платёжной формой и действиями пользователя в ней. - [Работа с информацией о платежах](ru_platform_payment_information.md)— раздел со статьями о способах получения информации, которая может быть актуальна для контроля проведения платежей и анализа результатов при работе с платёжной платформой. - [Номера тестовых карт](ru_test_cards.md)— статья об актуальных номерах карт для тестирования различных сценариев проведения платежей. **На уровень выше:**[Payment Page](ru_PP_about.md)