flutter_onpay_sdk 0.0.2 copy "flutter_onpay_sdk: ^0.0.2" to clipboard
flutter_onpay_sdk: ^0.0.2 copied to clipboard

outdated

Flutter package to integrate OnPay.ru Visa/MasterCard payment form into your mobile application.

example/example.dart

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

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'OnPay SDK Demo',
        theme: ThemeData(
          primarySwatch: Colors.green,
        ),
        home: const MyHomePage(title: 'OnPay SDK Demo'));
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);
  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: orders.map((order) => _saleItem(order)).toList(),
        ),
      ),
    );
  }

  List<OnPayOrder> orders = [
    OnPayOrder(
      reference: "SALE1",
      amount: 0.99,
      payFor: 'Продукт 1',
      payMode: 'fix',
      recipient: 'cloud_sciencejet_net',
      userEmail: 'some@mail.ru',
      note: "Короткая заметка о продукте",
    ),
    OnPayOrder(
      reference: "SALE2",
      payFor: 'Продукт 2',
      amount: 10,
      recipient: 'cloud_sciencejet_net',
      userEmail: 'some@mail.ru',
      note: "Короткая заметка о продукте",
    ),
  ];

  Widget _saleItem(OnPayOrder order) {
    return Padding(
      padding: const EdgeInsets.fromLTRB(20, 5, 20, 5),
      child: Card(
          child: Row(
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          const Expanded(child: Icon(Icons.card_giftcard, size: 30), flex: 1),
          Expanded(
            flex: 3,
            child: Column(
              children: [
                Text(order.payFor),
                Text(order.note ?? ""),
                Text("${order.amount} ${order.ticker}"),
                OutlinedButton(
                  onPressed: () => _openPaymentForm(order),
                  child: const Text("купить"),
                )
              ],
            ),
          ),
        ],
      )),
    );
  }

  void _openPaymentForm(OnPayOrder order) async {
    OnPayResult result = await OnPaySdk.openPaymentForm(context, order);
    print("_openPaymentForm RESULT: ${result.status.toString()}");

    String msg;
    switch (result.status) {
      case OnPayResultCode.success:
        msg = "ОПЛАЧЕНО";
        break;
      case OnPayResultCode.fail:
        msg = "Ошибка оплаты";
        break;
      case OnPayResultCode.notCompleted:
        msg = "Оплата не закончена";
        break;
    }

    ScaffoldMessenger.of(context)
      ..removeCurrentSnackBar()
      ..showSnackBar(SnackBar(content: Text('${result.order.payFor}: $msg [${result.message}]')));
  }
}
4
likes
0
points
41
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter package to integrate OnPay.ru Visa/MasterCard payment form into your mobile application.

Homepage

License

unknown (license)

Dependencies

flutter, http, webview_flutter

More

Packages that depend on flutter_onpay_sdk