yookassa_payments_flutter

Creator: coderz1093

Last updated:

Add to Cart

Description:

yookassa payments flutter

YooKassa Payments SDK #






Библиотека позволяет встроить прием платежей в мобильные приложения на Flutter и работает как дополнение к API ЮKassa.
В мобильный SDK входят готовые платежные интерфейсы (форма оплаты и всё, что с ней связано).
С помощью SDK можно получать токены для проведения оплаты с банковской карты, через Сбербанк Онлайн или из кошелька в ЮMoney.
Подключение зависимостей #

В файл pubspec.yaml добавьте зависимость и запустите pub get:

dependencies:
flutter:
sdk: flutter
yookassa_payments_flutter: ^version
copied to clipboard
или используйте команду flutter pub add yookassa_payments_flutter.

В Podfile вашего приложения добавьте ссылки на репозитории с podspecs YooKassa:

source 'https://github.com/CocoaPods/Specs.git'
source 'https://git.yoomoney.ru/scm/sdk/cocoa-pod-specs.git'
copied to clipboard


Запустите pod install --repo-update в директории рядом с Runner.xcworkspace


В Info.plist своего приложения добавьте поддержку url-схем для корректной работы mSDK с оплатой через Сбер и ЮMoney:


<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>yookassapaymentsflutter</string>
</array>
</dict>
</array>

<key>LSApplicationQueriesSchemes</key>
<array>
<string>yoomoneyauth</string>
<string>sberpay</string>
</array>
copied to clipboard
Решение проблем подключения/сборки #

