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

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

example/example.md

Пример: вход, баланс и перевод #

Полное руководство — README пакета. Ключи шифрования приходят из --dart-define-from-file, код входа — с вашего бэкенда.

import 'package:finipay/finipay.dart';
import 'package:flutter/material.dart';

Future<void> main() async {
  await Finipay.init(
    environment: FinipayEnvironment.stand,
    tenant: 'REDPAY',
    transferKey: const String.fromEnvironment('FINIPAY_TRANSFER_KEY'),
    transferIv: const String.fromEnvironment('FINIPAY_TRANSFER_IV'),
    // Одноразовый код входа от вашего бэкенда; ключ партнёра — только там.
    partnerCode: () => myBackend.finipayCode(),
    partnerUser: () => myAuth.currentUserId,
  );

  Finipay.instance.authEvents.listen((event) {
    if (event is SignedOut) {
      // Сессия закрыта или сменился пользователь: сбросьте экраны кошелька.
    }
  });

  runApp(const MyApp());
}

Future<String> balanceText() async {
  final balance = await Finipay.instance.users.balance();
  return MoneyFormatter(locale: 'ru').format(balance);
}

/// Перевод по номеру: проверить, показать, подтвердить.
Future<String> transfer({required String phone, required Money amount}) async {
  try {
    final payment = await Finipay.instance.payments.prepareTransfer(
      phone: phone,
      amount: amount,
    );

    // Имя — от сервера; человек сверяет его до нажатия «Перевести».
    if (!await confirmScreen(payment.recipientName ?? payment.phone)) {
      return 'Отменено';
    }

    var outcome = await payment.confirm();
    if (outcome is PaymentPending) {
      outcome = await payment.settle(); // итог по статусу
    }

    return switch (outcome) {
      PaymentAuthorized() => 'Перевод выполнен',
      PaymentDeclined(:final message) => message,
      PaymentPending() => 'Отправляем…',
      // Исход неизвестен: не «не прошло». Повтор confirm() безопасен.
      PaymentIndeterminate() => 'Проверяем результат…',
      PaymentCancelled() => 'Отменено',
    };
  } on FinipayError catch (error) {
    // Сервер платёж не принял: нет кошелька, неверный номер или сумма.
    return error.message;
  }
}
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