Яндекс деньги для андроид

Приложение для повседневных платежей, оплаты штрафов ГИБДД, онлайн-покупок с мгновенным кэшбэком 5%, переводов и контроля расходов.
🎁ДАРИМ 50 БАЛЛОВ В КОШЕЛЕК
Акция для тех, кто устанавливает приложение впервые:
✔ Скачайте приложение
✔ Войдите под своим логином
✔ Заплатите за услугу 200 ₽ или больше
✔ Баллы мгновенно придут в электронный кошелек
1 балл = 1 рубль
Есть ограничения. Подробнее — на https://promo-money.ru/mobile-app
💎 ИГРЫ ДЕНЕГ — С ВЫГОДОЙ
Новый сезон чат–квеста «Манилэндия».
Заходите в игру каждый день и получайте сундуки с подарками. Открывайте тайные сундуки, получайте баллы, кристаллы, коды от партнёров и новые космические предметы — с ними играть ещё интереснее!
Выполняйте задания и выигрывайте до 3 000 баллов (1 балл = 1 рубль), которые сразу можно потратить в интернет–магазинах.
📲 ОПЛАТА МОБИЛЬНОГО
Мгновенная оплата мобильного телефона без комиссии. Пополнить счёт МТС, Билайн, Мегафон, Tele2, Yota, Сбербанк мобайл, Тинькофф мобайл и других сотовых операторов.
🎉 СКИДКИ И БОНУСЫ
Почти каждый день появляется что-то новое. Сегодня — бесплатная чашка кофе, завтра — скидка на авиабилеты. Сохраняйте то, что понравилось и используйте, когда удобно. Покупки на Алиэкспресс, в Ozon, М.Видео и других магазинах станут выгодней.
Можно подключиться к программе лояльности и получать кэшбэк за покупки.
💰ИНВЕСТИЦИИ
Выберите один базовый актив — Яндекс, Apple или валютную пару Доллар/Рубль и получайте гарантированный доход 10% годовых или повышенную ставку —15% годовых, если через 3 месяца стоимость актива не снизится.
Начать инвестировать с «Компанией БКС» можно прямо в приложении Яндекс.Денег (в разделе «Каталог»).
🚗 ПРОВЕРКА И ОПЛАТА ШТРАФОВ
Проверьте, есть ли у вас штрафы ГИБДД, по номеру прав или СТС и оплатите их в пару кликов. Получение уведомления о штрафах с фото, настройка автоплатежа.
💸 ДЕНЕЖНЫЕ ПЕРЕВОДЫ:
✔ между кошельками на Яндексе (без комиссии)
✔ переводы с карты на карту между картами российских банков
✔ между картами и кошельками
💵 РУБЛИ + ЕЩЁ 10 ВАЛЮТ
Откройте бесплатный счёт в долларах, евро, тенге, белорусских рублях и других валютах — после идентификации. Покупайте и продавайте валюту по классному курсу — почти как на бирже. Отдельно можно подключить пакет «Мультивалютные карты», чтобы платить валютой в магазинах и снимать в банкоматах. Для этого не нужна отдельная банковская карта.
💳 ДИСКОТНЫЕ КАРТЫ
Добавляйте дисконтные и скидочные карты любимых магазинов в приложение и оплачивайте покупки. Лента, Окей, Ikea Family, Ostin, Спортмастер, Пятерочка, Metro и многие другие.
💻 ОПЛАТА ДОМАШНЕГО ИНТЕРНЕТА
Мгновенная оплата домашнего интернета. Пополнить счет Дом ру, Ростелеком, МГТС, Уфанет, Акадо, ТТК, Onlime и у других провайдеров.
👍 ДРУГИЕ ПЛАТЕЖИ:
✔ ЖКУ (в том числе, по QR c квитанции)
✔ Steam, World of Tanks и другие игры
✔ Баланс ВКонтакте и в «Одноклассниках»
✔ Взносы по кредитам любого российского банка
✔ Платежи через Google Pay
____________________________________
Лицензия Банка России № 3510-К