pod install` завершается с ошибкой



Попробуйте команду pod update YooKassaPayments


В некоторых сложных случаях рекомендуем сбросить кэш cocoapods. Это можно сделать несколькими способам.
Вариант 1: выполнить набор команд для сброса кэша для пода YooKassaPayments и его зависимостей:
bash pod cache clean FunctionalSwift --all pod cache clean MoneyAuth --all pod cache clean ThreatMetrixAdapter --all pod cache clean YooKassaPayments --all pod cache clean YooKassaPaymentsApi --all pod cache clean YooKassaWalletApi --all pod cache clean YooMoneyCoreApi --all pod cache clean TMXProfiling --all pod cache clean TMXProfilingConnections --all
Вариант 2: Удалить полностью кэш cocoapods командой rm -rf ~/.cocoapods/repos. Обращаем ваше внимание что после этого
cocoapods будет восстанавливать свой локальный каталог некоторое время.
Далее рекомендуем выполнить flutter clean, pod clean и pod deintegrate YOUR_PROJECT_NAME.xcodeproj
для последущей чистой установки командой pod install



При сборке получили ошибку xcode no such module '__ObjC'


Откройте ios проект в Xcode, выберите target Runner, перейдите в найтройки Build Settings и выставьте флаг Build Libraries for Distribution в NO. Для project Runner проделайте тоже самое — Project Runner -> Build Settings -> установите Build Libraries for Distribution в NO.
Далее в Xcode Product -> Clean build folder.., и также очистите содержимое DerivedData

Быстрая интеграция #

Создайте TokenizationModuleInputData (понадобится ключ для клиентских приложений из личного кабинета ЮKassa). В этой модели передаются параметры платежа (валюта и сумма) и параметры платежной формы, которые увидит пользователь при оплате (способы оплаты, название магазина и описание заказа).

Пример создания TokenizationModuleInputData:
var clientApplicationKey = "<Ключ для клиентских приложений>";
var amount = Amount(value: "999.9", currency: Currency.rub);
var shopId = "<Идентификатор магазина в ЮKassa)>";
var tokenizationModuleInputData =
TokenizationModuleInputData(clientApplicationKey: clientApplicationKey,
title: "Космические объекты",
subtitle: "Комета повышенной яркости, период обращения — 112 лет",
amount: amount,
shopId: shopId,
savePaymentMethod: SavePaymentMethod.on);
copied to clipboard

Запустите процесс токенизации с кейсом .tokenization и передайте TokenizationModuleInputData.

var result = await YookassaPaymentsFlutter.tokenization(tokenizationModuleInputData);
copied to clipboard

Получите token в TokenizationResult

Пример:
var result = await YookassaPaymentsFlutter.tokenization(tokenizationModuleInputData);
if (result is SuccessTokenizationResult) {
var token = result.token;
var paymentMethodType = result.paymentMethodType;
}
copied to clipboard


Закройте модуль SDK и отправьте токен в вашу систему. Затем создайте платеж по API ЮKassa, в параметре payment_token передайте токен, полученный в SDK. Способ подтверждения при создании платежа зависит от способа оплаты, который выбрал пользователь. Он приходит вместе с токеном в paymentMethodType.


Подтверждение платежа. При необходимости система может запросить процесс подтверждения платежа, при котором пользователь подтверждает транзакцию с помощью сторонних сервисов. Плагин поддерживает два типа подтверждения платежа - 3Dsecure (при оплате банковской картой) и App2App сценарий (при оплате через SberPay). Ссылку вы получаете от бекенда Кассы после проведения платежа на шаге 4.


var clientApplicationKey = "<Ключ для клиентских приложений>";
var shopId = "<Идентификатор магазина в ЮKassa)>";

await YookassaPaymentsFlutter.confirmation(confirmationUrl, PaymentMethod.sbp, clientApplicationKey, shopId);
// обработайте результат подтверждения на следущей строке (после возврата управления)
copied to clipboard
Завершение процесса YookassaPaymentsFlutter.confirmation не несет информацию о том, что пользователь фактически подтвердил платеж (он мог его пропустить). После получения результата рекомендуем запросить статус платежа.
Доступные способы оплаты #
Сейчас в SDK доступны следующие способы оплаты:
.yooMoney — ЮMoney (платежи из кошелька или привязанной картой)
.bankCard — банковская карта (карты можно сканировать)
.sberbank — SberPay (с подтверждением через приложение Сбербанк Онлайн, если оно установленно, иначе с подтверждением по смс)
.sbp - СБП\
Настройка способов оплаты #
У вас есть возможность сконфигурировать способы оплаты.
Для этого необходимо при создании TokenizationModuleInputData в параметре tokenizationSettings передать модель типа TokenizationSettings.

Для некоторых способов оплаты нужна дополнительная настройка (см. ниже).
По умолчанию используются все доступные способы оплаты.

// Создайте пустой List<PaymentMethod>
List<PaymentMethod> paymentMethodTypes = [];

if (<Условие для банковской карты>) {
// Добавляем в paymentMethodTypes элемент `PaymentMethod.bankCard`
paymentMethodTypes.add(PaymentMethod.bankCard);
}

if (<Условие для Сбербанка Онлайн>) {
// Добавляем в paymentMethodTypes элемент `PaymentMethod.sberbank`
paymentMethodTypes.add(PaymentMethod.sberbank);
}

if (<Условие для ЮMoney>) {
// Добавляем в paymentMethodTypes элемент `PaymentMethod.yooMoney`
paymentMethodTypes.add(PaymentMethod.yooMoney);
}

if <Условие для СБП> {
// Добавляем в paymentMethodTypes элемент `.sbp`
paymentMethodTypes.insert(.sbp)
}

var settings = TokenizationSettings(PaymentMethodTypes(paymentMethodTypes));
copied to clipboard
Теперь используйте tokenizationSettings при инициализации TokenizationModuleInputData.
ЮMoney #
Для подключения способа оплаты ЮMoney необходимо:

Получить client id центра авторизации системы ЮMoney.
При создании TokenizationModuleInputData передать client id в параметре moneyAuthClientId
В TokenizationSettings передайте значение PaymentMethodTypes.yooMoney.
Получите токен.
Создайте платеж с токеном по API ЮKassa.

Как получить client id центра авторизации системы ЮMoney

Авторизуйтесь на yookassa.ru
Перейти на страницу регистрации клиентов СЦА - yookassa.ru/oauth/v2/client
Нажать Зарегистрировать
Заполнить поля:
4.1. "Название" - required поле, отображается при выдаче прав и в списке приложений.
4.2. "Описание" - optional поле, отображается у пользователя в списке приложений.
4.3. "Ссылка на сайт приложения" - optional поле, отображается у пользователя в списке приложений.
4.4. "Код подтверждения" - выбрать Передавать в Callback URL, можно указывать любое значение, например ссылку на сайт.
Выбрать доступы:
5.1. Кошелёк ЮMoney -> Просмотр
5.2. Профиль ЮMoney -> Просмотр
Нажать Зарегистрировать

Передать client id в параметре moneyAuthClientId
При создании TokenizationModuleInputData передать client id в параметре moneyAuthClientId
let moduleData = TokenizationModuleInputData(
...
moneyAuthClientId: "client_id")
copied to clipboard
Чтобы провести платеж:

При создании TokenizationModuleInputData передайте значение .yooMoney в paymentMethodTypes.
Получите токен.
Создайте платеж с токеном по API ЮKassa.

Поддержка авторизации через мобильное приложение

В TokenizationModuleInputData необходимо передавать applicationScheme – схема для возврата в приложение после успешной авторизации в ЮMoney через мобильное приложение.

Пример applicationScheme:
let moduleData = TokenizationModuleInputData(
...
applicationScheme: "examplescheme://"
copied to clipboard


В AppDelegate импортировать зависимость YooKassaPayments:
import YooKassaPayments
copied to clipboard


Добавить обработку ссылок через YKSdk в AppDelegate:


func application(
_ application: UIApplication,
open url: URL,
sourceApplication: String?,
annotation: Any
) -> Bool {
return YKSdk.shared.handleOpen(
url: url,
sourceApplication: sourceApplication
)
}

4. В `Info.plist` добавьте следующие строки:

```plistbase
<key>LSApplicationQueriesSchemes</key>
<array>
<string>yoomoneyauth</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>${BUNDLE_ID}</string>
<key>CFBundleURLSchemes</key>
<array>
<string>examplescheme</string>
</array>
</dict>
</array>
copied to clipboard
где examplescheme - схема для открытия вашего приложения, которую вы указали в applicationScheme при создании TokenizationModuleInputData. Через эту схему будет открываться ваше приложение после успешной авторизации в ЮMoney через мобильное приложение.
Банковская карта #

