# Выбор валюты пользователем {#ru_pp_currency_choice} статья о возможности предоставлять пользователям выбор удобных для них валют непосредственно в платёжной форме ## Общая информация {#section_xzd_tn1_4gc .section} В некоторых случаях может быть актуальным предоставлять пользователям выбор удобных для них валют непосредственно в платёжной форме. При работе с Payment Page такая возможность может „бесшовно“ встраиваться в сценарии проведения разных видов платежей, с поддержкой широкого спектра допустимых валют, гибкой настройкой и автоматической конвертацией в тех случаях, когда она необходима. ![](images/ecommpay/ru_pp_conversion_1.svg "Выбор из общего списка валют для карты") ![](images/ecommpay/ru_pp_conversion_2.svg "Выбор из релевантных валют для карты") ![](images/ecommpay/ru_pp_conversion_3.svg "Выбор из списка валют для сервиса Google Pay") В пользовательских сценариях при подключении такой возможности предварительно выбранной всегда выступает валюта, указанная в запросе на открытие Payment Page, и вместе с тем появляется возможность выбрать любую из других доступных валют, увидеть актуальную сумму платежа в этой валюте и подтвердить платёж с учётом выбора. Выбор валюты в платёжной форме поддерживается, прежде всего, длянаиболее популярных методов с глобальным покрытием — классических карточных платежейи платежей с использованием методов Apple Pay и Google Pay.С вопросами о подключении, настройке и использовании этой функциональности, как и с предложениями о её развитии, можно обращаться к курирующему менеджеру Ecommpay. ## Особенности и ограничения {#section_ydx_kf3_hhc .section} При подключении и использовании выбора валют в платёжной форме стоит учитывать следующие особенности и ограничения: - *Методы с возможностью выбора валют должны быть доступны к прямому выбору в платёжной форме.* В частности, в отношении методов Apple Pay и Google Pay это значит, что кнопки выбора этих методов должны располагаться в Payment Page непосредственно на странице выбора метода, а не на панели указания данных карты \(когда они выступают в интерфейсе как дополнительные варианты к оплате с прямым использованием карты и не могут быть выбраны независимо от классических карточных платежей\). Когда это условие соблюдается, метод может быть выбран предварительно, через указание его кода в запросе, или непосредственно на форме пользователем, а после выбора метода обеспечивается возможность выбора валюты. Иначе выбор валюты для таких методов становится недоступным. - *Валюта может выбираться только из доступных пользователю, и доступностью валют можно управлять.* В базовом случае к доступным относятся те валюты, которые поддерживаются в качестве операционных для используемого проекта и по которым может выполняться конвертация в рамках конкретного сеанса работы платёжной формы. Вместе с тем, для оплат с прямым использованием платёжных карт этот набор валют можно ограничивать. В платформе поддерживаются следующие варианты работы: - Выбор из всех доступных валют. Этот вариант поддерживается для классических карточных платежей и платежей с использованием методов Apple Pay и Google Pay. - Выбор из валют, релевантных для страны выпуска указанной карты \(исходя из её номера\), либо, при их недоступности, выбор из всех остальных доступных валют. Так, при указании пользователем номера карты, выпущенной в Бразилии, и поддержке бразильского реала в качестве операционной валюты для используемого проекта, в числе доступных для выбора могут отображаться исходная валюта запроса и бразильский реал. Этот вариант поддерживается только для классических карточных платежей, и при его использовании список доступных валют отображается пользователю только после указания номера карты. - Выбор из валют, релевантных для страны выпуска указанной карты \(исходя из её номера\), либо, при их недоступности, исключение возможности выбора и использование исходной валюты запроса. Так, при указании пользователем номера карты, выпущенной в Бразилии, и отсутствии поддержки бразильского реала в качестве операционной валюты для используемого проекта, в числе доступных для выбора может отображаться только указанная в исходном запросе валюта. Этот вариант поддерживается только для классических карточных платежей, и при его использовании список доступных валют отображается пользователю только после указания номера карты. Со стороны веб-сервиса для каждого рабочего проекта может быть согласован своей перечень доступных валют и один из вариантов ограничения доступности этих валют для карточных платежей. В результате перечень доступных валют может адаптироваться под специфику конкретного проекта, платёжного метода и платёжного инструмента. - *Валютами баланса могут выступать доллары, евро и фунты стерлингов.* Если пользователи выбирают для оплат доллары США, евро или фунты стерлингов\(и при этом настроены соответствующие балансы и оплаты проводятся в выбранных валютах\), средства зачисляются на балансы в этих же валютах. В остальных случаях зачисления выполняются в долларах США. - *Для конвертации используются валютные курсы, устанавливаемые Ecommpay.* Эти курсы динамически определяются на стороне Ecommpay в соответствии с рыночной информацией от специализированных партнёрских сервисов.Для контроля фактически применённых курсов можно использовать различные интерфейсы платёжной платформы \([подробнее](ru_platform_payment_information_overview.md)\). Также с вопросами о курсах и порядке их применения можно обращаться к курирующему менеджеру Ecommpay. ## Схема работы {#section_sm4_sf3_hhc .section} После подключения этой функциональности для проведения платежей с выбором валюты пользователем со стороны веб-сервиса не требуется никаких дополнительных действий\(по отношению к основным действиям, связанным с проведением платежей соответствующего типа\). Так, схема проведения оплаты в одну стадию с выбором пользователем валюты выглядит следующим образом. ![](images/ru_pp_uml_conversion.svg) 1. От Payment Page к платёжной платформе направляется запрос на получение необходимой для конвертации информации\(о доступных валютах и курсах обмена\). 2. На стороне платёжной платформы выполняется обработка запроса. 3. От платёжной платформы к Payment Page передаётся необходимая для конвертации информация. 4. В платёжной форме Payment Page отображается список доступных валют. 5. Пользователь выбирает валюту и указывает необходимые сведения. 6. От Payment Page к платёжной платформе направляется запрос на оплатус учётом валюты, выбранной пользователем. В случаях, когда валюта, выбранная пользователем, отличается от исходно указанной в запросе, в оповещениях о результатах платежей может передаваться\(когда это настроено\) объект `sum_customer` со следующими параметрами:. - `amount` — сумма операции в дробных единицах пользовательской валюты; - `currency` — буквенный код пользовательской валюты в формате ISO-4217 alpha-3. Эта информация дополняет базовые сведения о суммах и валютах, которые передаются в объекте `operation`: - `sum_initial` — сумма и валюта, указанные в исходном запросе; - `sum_converted` — сумма и валюта, фактически использованные для выполнения операции. В следующем примере в оповещении содержится информация о том, что при проведении оплаты в размере `10,00 USD` в качестве пользовательской была выбрана валюта `BRL`, в результате чего была выполнена конвертация в `57,60 BRL`и сумма, фактически оплаченная пользователем, составила `57,60 BRL`. ``` {#codeblock_c1c_vvj_hhc .language-json} { "payment":{ "method":"card", "sum":{ "amount":1000, // сумма платежа в запрошенной операционной валюте "currency":"USD" // код запрошенной операционной валюты }, "id":"11006", "type":"purchase", "status":"success", "date":"2022-06-23T13:32:09+0000", "description":"" }, "customer":{ "id":"12" }, "sum_customer":{ "amount":5760, // сумма в пользовательской валюте "currency":"BRL" // код пользовательской валюты }, "account":{ "number":"541333******0019" }, "project_id":42, "operation":{ "created_date":"2022-06-23T13:32:02+0000", "request_id":"a23962a836e8e4-db4f1981d9-0006", "sum_initial":{ "amount":1000, // сумма операции в запрошенной операционной валюте "currency":"USD" // код запрошенной операционной валюты }, "sum_converted":{ "amount":5760, // сумма операции в фактической операционной валюте "currency":"BRL" // код фактической операционной валюты }, "code":"0", "message":"Success", "eci":"05", "provider":{ "id":6, "payment_id":"1629803", "auth_code":"563253", "endpoint_id":6, "date":"2022-06-23T10:32:09+0000" }, "id":682400942, "type":"sale", "status":"success", "date":"2022-06-23T13:32:09+0000" }, "signature":"BsGd0vcBQjd+aFl8ehEPRjf/eQUABow+VO+/xSG+lqKo6xHQ==" } ``` ## Подключение {#section_sv5_wvj_hhc .section} Чтобы подключить возможность проведения платежей с выбором валют в платёжной форме,со стороны мерчанта необходимо: 1. Согласовать с курирующим менеджером Ecommpay подключение этой функциональности и ключевые аспекты её настройки и запуска, включая: - проекты, методы и валюты, для которых актуальна эта функциональность; - необходимость динамической фильтрации доступных для выбора валют исходя из информации о странах выпуска используемых платёжных карт; - необходимость тестирования перед запуском в работу. 2. Если была согласована необходимость тестирования, получить от специалистов Ecommpay уведомление о готовности к тестированию, проверить работу платёжной формы с использованием этой возможности и сообщить о готовности к запуску. 3. Получить от специалистов Ecommpay уведомление о подключении возможности. **На уровень выше:**[Вспомогательные процедуры и дополнительные возможности](ru_PP_Additional.md)