При попытке осуществить какой-либо платёж со своего счёта в сервисе электронных платежей «Яндекс.Деньги» (обычно это перевод средств с одного кошелька Яндекса на другой) пользователь может столкнуться с ошибкой выполнения данной транзакции, сопровождающейся сообщением о том, что «Что-то пошло не так. Платеж не прошел из за технической ошибки». Данная проблема в Yandex Money имеет регулярно повторяющийся характер, связанный с внутренними недостатками самого сервиса электронных платежей «Яндекс.Деньги». В данном материале я расскажу о сути данной дисфункции, а также поясню, как её можно исправить.

Текст с сообщением о возникшей дисфункции «Что-то пошло не так»

Что значит ошибка «Что-то пошло не так…»

Разработчики платёжного сервиса «Яндекс.Деньги» по ряду причин решили не выводить точные данные о возникшей ошибке на экран пользовательского ПК. Вместо этого пользователя обычно встречает довольно абстрактное сообщение о том, что что-либо «пошло не так», конкретика которого не разглашается.

Сама же ошибка «Что-то пошло не так, Платеж не прошел из за технической ошибки» появляется на протяжении многих лет с регулярной частотой, что говорит о довольно нестабильной и ненадёжной работе платёжного сервиса. Более того, неоднократные обращения пользователей в техническую поддержку Яндекса никак не влияют на сложившуюся конъюнктуру, а указанная ошибка «радует» своим появлением всё новых и новых пользователей.

Каковы же причины появления технической ошибки в Яндекс.Деньги? Я бы отметил следующие:

  • Сбой в функционале самого сервиса «Яндекс.Деньги» (в большинстве случаев);
  • Пользователь ввёл некорректные реквизиты (данные) платежа – например, неверно заполнены личные данные;
  • При осуществлении платежа пользователем не выполнены другие требования к платежу (например, превышен установленный сервисом максимальный лимит при переводе с одного кошелька на другой);
  • Наблюдается проблемы у ресурса, которому отправлены деньги с помощью «Я.Д.» (например, в случае онлайн-магазина или крупного сетевого сервиса, в работе которого используется какие-либо платёжные инструменты от Яндекса, например модуль «Каса»);
  • На серверах платёжного сервиса ведутся какие-либо технические работы.

    Сервис «Я.Д.» обладает довольно нестабильным функционалом

Как исправить отмену платежа в Яндекс.Деньги

Так как же избавиться от досадной дисфункции? Рекомендую выполнить следующее:

  1. Внимательно проверьте реквизиты вашего платежа. Часто встречающейся причиной технической ошибки является ввод неверных платёжных данных. Внимательно проверьте введённые вами в платеже реквизиты, и если никаких ошибок (неточностей) не выявлено, тогда идём дальше;
  2. Подождите некоторое время. Время от времени на серверах Яндекса могут возникать какие-либо случайные проблемы, а также проходить различные технические работы. Попробуйте подождать несколько часов, а потом вновь выполнить ваш платёж;
  3. Обратитесь с письмом в техническую поддержку платёжного сервиса «Яндекс.Деньги». Здесь важно понимать, что работа службы поддержки данного сервиса оставляет желать лучшего. Письмо с ответом на ваш вопрос можно задержаться на несколько дней, или вообще не прийти. При этом также бывали ситуации, что специалисты центра поддержки реагировали достаточно быстро, и за сутки возникшая проблема бывала решена. Потому стоит «попытать счастья», и обратиться в сервис поддержки по адресу:

Или использовать специальную форму для обратной связи, которую можно найти на сайте Яндекса. При заполнении формы рекомендуется указать номера счетов, при работе с которыми возникла проблема. Добавить скриншот вашей страницы с ошибкой, а также данные о том, пользуетесь ли вы веб-сервисом или мобильным приложением. После заполнения данных вы получите автоматическое письмо с номером вашего запроса в очереди, после чего вам останется дождаться ответа от компетентного специалиста.

Если же по прошествии нескольких суток ответ так и не был получен (или вы желаете поторопить события), позвоните на бесплатную телефонную линию «Яндекса» по номеру:

8 800 250‑66‑99

И попытайтесь получить квалифицированный ответ на ваш запрос.

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

Для решения возникшей проблемы, прежде всего, нужно проверить реквизиты вашего платежа на предмет наличия ошибок. Если таковых не найдено, тогда необходимо обратиться в техническую поддержку «Яндекса» за помощью, и ожидать ответа от компетентного специалиста.

