htech_pay 1.2.0
htech_pay: ^1.2.0 copied to clipboard
SDK de Flutter para aceptar pagos con tarjeta, guardar tarjetas (tokenización) y cobrar con tarjetas guardadas a través de la pasarela de pagos HtechPay de Htech.
HtechPay #
SDK para aceptar pagos a través de la pasarela de pagos HtechPay de Htech.
Características #
Transacciones con la máxima eficiencia: La plataforma de Htech te permite incrementar tus ventas y aceptar pagos de manera rápida, segura, sencilla y flexible.
Con nuestras soluciones aumentarás la aceptación de pagos, reducirás los costos de procesamiento, combatirás el fraude y crearás experiencias extraordinarias para tus clientes.
- +99.5% Tasa de aceptación de nuestras transacciones.
- 25% Incrementan las ventas de nuestros clientes.
- +1M Transacciones diarias con disponibilidad y a prueba de fallos.
Inteligencia antifraude. #
Contamos con una plataforma antifraude basada en el análisis de datos en tiempo real, lo que brinda protección de punta a punta, además de que se encarga de la validación de las tarjetas y de la ubicación geográfica, con la finalidad de proteger cada transacción.
Máxima protección certificada #
Nuestra infraestructura de seguridad cuenta con la Certificación PCI-DSS Nivel 1, la más alta distinción en cumplimiento de estándares internacionales de seguridad.
Soluciones basadas en el análisis de datos #
La tecnología que utilizamos minimiza los contracargos y va de acuerdo con las necesidades de cada cliente.
Resguardo ininterrumpido. #
Constantemente evaluamos nuestros procesos de protección de datos, además de que hacemos pruebas de seguridad que simulan ataques cibernéticos y realizamos análisis de vulnerabilidades en los sistemas y los procesos.
Requerimientos #
Android: #
- Versión de Android 5.0 en adelante.
- Version de Kotlin 2.1.0 en adelante.
- Versión mínima del AGP (android gradle plugin) 8.4.0
- Versión mínima de Gradle 8.6
iOS: #
- Versión de iOS 14.0
- No requiere algún permiso adicional.
Instalación del SDK. #
flutter pub add htech_pay
Importa el paquete a tu archivo .dart #
import 'package:htech_pay/models/htech_pay_response.dart';
import 'package:htech_pay/htech_pay.dart';
Crea una instancia de HtechPay #
Modo test #
final htechPay = HtechPay();
Modo producción #
final htechPay = HtechPay(isSandboxMode: false);
Uso 1 - Fullscreen. #
El siguiente código de ejemplo muestra como puede invocar la vista para realizar el pago, la función solicita un orderId que previamente debiste haber obtenido, para consultar mas sobre el orderId visita el siguiente link.
final orderId = await ApiBackend.getOrderId(
customerId,
amount,
description,
);
widget.htechPay
.makePayment(
orderId: orderId,
context: context,
isDarkTheme: true,
)
.then((response) {
processResponse(response);
})
.onError((error, stack) {
showErrorResponse();
});
Ademas de makePayment, el SDK expone otros dos flujos fullscreen:
saveCard(orderId, context)— captura y tokeniza una tarjeta para pagos futuros, retorna unHtechPaySaveCardResponse.makePaymentByToken(orderId, context)— realiza un pago utilizando una tarjeta previamente guardada (token).
widget.htechPay
.saveCard(
orderId: orderId,
context: context,
isDarkTheme: true,
)
.then((response) {
processSaveCardResponse(response);
});
widget.htechPay
.makePaymentByToken(
orderId: orderId,
context: context,
isDarkTheme: true,
)
.then((response) {
processResponse(response);
});
Uso 2 - CardField Widget. #
El siguiente código de ejemplo muestra como utilizar la carta de pago en forma de vista tipo field, para adaptarse a la UI de tu aplicacion de manera organica.
P.D: Sera necesario instanciar una clase tipo HtechPayPaymentFieldController para disponer de los metodos para accionar el pago y la validacion de la los datos de tarjeta.
El orderId es opcional al construir el widget y puede indicarse (o sobreescribirse) al momento de
llamar processPayment. Si se indica en ambos lugares con valores distintos, se dispara un error via
onError.
_paymentFieldController.processPayment(orderId);
_paymentFieldController.validateForm();
Tipos de widget (CardFieldType) #
| Tipo | Descripción |
|---|---|
widget |
Formulario inline para pago con tarjeta nueva (alto 88px). |
paymentTokenWidget |
Formulario inline para pago con tarjeta guardada (token) (alto 88px). |
paymentToken |
Vista completa de pago con tarjeta guardada (token) (alto 550px). |
checkout |
Checkout completo con tarjeta nueva (alto 500px); orderId opcional; soporta dark theme. |
checkoutPaymentToken |
Checkout completo con tarjeta guardada (token) (alto 330px); orderId opcional; soporta dark theme. |
Ejemplo: #
final orderId = await ApiBackend.getOrderId(
customerId,
amount,
description,
);
HtechPayCardFieldWidget(
orderId: orderId,
controller: _paymentFieldController,
type: CardFieldType.widget,
onPaymentResult: (HtechPayResponse response) {
},
onValidForm: (bool isValidForm, ErrorsForm errors) {
debugPrint("""
Card-number isError? : ${errors.numCard}
Card-date is isError? : ${errors.date}
Card-cvv is isError? : ${errors.cvv}
""");
},
onError: (String errorMessage) {
showErrorDialog(errorMessage);
},
onProcessPayment: () {
debugPrint("onProcessPayment");
},
on3dsChallengeOpen: (bool isOpen) {
},
onGetWidgetStatus: (CardFieldWidgetStatus status) {
switch (status) {
case CardFieldWidgetStatus.startLoading:
debugPrint("Start loading widget");
case CardFieldWidgetStatus.finishLoading:
debugPrint("Finish loading widget");
}
},
);