При создании TokenizationModuleInputData в TokenizationSettings передайте значение PaymentMethodTypes.bankCard.
Получите токен.
Создайте платеж с токеном по API ЮKassa.

SberPay #
Чтобы провести платёж:

При создании TokenizationModuleInputData в TokenizationSettings передайте значение PaymentMethodTypes.sberbank.
Получите токен.
Создайте платеж с токеном по API ЮKassa.

Для подтверждения платежа через приложение СберБанк Онлайн:


В AppDelegate импортируйте зависимость YooKassaPayments:
import YooKassaPayments
copied to clipboard


Добавьте обработку ссылок через YKSdk в AppDelegate:


func application(
_ application: UIApplication,
open url: URL,
sourceApplication: String?,
annotation: Any
) -> Bool {
return YKSdk.shared.handleOpen(
url: url,
sourceApplication: sourceApplication
)
}

3. В `Info.plist` добавьте следующие строки:

```plistbase
<key>LSApplicationQueriesSchemes</key>
<array>
<string>sberpay</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>${BUNDLE_ID}</string>
<key>CFBundleURLSchemes</key>
<array>
<string>examplescheme</string>
</array>
</dict>
</array>
copied to clipboard
где examplescheme - схема для открытия вашего приложения, которую вы указали в applicationScheme при создании TokenizationModuleInputData. Через эту схему будет открываться ваше приложение после успешной оплаты с помощью SberPay.
SBP #
С помощью SDK можно провести платеж через СБП — с подтверждением оплаты через приложение банка.
В TokenizationModuleInputData необходимо передавать applicationScheme – схема для возврата в ваше приложение после успешного подтверждения платежа в приложении банка.
Пример applicationScheme:
let moduleData = TokenizationModuleInputData(
...
applicationScheme: "examplescheme://"
copied to clipboard
Чтобы провести платёж:

При создании TokenizationModuleInputData в TokenizationSettings передайте значение PaymentMethodTypes.sbp.
Получите токен.
Создайте платеж с токеном по API ЮKassa.

Для подтверждения платежа через выбранное пользователем банковское приложение:


В AppDelegate импортируйте зависимость YooKassaPayments:
import YooKassaPayments
copied to clipboard


Добавьте обработку ссылок через YKSdk в AppDelegate:


func application(
_ application: UIApplication,
open url: URL,
sourceApplication: String?,
annotation: Any
) -> Bool {
return YKSdk.shared.handleOpen(
url: url,
sourceApplication: sourceApplication
)
}
copied to clipboard

В Info.plist добавьте следующие строки:

<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>${BUNDLE_ID}</string>
<key>CFBundleURLSchemes</key>
<array>
<string>examplescheme</string>
</array>
</dict>
</array>
copied to clipboard
где examplescheme - схема для открытия вашего приложения, которую вы указали в applicationScheme при создании TokenizationModuleInputData. Через эту схему будет открываться ваше приложение после успешной оплаты с помощью SberPay.

В Info.plist перечислить url-схемы приложений приоритетных для вас банков

SDK пользователю отображается список банков, поддерживающих оплату СБП. При выборе конкретного банка из списка произойдет переход в соответствующее банковское приложение.
Список банков в SDK сформирован на основе ответа НСПК. Он содержит более тысячи банков, и для удобства SDK в первую очередь отображает список популярных банков, которые чаще всего используют для оплаты. Для проверки факта установки приложения на телефоне мы используем системную функцию canOpenURL(:). Данная функция возвращает корректный ответ только для схем добавленных в Info.plist с ключом LSApplicationQueriesSchemes.
Поэтому для корректного отображения списка популярных банков вам необходимо внести в Info.plist их url-схемы:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>bank100000000111</string> // Сбербанк
<string>bank100000000004</string> // Тинькофф
<string>bank110000000005</string> // ВТБ
<string>bank100000000008</string> // Альфа
<string>bank100000000007</string> // Райфайзен
<string>bank100000000015</string> // Открытие
</array>
copied to clipboard
Если список не добавлять в Info.plist, SDK сразу отобразит полный список банков поддерживающих оплату СБП.

Добавьте уникальную схему в build.gradle
Для добавления уникальной схемы диплинка нужно добавить в ваш файл build.gradle в блок android.defaultConfig строку resValue "string", "ym_app_scheme", "exampleapp"

android {
defaultConfig {
resValue "string", "ym_app_scheme", "exampleapp"
}
}
copied to clipboard
Или добавить в ваш strings.xml строку вида:
<resources>
<string name="ym_app_scheme" translatable="false">exampleapp</string>
</resources>
copied to clipboard
Где exampleapp - это уникальная схема диплинка вашего приложения.

Для подтверждения платежа при оплате через СБП необходимо запустить сценарий подтверждения:

var clientApplicationKey = "<Ключ для клиентских приложений>";
var shopId = "<Идентификатор магазина в ЮKassa)>";

await YookassaPaymentsFlutter.confirmation(confirmationUrl, PaymentMethod.sbp, clientApplicationKey, shopId);
)
copied to clipboard
confirmationUrl вы получите в ответе от API ЮKassa при создании платежа; он имеет вид "https://qr.nspk.ru/id?type=&bank=&sum=&cur=&crc=&payment_id="

После того, как пользователь пройдет процесс подтверждения платежа или пропустит его будет вызван метод протокола TokenizationModuleOutput. Обработайте в нем результат подтверждения:

func didFinishConfirmation(paymentMethodType: PaymentMethodType) {
guard let result = flutterResult else { return }
DispatchQueue.main.async { [weak self] in
if let controller = yoomoneyController {
controller.dismiss(animated: true)
}
}
result("{\"paymentMethodType\": \"\(paymentMethodType.rawValue)\"}")
}
copied to clipboard
Описание публичных параметров #
TokenizationModuleInputData #

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




Параметр
Тип
Описание




clientApplicationKey
String
Ключ для клиентских приложений из личного кабинета ЮKassa


title
String
Название магазина в форме оплаты


subtitle
String
Описание заказа в форме оплаты


amount
Amount
Объект, содержащий сумму заказа и валюту


shopId
String
Идентификатор магазина в ЮKassa (раздел Организации - скопировать shopId у нужного магазина)


savePaymentMethod
SavePaymentMethod
Объект, описывающий логику того, будет ли платеж рекуррентным




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




Параметр
Тип
Описание




gatewayId
String
По умолчанию null. Используется, если у вас несколько платежных шлюзов с разными идентификаторами.


tokenizationSettings
TokenizationSettings
По умолчанию используется стандартный инициализатор со всеми способами оплаты. Параметр отвечает за настройку токенизации (способы оплаты и логотип ЮKassa).


testModeSettings
TestModeSettings
По умолчанию null. Настройки тестового режима.


cardScanning
CardScanning
По умолчанию null. Возможность сканировать банковские карты.


applePayMerchantIdentifier
String
По умолчанию null. Apple Pay merchant ID (обязательно для платежей через Apple Pay).


returnUrl
String
По умолчанию null. URL страницы (поддерживается только https), на которую надо вернуться после прохождения 3-D Secure. Необходим только при кастомной реализации 3-D Secure. Если вы используете startConfirmationProcess(confirmationUrl:paymentMethodType:), не задавайте этот параметр.


isLoggingEnabled
Bool
По умолчанию false. Включает логирование сетевых запросов.


userPhoneNumber
String
По умолчанию null. Телефонный номер пользователя.


customizationSettings
CustomizationSettings
По умолчанию используется цвет blueRibbon. Цвет основных элементов, кнопки, переключатели, поля ввода.


moneyAuthClientId
String
По умолчанию null. Идентификатор для центра авторизации в системе YooMoney.


applicationScheme
String
По умолчанию null. Схема для возврата в приложение после успешной оплаты с помощью Sberpay в приложении СберБанк Онлайн или после успешной авторизации в YooMoney через мобильное приложение.


customerId
String
По умолчанию null. Уникальный идентификатор покупателя в вашей системе, например электронная почта или номер телефона. Не более 200 символов. Используется, если вы хотите запомнить банковскую карту и отобразить ее при повторном платеже в mSdk. Убедитесь, что customerId относится к пользователю, который хочет совершить покупку. Например, используйте двухфакторную аутентификацию. Если передать неверный идентификатор, пользователь сможет выбрать для оплаты чужие банковские карты.


googlePayParameters
GooglePayParameters
По умолчанию поддерживает mastercard и visa. Настройки для платежей через Google Pay.



SavedBankCardModuleInputData #

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




Параметр
Тип
Описание




clientApplicationKey
String
Ключ для клиентских приложений из личного кабинета ЮKassa


title
String
Название магазина в форме оплаты


subtitle
String
Описание заказа в форме оплаты


paymentMethodId
String
Идентификатор сохраненного способа оплаты


amount
Amount
Объект, содержащий сумму заказа и валюту


shopId
String
Идентификатор магазина в ЮKassa (раздел Организации - скопировать shopId у нужного магазина)


savePaymentMethod
SavePaymentMethod
Объект, описывающий логику того, будет ли платеж рекуррентным




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




Параметр
Тип
Описание




gatewayId
String
По умолчанию null. Используется, если у вас несколько платежных шлюзов с разными идентификаторами.


testModeSettings
TestModeSettings
По умолчанию null. Настройки тестового режима.


returnUrl
String
По умолчанию null. URL страницы (поддерживается только https), на которую надо вернуться после прохождения 3-D Secure. Необходим только при кастомной реализации 3-D Secure. Если вы используете startConfirmationProcess(confirmationUrl:paymentMethodType:), не задавайте этот параметр.


isLoggingEnabled
Bool
По умолчанию false. Включает логирование сетевых запросов.


customizationSettings
CustomizationSettings
По умолчанию используется цвет Color.fromARGB(255, 0, 112, 240). Цвет основных элементов, кнопки, переключатели, поля ввода.



TokenizationSettings #
Можно настроить список способов оплаты и отображение логотипа ЮKassa в приложении.



Параметр
Тип
Описание




paymentMethodTypes
PaymentMethodTypes
По умолчанию PaymentMethodTypes.all. Способы оплаты, доступные пользователю в приложении.


showYooKassaLogo
Bool
По умолчанию true. Отвечает за отображение логотипа ЮKassa. По умолчанию логотип отображается.



TestModeSettings #



Параметр
Тип
Описание




paymentAuthorizationPassed
Bool
Определяет, пройдена ли платежная авторизация при оплате ЮMoney.


cardsCount
Int
Количество привязанные карт к кошельку в ЮMoney.


charge
Amount
Сумма и валюта платежа.


enablePaymentError
Bool
Определяет, будет ли платеж завершен с ошибкой.



Amount #



Параметр
Тип
Описание




value
String
Сумма платежа


currency
Currency
Валюта платежа



Currency #



Параметр
Тип
Описание




Currency.rub
String
₽ - Российский рубль


Currency.usd
String
$ - Американский доллар


Currency.eur
String
€ - Евро


Currency(“custom”)
String
Будет отображаться значение, которое передали



CustomizationSettings #



Параметр
Тип
Описание




mainScheme
Color
По умолчанию используется цвет Color.fromARGB(255, 0, 112, 240). Цвет основных элементов, кнопки, переключатели, поля ввода.



SavePaymentMethod #



Параметр
Тип
Описание




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


SavePaymentMethod.off
SavePaymentMethod
Не дает пользователю выбрать, сохранять способ оплаты или нет.


SavePaymentMethod.userSelects
SavePaymentMethod
Пользователь выбирает, сохранять платёжный метод или нет. Если метод можно сохранить, на экране контракта появится переключатель.



Настройка подтверждения платежа #
Если вы хотите использовать нашу реализацию подтверждения платежа, не закрывайте модуль SDK после получения токена.
Отправьте токен на ваш сервер и после успешной оплаты закройте модуль.
Если ваш сервер сообщил о необходимости подтверждения платежа (т.е. платёж пришёл со статусом pending), вызовите метод confirmation(confirmationUrl, paymentMethodType, clientApplicationKey, shopId).
Пример кода:
var clientApplicationKey = "<Ключ для клиентских приложений>";
var shopId = "<Идентификатор магазина в ЮKassa)>";

await YookassaPaymentsFlutter.confirmation(confirmationUrl, PaymentMethod.sbp, clientApplicationKey, shopId);
)
copied to clipboard
Если тип платежа - СБП необходимо также передать clientApplicationKey - Ключ для клиентских приложений из личного кабинета ЮKassa
Пример кода:

var clientApplicationKey = "<Ключ для клиентских приложений>";
var shopId = "<Идентификатор магазина в ЮKassa)>";

await YookassaPaymentsFlutter.confirmation(confirmationUrl, result.paymentMethodType, clientApplicationKey, shopId);
)
copied to clipboard
confirmationUrl вы получите в ответе от API ЮKassa при создании платежа; он имеет вид "https://qr.nspk.ru/id?type=&bank=&sum=&cur=&crc=&payment_id="
После того, как пользователь пройдет процесс подтверждения платежа или пропустит его будет вызван метод протокола TokenizationModuleOutput. Обработайте в нем результат подтверждения:
func didFinishConfirmation(paymentMethodType: PaymentMethodType) {
guard let result = flutterResult else { return }
DispatchQueue.main.async { [weak self] in
if let controller = yoomoneyController {
controller.dismiss(animated: true)
}
}
result("{\"paymentMethodType\": \"\(paymentMethodType.rawValue)\"}")
}
copied to clipboard
Логирование #
У вас есть возможность включить логирование всех сетевых запросов.
Для этого необходимо при создании TokenizationModuleInputData передать isLoggingEnabled: true
Тестовый режим #
У вас есть возможность запустить мобильный SDK в тестовом режиме.
Тестовый режим не выполняет никаких сетевых запросов и имитирует ответ от сервера.
Если вы хотите запустить SDK в тестовом режиме, необходимо:

Сконфигурировать объект с типом TestModeSettings(paymentAuthorizationPassed, cardsCount, charge, enablePaymentError).

var testModeSettings = TestModeSettings(true, 5, Amount(value: "999", currency: Currency.rub), false);
copied to clipboard

Передать его в TokenizationModuleInputData в параметре testModeSettings:

var tokenizationModuleInputData = TokenizationModuleInputData(
...
testModeSettings: testModeSettings);
copied to clipboard
Кастомизация интерфейса #
По умолчанию используется цвет Color.fromARGB(255, 0, 112, 240). Цвет основных элементов, кнопки, переключатели, поля ввода.

Сконфигурировать объект CustomizationSettings и передать его в параметр customizationSettings объекта TokenizationModuleInputData.

var tokenizationModuleInputData = TokenizationModuleInputData(
...
customizationSettings: const CustomizationSettings(Colors.black));
copied to clipboard
Платёж привязанной к магазину картой с дозапросом CVC/CVV #

Создайте SavedBankCardModuleInputData.

var savedBankCardModuleInputData = SavedBankCardModuleInputData(
clientApplicationKey: clientApplicationKey,
title: "Космические объекты",
subtitle: "Комета повышенной яркости, период обращения — 112 лет",
amount: amount,
savePaymentMethod: SavePaymentMethod.on,
shopId: shopId,
paymentMethodId: paymentMethodId
);
copied to clipboard

Запустите процесс с кейсом .bankCardRepeat и передайте SavedBankCardModuleInputData.

var result = await YookassaPaymentsFlutter.bankCardRepeat(savedBankCardModuleInputData);
copied to clipboard

Получите token в TokenizationResult

Лицензия #
YooKassa Payments SDK доступна под лицензией MIT. Смотрите LICENSE файл для получения дополнительной информации.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.