App for transfers, payments, filling up a wallet, getting cashback, budget planning and more.
🎁ДАРИМ 50 БАЛЛОВ В КОШЕЛЕК
Акция для тех, кто устанавливает приложение впервые:
✔ Скачайте приложение
✔ Войдите под своим логином
✔ Заплатите за услугу 200 ₽ или больше
✔ Баллы мгновенно придут в электронный кошелек
1 балл = 1 рубль
Есть ограничения. Подробнее — на https://promo-money.ru/mobile-app
💎 ИГРЫ ДЕНЕГ — С ВЫГОДОЙ
Новый сезон чат–квеста «Манилэндия».
Заходите в игру каждый день и получайте сундуки с подарками. Открывайте тайные сундуки, получайте баллы, кристаллы, коды от партнёров и новые космические предметы — с ними играть ещё интереснее!
Выполняйте задания и выигрывайте до 3 000 баллов (1 балл = 1 рубль), которые сразу можно потратить в интернет–магазинах.
📲 ОПЛАТА МОБИЛЬНОГО
Мгновенная оплата мобильного телефона без комиссии. Пополнить счёт МТС, Билайн, Мегафон, Tele2, Yota, Сбербанк мобайл, Тинькофф мобайл и других сотовых операторов.
🎉 СКИДКИ И БОНУСЫ
Почти каждый день появляется что-то новое. Сегодня — бесплатная чашка кофе, завтра — скидка на авиабилеты. Сохраняйте то, что понравилось и используйте, когда удобно. Покупки на Алиэкспресс, в Ozon, М.Видео и других магазинах станут выгодней.
Можно подключиться к программе лояльности и получать кэшбэк за покупки.
💰ИНВЕСТИЦИИ
Выберите один базовый актив — Яндекс, Apple или валютную пару Доллар/Рубль и получайте гарантированный доход 10% годовых или повышенную ставку —15% годовых, если через 3 месяца стоимость актива не снизится.
Начать инвестировать с «Компанией БКС» можно прямо в приложении Яндекс.Денег (в разделе «Каталог»).
🚗 ПРОВЕРКА И ОПЛАТА ШТРАФОВ
Проверьте, есть ли у вас штрафы ГИБДД, по номеру прав или СТС и оплатите их в пару кликов. Получение уведомления о штрафах с фото, настройка автоплатежа.
💸 ДЕНЕЖНЫЕ ПЕРЕВОДЫ:
✔ между кошельками на Яндексе (без комиссии)
✔ переводы с карты на карту между картами российских банков
✔ между картами и кошельками
💵 РУБЛИ + ЕЩЁ 10 ВАЛЮТ
Откройте бесплатный счёт в долларах, евро, тенге, белорусских рублях и других валютах — после идентификации. Покупайте и продавайте валюту по классному курсу — почти как на бирже. Отдельно можно подключить пакет «Мультивалютные карты», чтобы платить валютой в магазинах и снимать в банкоматах. Для этого не нужна отдельная банковская карта.
💳 ДИСКОТНЫЕ КАРТЫ
Добавляйте дисконтные и скидочные карты любимых магазинов в приложение и оплачивайте покупки. Лента, Окей, Ikea Family, Ostin, Спортмастер, Пятерочка, Metro и многие другие.
💻 ОПЛАТА ДОМАШНЕГО ИНТЕРНЕТА
Мгновенная оплата домашнего интернета. Пополнить счет Дом ру, Ростелеком, МГТС, Уфанет, Акадо, ТТК, Onlime и у других провайдеров.
👍 ДРУГИЕ ПЛАТЕЖИ:
✔ ЖКУ (в том числе, по QR c квитанции)
✔ Steam, World of Tanks и другие игры
✔ Баланс ВКонтакте и в «Одноклассниках»
✔ Взносы по кредитам любого российского банка
✔ Платежи через Google Pay
____________________________________
Лицензия Банка России № 3510-К

Android Checkout mobile SDK

Эта библиотека позволяет встроить прием платежей в мобильные приложения на Android. Она работает как дополнение к API Яндекс.Кассы.

В SDK входят готовые платежные интерфейсы (форма оплаты и всё, что с ней связано).

