finipay 0.0.1 copy "finipay: ^0.0.1" to clipboard
finipay: ^0.0.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);
}

/// Перевод по номеру. [reference] создают один раз на экран перевода.
Future<String> transfer({
  required String reference,
  required String phone,
  required Money amount,
}) async {
  final transfers = Finipay.instance.transfers;

  final recipient = await transfers.checkRecipient(phone);
  final order = recipient.orderFor(PaymentProvider.finipay);
  if (order == null) return 'У номера нет кошелька Finipay';

  final intent = await transfers.begin(
    reference,
    orderNumber: order.orderNumber,
  );
  final outcome = await transfers.createTransfer(
    intent: intent,
    request: TransferPayRequest.forIntent(
      intent: intent,
      recipient: recipient.phone,
      amount: amount,
    ),
  );

  return switch (outcome) {
    PaymentAuthorized() => 'Перевод выполнен',
    PaymentDeclined(:final message) => message,
    PaymentPending() => 'Отправляем…',
    // Исход неизвестен: не «не прошло» — проверьте статус.
    PaymentIndeterminate() => 'Проверяем результат…',
    PaymentCancelled() => 'Отменено',
  };
}
0
likes
110
points
73
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, package_info_plus, shared_preferences, stomp_dart_client, uuid

More

Packages that depend on finipay

Packages that implement finipay