YooKassa Payments SDK
Библиотека позволяет встроить прием платежей в мобильные приложения на Flutter и работает как дополнение к API ЮKassa.
В мобильный SDK входят готовые платежные интерфейсы (форма оплаты и всё, что с ней связано).
С помощью SDK можно получать токены для проведения оплаты с банковской карты, через Сбербанк Онлайн или из кошелька в ЮMoney.
Подключение зависимостей
- В файл
pubspec.yaml
добавьте зависимость и запуститеpub get
:
dependencies:
flutter:
sdk: flutter
yookassa_payments_flutter: ^version
или используйте команду 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'
-
Запустите
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>
Решение проблем подключения/сборки
- 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
. Для projectRunner
проделайте тоже самое — 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);
- Запустите процесс токенизации с кейсом
.tokenization
и передайтеTokenizationModuleInputData
.
var result = await YookassaPaymentsFlutter.tokenization(tokenizationModuleInputData);
- Получите token в
TokenizationResult
Пример:
var result = await YookassaPaymentsFlutter.tokenization(tokenizationModuleInputData);
if (result is SuccessTokenizationResult) {
var token = result.token;
var paymentMethodType = result.paymentMethodType;
}
-
Закройте модуль SDK и отправьте токен в вашу систему. Затем создайте платеж по API ЮKassa, в параметре
payment_token
передайте токен, полученный в SDK. Способ подтверждения при создании платежа зависит от способа оплаты, который выбрал пользователь. Он приходит вместе с токеном вpaymentMethodType
. -
Подтверждение платежа. При необходимости система может запросить процесс подтверждения платежа, при котором пользователь подтверждает транзакцию с помощью сторонних сервисов. Плагин поддерживает два типа подтверждения платежа - 3Dsecure (при оплате банковской картой) и App2App сценарий (при оплате через SberPay). Ссылку вы получаете от бекенда Кассы после проведения платежа на шаге 4.
var clientApplicationKey = "<Ключ для клиентских приложений>";
var shopId = "<Идентификатор магазина в ЮKassa)>";
await YookassaPaymentsFlutter.confirmation(confirmationUrl, PaymentMethod.sbp, clientApplicationKey, shopId);
// обработайте результат подтверждения на следущей строке (после возврата управления)
Завершение процесса 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));
Теперь используйте 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")
Чтобы провести платеж:
- При создании
TokenizationModuleInputData
передайте значение.yooMoney
вpaymentMethodTypes.
- Получите токен.
- Создайте платеж с токеном по API ЮKassa.
Поддержка авторизации через мобильное приложение
- В
TokenizationModuleInputData
необходимо передаватьapplicationScheme
– схема для возврата в приложение после успешной авторизации вЮMoney
через мобильное приложение.
Пример applicationScheme
:
let moduleData = TokenizationModuleInputData(
...
applicationScheme: "examplescheme://"
-
В
AppDelegate
импортировать зависимостьYooKassaPayments
:import YooKassaPayments
-
Добавить обработку ссылок через
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>
где examplescheme
- схема для открытия вашего приложения, которую вы указали в applicationScheme
при создании TokenizationModuleInputData
. Через эту схему будет открываться ваше приложение после успешной авторизации в ЮMoney
через мобильное приложение.
Банковская карта
- При создании
TokenizationModuleInputData
вTokenizationSettings
передайте значениеPaymentMethodTypes.bankCard
. - Получите токен.
- Создайте платеж с токеном по API ЮKassa.
SberPay
Чтобы провести платёж:
- При создании
TokenizationModuleInputData
вTokenizationSettings
передайте значениеPaymentMethodTypes.sberbank
. - Получите токен.
- Создайте платеж с токеном по API ЮKassa.
Для подтверждения платежа через приложение СберБанк Онлайн:
-
В
AppDelegate
импортируйте зависимостьYooKassaPayments
:import YooKassaPayments
-
Добавьте обработку ссылок через
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>
где examplescheme
- схема для открытия вашего приложения, которую вы указали в applicationScheme
при создании TokenizationModuleInputData
. Через эту схему будет открываться ваше приложение после успешной оплаты с помощью SberPay
.
SBP
С помощью SDK можно провести платеж через СБП — с подтверждением оплаты через приложение банка.
В TokenizationModuleInputData
необходимо передавать applicationScheme
– схема для возврата в ваше приложение после успешного подтверждения платежа в приложении банка.
Пример applicationScheme
:
let moduleData = TokenizationModuleInputData(
...
applicationScheme: "examplescheme://"
Чтобы провести платёж:
- При создании
TokenizationModuleInputData
вTokenizationSettings
передайте значениеPaymentMethodTypes.sbp
. - Получите токен.
- Создайте платеж с токеном по API ЮKassa.
Для подтверждения платежа через выбранное пользователем банковское приложение:
-
В
AppDelegate
импортируйте зависимостьYooKassaPayments
:import YooKassaPayments
-
Добавьте обработку ссылок через
YKSdk
вAppDelegate
:
func application(
_ application: UIApplication,
open url: URL,
sourceApplication: String?,
annotation: Any
) -> Bool {
return YKSdk.shared.handleOpen(
url: url,
sourceApplication: sourceApplication
)
}
- В
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>
где 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>
Если список не добавлять в Info.plist
, SDK сразу отобразит полный список банков поддерживающих оплату СБП
.
- Добавьте уникальную схему в
build.gradle
Для добавления уникальной схемы диплинка нужно добавить в ваш файлbuild.gradle
в блок android.defaultConfig строкуresValue "string", "ym_app_scheme", "exampleapp"
android {
defaultConfig {
resValue "string", "ym_app_scheme", "exampleapp"
}
}
Или добавить в ваш strings.xml строку вида:
<resources>
<string name="ym_app_scheme" translatable="false">exampleapp</string>
</resources>
Где exampleapp
- это уникальная схема диплинка вашего приложения.
- Для подтверждения платежа при оплате через СБП необходимо запустить сценарий подтверждения:
var clientApplicationKey = "<Ключ для клиентских приложений>";
var shopId = "<Идентификатор магазина в ЮKassa)>";
await YookassaPaymentsFlutter.confirmation(confirmationUrl, PaymentMethod.sbp, clientApplicationKey, shopId);
)
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)\"}")
}
Описание публичных параметров
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);
)
Если тип платежа - СБП необходимо также передать clientApplicationKey - Ключ для клиентских приложений из личного кабинета ЮKassa
Пример кода:
var clientApplicationKey = "<Ключ для клиентских приложений>";
var shopId = "<Идентификатор магазина в ЮKassa)>";
await YookassaPaymentsFlutter.confirmation(confirmationUrl, result.paymentMethodType, clientApplicationKey, shopId);
)
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)\"}")
}
Логирование
У вас есть возможность включить логирование всех сетевых запросов.
Для этого необходимо при создании TokenizationModuleInputData
передать isLoggingEnabled: true
Тестовый режим
У вас есть возможность запустить мобильный SDK в тестовом режиме.
Тестовый режим не выполняет никаких сетевых запросов и имитирует ответ от сервера.
Если вы хотите запустить SDK в тестовом режиме, необходимо:
- Сконфигурировать объект с типом
TestModeSettings(paymentAuthorizationPassed, cardsCount, charge, enablePaymentError)
.
var testModeSettings = TestModeSettings(true, 5, Amount(value: "999", currency: Currency.rub), false);
- Передать его в
TokenizationModuleInputData
в параметреtestModeSettings:
var tokenizationModuleInputData = TokenizationModuleInputData(
...
testModeSettings: testModeSettings);
Кастомизация интерфейса
По умолчанию используется цвет Color.fromARGB(255, 0, 112, 240). Цвет основных элементов, кнопки, переключатели, поля ввода.
- Сконфигурировать объект
CustomizationSettings
и передать его в параметрcustomizationSettings
объектаTokenizationModuleInputData
.
var tokenizationModuleInputData = TokenizationModuleInputData(
...
customizationSettings: const CustomizationSettings(Colors.black));
Платёж привязанной к магазину картой с дозапросом CVC/CVV
- Создайте
SavedBankCardModuleInputData
.
var savedBankCardModuleInputData = SavedBankCardModuleInputData(
clientApplicationKey: clientApplicationKey,
title: "Космические объекты",
subtitle: "Комета повышенной яркости, период обращения — 112 лет",
amount: amount,
savePaymentMethod: SavePaymentMethod.on,
shopId: shopId,
paymentMethodId: paymentMethodId
);
- Запустите процесс с кейсом
.bankCardRepeat
и передайтеSavedBankCardModuleInputData
.
var result = await YookassaPaymentsFlutter.bankCardRepeat(savedBankCardModuleInputData);
- Получите token в
TokenizationResult
Лицензия
YooKassa Payments SDK доступна под лицензией MIT. Смотрите LICENSE файл для получения дополнительной информации.
Libraries
- input_data/saved_card_module_input_data
- input_data/tokenization_module_input_data
- models/amount
- models/currency
- models/customization_settings
- models/google_pay_parameters
- models/host_parameters
- models/method_save_payment
- models/payment_method_types
- models/test_mode_settings
- models/tokenization_result
- models/tokenization_settings
- yookassa_payments_flutter