С помощью SDK можно получать токены для проведения оплаты с банковской карты, Google Pay, Сбербанка или из кошелька в Яндекс.Деньгах.

В этом репозитории лежит код SDK и пример приложения, которое его интегрирует.

  • Код библиотеки
  • Код демо-приложения, которое интегрирует SDK

Внимание:

В следующей версии sdk библиотека appcompat будет заменена на androidx. Обратной совместимости у них нет, поэтому если вы испольуете appcompat, для обновления sdk нужно будет мигрировать ваш проект на androidx. Подробнее о том, как это сделать — https://developer.android.com/jetpack/androidx/migrate

Документация

Android Checkout mobile SDK — версия 3.1.0 (changelog)

  • Подключение зависимостей
    • Подключение через Gradle
    • Подключение YandexLoginSDK (для платежей из кошелька)
    • Настройка приложения при продаже цифровых товаров
  • Использование библиотеки
    • Токенизация
      • Запуск токенизации
      • Запуск токенизации для сохранённых банковских карт
      • Получение результата токенизации
      • Использование платежного токена
      • Тестовые параметры и отладка
      • Настройка интерфейса
    • 3DSecure
    • Сканирование банковской карты

Подключение зависимостей

Для подключения библиотеки пропишите зависимости в build.gradle модуля:

