htech_pay 1.0.0 copy "htech_pay: ^1.0.0" to clipboard
htech_pay: ^1.0.0 copied to clipboard

Acepta pagos a través de la pasarela de pagos HtechPay de Htech.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:async';
import 'package:htech_pay/htech_pay.dart';

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

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Make payment')),
        body: HomeWidget(),
      ),
    );
  }
}

class HomeWidget extends StatefulWidget {
  const HomeWidget({super.key});

  @override
  State<HomeWidget> createState() => _HomeWidgetState();
}

class _HomeWidgetState extends State<HomeWidget> {
  final _htechPay = HtechPay();
  late String orderId;
  String paymentReponse = "";
  final _orderIdController = TextEditingController();

  @override
  void initState() {
    super.initState();

    orderId = _getOrderId();
    _orderIdController.text = orderId;
  }

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(16.0),
      child: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            SizedBox(height: 16.0),
            Text("OrderId:"),
            TextField(controller: _orderIdController),
            SizedBox(height: 16.0),
            Text(paymentReponse),
            SizedBox(height: 16.0),
            OutlinedButton(
              onPressed: () {
                makePayment();
              },
              child: Text("Pagar"),
            ),
          ],
        ),
      ),
    );
  }

  String _getOrderId() {
    return "AAAAAAAA-1111-1111-1111-BBBBBBBBBBBB"; //TODO(Change to get a backend api orderId)
  }

  void makePayment() {
    if (_orderIdController.text.toString().isEmpty) {
      return;
    }

    _htechPay
        .makePayment(
          orderId: _orderIdController.text.toString(),
          context: context,
        )
        .then((response) {
          if (!response.isSuccess) {
            setState(() {
              paymentReponse = "Payment fail, try again";
            });
            return;
          }

          setState(() {
            paymentReponse = response.payload!.toString();
          });
        })
        .onError((handleError, stack) {
          setState(() {
            paymentReponse = "Error $handleError";
          });
        });
  }
}
1
likes
150
points
17
downloads

Publisher

verified publisherhtech.com

Weekly Downloads

Acepta pagos a través de la pasarela de pagos HtechPay de Htech.

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface, wakelock_plus, webview_flutter

More

Packages that depend on htech_pay

Packages that implement htech_pay