htech_pay 1.0.0
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";
});
});
}
}