finipay 0.1.1 copy "finipay: ^0.1.1" to clipboard
finipay: ^0.1.1 copied to clipboard

SDK кошелька Finipay для Flutter: переводы, вывод и пополнение через MBank и MegaPay, оплата по QR, баланс и история.

Изменения #

0.1.1 — 04.10.2026 #

Новое #

  • iOS: подключение через Swift Package Manager; CocoaPods работает как раньше.

0.1.0 — 03.10.2026 #

Ломающий выпуск: деньги — только через finipay.payments.

Ломающее #

Было Стало
transfers.checkRecipient → begin → createTransfer payments.prepareTransfer → confirm() → settle()
withdrawals.check → begin → withdraw payments.prepareWithdrawal → confirm() → settle()
оплата чужого QR через transfers payments.prepareQr → confirm() → settle()
pendingOperations(), completeOperation() payments.unfinished() и settle()
transfers.isEncryptionConfigured payments.isEncryptionConfigured
transfers.incomeAndExpense() history.incomeAndExpense()

Убраны TransfersRepository, WithdrawalsRepository, TransferPayRequest, TransferRecipient, TransferOrder, Withdrawal, OperationIntent. Незакрытые операции 0.0.1 после обновления не видны — выясните их исход до обновления.

Новое #

  • finipay.payments: перевод, вывод и оплата QR — prepare* → confirm() → settle(); ключи, повторы и закрытие ведёт SDK.
  • HostedPageScreen.open(…, closeWhen:) — страница оплаты одним вызовом.
  • QR: код из ссылки (payload, linkHost), ЭлКыргызQR (isElqr, сумма в тыйынах), recipient — всегда 996…, isWalletPayable.
  • Ключи словаря error.invalidPhone, error.noWallet, qr.paymentComment.

Безопасность #

  • Канал статусов — личная очередь /user/queue/status; финальный статус подтверждает опрос.
  • Пиннинг сверяется до отправки запроса; с пинами канал статусов не поднимается.
  • Страница оплаты не уходит с разрешённых хостов и с https.
  • Строже разбор QR; FinipayEnvironment.custom в релизе — только https.

Проверьте у себя: оплата чужого QR — только с именем от сервера (payment.recipientName); пины на боевом контуре пока не задавайте.

Исправлено #

  • Отказ сервера на денежном вызове закрывает платёж; незнакомый ответ — PaymentIndeterminate, а не исключение.
  • qr.watch находит код за первой страницей истории.
  • Android: пакет объявляет INTERNET сам.
  • QrFormatException.message — текст словаря, причина — в details; QrScanGate сообщает о чужой строке один раз.

Совместимость #

  • Минимум — Flutter 3.27 (Dart 3.6); без package_info_plus.

0.0.1 — 2026-09-27 #

Первый выпуск на pub.dev.

  • Одна точка входа Finipay.init; модули users, history, transfers, withdrawals, topUps, qr.
  • Вход без экранов: одноразовый код от бэкенда партнёра через partnerCode, сброс сессии при смене пользователя через partnerUser, обновление токена по 401 с ротацией.
  • Денежные вызовы возвращают исход значением PaymentOutcome и никогда не повторяются сами; намерения с ключом идемпотентности, pendingOperations() и completeOperation() после перезапуска.
  • Переводы внутри Finipay, вывод в MBank и MegaPay, пополнение из MBank и MegaPay.
  • QR: постоянный код, код на сумму, страница оплаты, EmvQr.parse и QrScanGate для чужих кодов.
  • Понятные тексты для пользователя из словаря SDK, ответ сервера — в serverMessage; свои тексты — messages в init.
  • Money на целых минорных единицах.
  • createTestFinipay для тестов приложения (finipay_testing.dart), DevOtpClient для стенда (finipay_dev.dart).
0
likes
120
points
478
downloads

Documentation

API reference

Publisher

verified publisherfinipay.kg

Weekly Downloads

SDK кошелька Finipay для Flutter: переводы, вывод и пополнение через MBank и MegaPay, оплата по QR, баланс и история.

Homepage

Topics

#payments #wallet #qr-code #fintech

License

unknown (license)

Dependencies

crypto, dio, encrypt, flutter, flutter_inappwebview, flutter_secure_storage, intl, meta, shared_preferences, stomp_dart_client, uuid

More

Packages that depend on finipay

Packages that implement finipay