repositories { maven { url ‘https://dl.bintray.com/yandex-money/maven’ } } dependencies { implementation ‘com.yandex.money:checkout:3.1.0’ }

Подключение YandexLoginSDK

Если среди платёжных методов есть кошелёк Яндекс.Денег, необходимо подключить YandexLoginSDK. В остальных случаях этот шаг можно пропустить.

На странице создания приложения, в разделе Платформы надо выбрать Android приложение

В разделе API Яндекс.Паспорта надо добавить Доступ к логину, имени, фамилии и полу для корректного отображения имени пользователя

android { defaultConfig { manifestPlaceholders = } } repositories { mavenCentral() } dependencies { implementation «com.yandex.android:authsdk:2.1.1» }

Настройка приложения при продаже цифровых товаров

Если в вашем приложении продаются цифровые товары, нужно отключить Google Pay из списка платежных опций. Для этого добавьте в AndroidManifest следующий код:

<meta-data android:name=»com.google.android.gms.wallet.api.enabled» tools:node=»remove» />

Использование библиотеки

Вся работа с библиотекой происходит через обращения к классу ru.yandex.money.android.sdk.Checkout

Токенизация

Запуск токенизации

Для запуска процесса токенизации используется метод Checkout.createTokenizeIntent(). Метод отдаёт Intent, который нужно запустить в startActivityForResult(). После этого управление процессом перейдёт в SDK. Готовый платёжный токен можно получить в onActivityResult() (см. Получение результата токенизации)

Входные параметры метода:

  • context (Context) — контекст приложения;
  • paymentParameters (PaymentParameters) — параметры платежа;
  • testParameters (TestParameters) — параметры для дебага, см. Тестовые параметры и отладка;
  • uiParameters (UiParameters) — настройка интерфейса, см. Настройка интерфейса.

Поля PaymentParameters:

Обязательные:

  • amount (Amount) — стоимость товара. Допустимые способы оплаты могут меняться в зависимости от этого параметра;
  • title (String) — название товара;
  • subtitle (String) — описание товара;
  • clientApplicationKey (String) — ключ для клиентских приложений из личного кабинета Яндекс.Кассы (раздел Настройки — Ключи API).;
  • shopId (String) — идентификатор магазина в Яндекс.Кассе.
  • savePaymentMethod (SavePaymentMethod) — настройка сохранения платёжного метода. Сохранённые платёжные методы можно использовать для проведения рекуррентных платежей.

Необязательные:

  • paymentMethodTypes (Set of PaymentMethodType) — ограничения способов оплаты. Если оставить поле пустым или передать в него null, библиотека будет использовать все доступные способы оплаты;
  • gatewayId (String) — gatewayId для магазина;
  • customReturnUrl (String) — url страницы (поддерживается только https), на которую надо вернуться после прохождения 3ds. Должен использоваться только при при использовании своего Activity для 3ds url. При использовании Checkout.create3dsIntent() не задавайте этот параметр;
  • userPhoneNumber (String) — номер телефона пользователя. Используется для автозаполнения поля при оплате через Сбербанк Онлайн. Поддерживаемый формат данных: «+7XXXXXXXXXX».
  • googlePayParameters (GooglePayParameters) — настройки для оплаты через Google Pay.

Поля класса Amount:

  • value (BigDecimal) — сумма;
  • currency (Currency) — валюта.

Значения SavePaymentMethod:

  • ON — Сохранить платёжный метод для проведения рекуррентных платежей. Пользователю будут доступны только способы оплаты, поддерживающие сохранение. На экране контракта будет отображено сообщение о том, что платёжный метод будет сохранён.
  • OFF — Не сохранять платёжный метод.
  • USER_SELECTS — Пользователь выбирает, сохранять платёжный метод или нет. Если метод можно сохранить, на экране контракта появится переключатель.

Значения PaymentMethodType:

  • YANDEX_MONEY — оплата произведена с кошелька Яндекс.денег;
  • BANK_CARD — оплата произведена с банковской карты;
  • SBERBANK — оплата произведена через Сбербанк (SMS invoicing или Сбербанк онлайн);
  • GOOGLE_PAY — оплата произведена через Google Pay.

Поля класса GooglePayParameters:

  • allowedCardNetworks (Set of GooglePayCardNetwork) — платежные системы, через которые возможна оплата с помощью Google Pay.

Значения GooglePayCardNetwork:

  • AMEX
  • DISCOVER
  • JCB
  • MASTERCARD
  • VISA
  • INTERAC
  • OTHER

class MyActivity extends AppCompatActivity { … void timeToStartCheckout() { PaymentParameters paymentParameters = new PaymentParameters( new Amount(BigDecimal.TEN, Currency.getInstance(«RUB»)), «Название товара», «Описание товара», «live_AAAAAAAAAAAAAAAAAAAA», «12345», SavePaymentMethod.OFF ); Intent intent = Checkout.createTokenizeIntent(this, paymentParameters); startActivityForResult(intent, REQUEST_CODE_TOKENIZE); } }

Запуск токенизации для сохранённых банковских карт

Данный способ токенизации используется в случае, если есть привязанная к магазину карта и необходимо заново запросить у пользователя её csc. В остальных случаях следует использовать стандартный механизм токенизации (см. Запуск токенизации).

Для запуска процесса токенизации с платежным идентификатором используется метод Checkout.createSavedCardTokenizeIntent(). Метод отдаёт Intent, который нужно запустить в startActivityForResult(). Готовый платёжный токен можно получить в onActivityResult() (см. Получение результата токенизации)

Входные параметры метода:

  • context (Context) — контекст приложения;
  • savedBankCardPaymentParameters (SavedBankCardPaymentParameters) — параметры платежа с сохранённой банковской картой;
  • testParameters (TestParameters) — параметры для дебага, см. Тестовые параметры и отладка;
  • uiParameters (UiParameters) — настройка интерфейса, см. Настройка интерфейса.

Поля SavedBankCardPaymentParameters:

  • amount (Amount) — стоимость товара. Допустимые способы оплаты могут меняться в зависимости от этого параметра;
  • title (String) — название товара;
  • subtitle (String) — описание товара;
  • clientApplicationKey (String) — токен магазина, полученный в Яндекс.Кассе;
  • shopId (String) — идентификатор магазина в Яндекс.Кассе;
  • paymentId (String) — идентификатор платежа.
  • savePaymentMethod (SavePaymentMethod) — настройка сохранения платёжного метода. Сохранённые платёжные методы можно использовать для проведения рекуррентных платежей.

Поля класса Amount:

  • value (BigDecimal) — сумма;
  • currency (Currency) — валюта.

Значения SavePaymentMethod:

  • ON — Сохранить платёжный метод для проведения рекуррентных платежей. Пользователю будут доступны только способы оплаты, поддерживающие сохранение. На экране контракта будет отображено сообщение о том, что платёжный метод будет сохранён.
  • OFF — Не сохранять платёжный метод.
  • USER_SELECTS — Пользователь выбирает, сохранять платёжный метод или нет. Если метод можно сохранить, на экране контракта появится переключатель.

class MyActivity extends AppCompatActivity { … void timeToStartCheckout() { SavedBankCardPaymentParameters parameters = new SavedBankCardPaymentParameters( new Amount(BigDecimal.TEN, Currency.getInstance(«RUB»)), «Название товара», «Описание товара», «live_AAAAAAAAAAAAAAAAAAAA», «12345», «paymentId», SavePaymentMethod.OFF ); Intent intent = Checkout.createSavedCardTokenizeIntent(this, parameters); startActivityForResult(intent, REQUEST_CODE_TOKENIZE); } }

Получение результата токенизации

Результат токенизации будет возвращен в onActivityResult().

Возможные типы результата:

  • Activity.RESULT_OK — токенизация прошла успешно;
  • Activity.RESULT_CANCELED — пользователь отменил токенизацию;

В случае успешной токенизации SDK вернёт токен и тип платежного инструмента, с помощью которого он был получен. Для получения токена используйте метод Checkout.createTokenizationResult().

Checkout.createTokenizationResult() принимает на вход Intent, полученный в onActivityResult() при успешной токенизации. Он возвращает TokenizationResult, который состоит из:

  • paymentToken (String) — платежный токен, см. Использование платежного токена;
  • paymentMethodType (PaymentMethodType) — тип платежного средства.

Значения PaymentMethodType:

  • YANDEX_MONEY — оплата произведена с кошелька Яндекс.денег;
  • BANK_CARD — оплата произведена с банковской карты;
  • SBERBANK — оплата произведена через Сбербанк (SMS invoicing или Сбербанк онлайн);
  • GOOGLE_PAY — оплата произведена через Google Pay.

public final class MainActivity extends AppCompatActivity { … @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE_TOKENIZE) { switch (resultCode) { case RESULT_OK: // successful tokenization TokenizationResult result = Checkout.createTokenizationResult(data); … break; case RESULT_CANCELED: // user canceled tokenization … break; } } } }

Использование платежного токена

Необходимо получить у менеджера Яндекс.Кассы разрешение на проведение платежей с использованием токена. Токен одноразовый, срок действия — 1 час. Если не создать платеж в течение часа, токен нужно будет запрашивать заново.

В платежном токене содержатся данные о сценарии подтверждения платежа. После получения платежного токена Вы можете создать платеж, в параметре payment_token передайте платежный токен. Если платеж проводится с аутентификацией по 3-D Secure, используйте confirmation_url, который придет в объекте Платежа. Используйте confirmation_url для запуска 3-D Secure, см. 3DSecure.

Так же, Вы можете получить информацию о платеже

Тестовые параметры и отладка

Для отладки токенизации в вызов Checkout.createTokenizeIntent() можно добавить объект TestParameters.

Поля класса TestParameters:

  • showLogs (Boolean) — включить отображение логов SDK. Все логи начинаются с тега ‘Yandex.Checkout.SDK’
  • googlePayTestEnvironment (Boolean) — использовать тестовую среду Google Pay — все транзакции, проведенные через Google Pay, будут использовать WalletConstants.ENVIRONMENT_TEST. Имейте ввиду, что при попытке оплаты с параметром googlePayTestEnvironment=true произойдет ошибка токенизации. Подробнее см. на https://developers.google.com/pay/api/android/guides/test-and-deploy/integration-checklist#about-the-test-environment.
  • mockConfiguration (MockConfiguration) — использовать моковую конфигурацию. Если этот параметр присутствует, SDK будет работать в оффлайн режиме и генерировать тестовый токен. Этот токен нельзя использовать для платежей.

MockConfiguration В библиотеке есть тестовый режим, с помощью которого можно посмотреть, как будет выглядеть работа SDK при различных входных данных. Для работы этого режима не нужен доступ в интернет. Полученный токен нельзя использовать для оплаты.

Поля класса MockConfiguration:

  • completeWithError (Boolean) — токенизация всегда возвращает ошибку;
  • paymentAuthPassed (Boolean) — пользователь всегда авторизован;
  • linkedCardsCount (Int) — количество карт, привязанных к кошельку пользователя;
  • serviceFee (Amount) — комиссия, которая будет отображена на контракте;

class MyActivity extends AppCompatActivity { … void timeToStartCheckout() { PaymentParameters paymentParameters = new PaymentParameters(…); TestParameters testParameters = new TestParameters(true, true, new MockConfiguration(false, true, 5, new Amount(BigDecimal.TEN, Currency.getInstance(«RUB»)))); Intent intent = Checkout.createTokenizeIntent(this, paymentParameters, testParameters); startActivityForResult(intent, REQUEST_CODE_TOKENIZE); } }

Настройка интерфейса

Для настройки интерфейса SDK можно использовать объект UiParameters. Можно настроить цвета интерфейса и показ/скрытие логотипа Яндекс.Кассы.

Поля класса UiParameters:

  • showLogo (Boolean) — показать/скрыть лого Яндекс.Кассы на экране способов оплаты.
  • colorScheme (ColorScheme) — цветовая схема.

Поля класса ColorScheme:

  • primaryColor (ColorInt) — основной цвет приложения. В этот цвет будут краситься кнопки, переключатели, поля для ввода и т.д. Не рекомендуется задавать в качестве этого цвета слишком светлые цвета (они будут не видны на белом фоне) и красный цвет (он будет пересекаться с цветом ошибки).

class MyActivity extends AppCompatActivity { … void timeToStartCheckout() { PaymentParameters paymentParameters = new PaymentParameters(…); UiParameters uiParameters = new UiParameters(true, new ColorScheme(Color.rgb(0, 114, 245))); Intent intent = Checkout.createTokenizeIntent(this, paymentParameters, new TestParameters(), uiParameters); startActivityForResult(intent, REQUEST_CODE_TOKENIZE); } }

3DSecure

Для упрощения интеграции платежей по банковским картам в SDK есть Activity для обработки 3DS. Не указывайте PaymentParameters.customReturnUrl при вызове Checkout.createTokenizeIntent(), если используете это Activity.

Входные параметры для Checkout.create3dsIntent():

Результат работы 3ds можно получить в onActivityResult()

Возможные типы результата:

  • Activity.RESULT_OK — 3ds прошёл успешно;
  • Activity.RESULT_CANCELED — прохождение 3ds было отменено (например, пользователь нажал на кнопку «назад» во время процесса);
  • Checkout.RESULT_ERROR — не удалось пройти 3ds.

Запуск 3ds и получение результата

class MyActivity extends AppCompatActivity { void timeToStart3DS() { Intent intent = Checkout.create3dsIntent( this, «https://3dsurl.com/» ); startActivityForResult(intent, 1); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { switch (resultCode) { case RESULT_OK: // 3ds прошел break; case RESULT_CANCELED: // экран 3ds был закрыт break; case Checkout.RESULT_ERROR: // во время 3ds произошла какая-то ошибка (нет соединения или что-то еще) // более подробную информацию можно посмотреть в data // data.getIntExtra(Checkout.EXTRA_ERROR_CODE) — код ошибки из WebViewClient.ERROR_* или Checkout.ERROR_NOT_HTTPS_URL // data.getStringExtra(Checkout.EXTRA_ERROR_DESCRIPTION) — описание ошибки (может отсутствовать) // data.getStringExtra(Checkout.EXTRA_ERROR_FAILING_URL) — url по которому произошла ошибка (может отсутствовать) break; } } } }

Сканирование банковской карты

Создайте Activity, обрабатывающую action ru.yandex.money.android.sdk.action.SCAN_BANK_CARD

Подключение activity для сканирования

<activity android:name=».ScanBankCardActivity»> <intent-filter> <action android:name=»ru.yandex.money.android.sdk.action.SCAN_BANK_CARD»/> </intent-filter> </activity>

В этой Activity запустите Вашу библиотеку для сканирования карты. Полученный номер карты передайте c помощью Intent, как показано в примере ниже. Не забудьте поставить Activity.RESULT_OK, если сканирование прошло успешно.

Возвращение результата с activity

public class ScanBankCardActivity extends Activity { private void onScanningDone(final String cardNumber, final int expirationMonth, final int expirationYear) { final Intent result = Checkout.createScanBankCardResult(cardNumber, expirationMonth, expirationYear); setResult(Activity.RESULT_OK, result); finish(); } }

Полезные ссылки

  • Сайт Яндекс.Кассы
  • Документация мобильных SDK на сайте Яндекс.Кассы
  • Демо-приложение в Google Play
  • SDK для iOS