Uso
Visita pub.dev para obtener más información sobre nuestro plugin de Flutter:
Una vez que haya configurado su proyecto correctamente, haya requerido los permisos necesarios, entonces solo tendrá que importar el paquete con:
import 'package:ironchip_lbfraud_plugin/ironchip_lbfraud.dart';
Para enviar una transacción, primero debe inicializar el SDK proporcionando una clave API válida.
// Reemplace APIKEY con la clave API generada.
// De forma predeterminada, nuestro plugin apunta al entorno de producción.
// En caso de que desee apuntar a un entorno diferente:
// LBFraudSDK fraud = new LbfraudFlutterPlugin.initFraudSDK("APIKEY", env: Environment.testing);
await _lbfraudPlugin.initFraudSDK(apiKey);
Una vez que se ha inicializado el servicio, ahora puede realizar transacciones:
try {
// TransactionID (obligatorio, único): solicitud de identificador de transacción para resultados de fraude
// UserID (obligatorio): identificador de usuario
// extraData (opcional): información extra para análisis
// Puedes omitir la espera en caso de que el resultado de la acción no sea necesario.
var result =
await _lbfraudPlugin.sendTransaction(transactionID, userID, {});
_showResult = result!;
_resultError = false;
} catch (e) {
_showResult = e.toString();
_resultError = true;
}
Aunque sendTransaction es asíncrono, no es necesario realizar un ‘await’ a menos que desee verificar el resultado real de la acción. Además, si deseas utilizar un proxy específico al realizar una transacción, puedes configurarlo usando:
try {
var result =
await _lbfraudPlugin.setProxy(host, port);
} catch (e) {
}
Example
import 'package:flutter/material.dart';
import 'dart:async';
import 'dart:math';
import 'package:flutter/services.dart';
import 'package:ironchip_lbfraud/ironchip_lbfraud.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final _lbfraudPlugin = IronchipLbfraud();
String apiKey =
"APIKEY"; // Reemplace APIKEY con la clave API generada que desee.
bool _isLbfraudInitialized = false;
String userID = "john.doe@gmail.com"; // Identificador de usuario
String _showResult = "";
bool _resultError = false;
@override
void initState() {
super.initState();
}
// Los métodos LBFraud son asíncronos, por lo que los inicializamos en un método asíncrono.
Future<void> initLBFraudState() async {
try {
// Reemplace APIKEY con la clave API generada que desee.
// De forma predeterminada, nuestro SDK se dirige al entorno de producción.
// En caso de que desee apuntar a un entorno diferente:
// LBFraudSDK fraud = new LbfraudFlutterPlugin.initFraudSDK("APIKEY", env: Environment.testing);
await _lbfraudPlugin.initFraudSDK(apiKey);
_isLbfraudInitialized = true;
} catch (e) {
_isLbfraudInitialized = false;
}
setState(() {
_isLbfraudInitialized = _isLbfraudInitialized;
});
}
String generateRandomTransactionID(int length) {
const _chars =
'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890';
Random _rnd = Random();
return String.fromCharCodes(Iterable.generate(
length, (_) => _chars.codeUnitAt(_rnd.nextInt(_chars.length))));
}
Future<void> sendTransaction() async {
try {
// ID de transacción (obligatorio, único): solicitud de identificador de transacción para resultados de fraude
// UserID (obligatorio): identificador de usuario
// extraData (opcional): información extra para análisis
// Puedes omitir la espera (await) en caso de que el resultado de la acción no sea necesario.
var result = await _lbfraudPlugin
.sendTransaction(generateRandomTransactionID(10), userID, {});
_showResult = result!;
_resultError = false;
} catch (e) {
_showResult = e.toString();
_resultError = true;
}
setState(() {
_resultError = _resultError;
_showResult = _showResult;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Ironchip LBFraud example app'),
backgroundColor: Color(0xFF005255),
),
body: Container(
margin: EdgeInsets.all(40.0),
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextField(
onChanged: (value) {
apiKey = value;
},
decoration: const InputDecoration(labelText: "API Key"),
),
SizedBox(height: 20),
Text(
_isLbfraudInitialized
? "LBFraud initialized"
: "LBFraud is not initialized",
style: TextStyle(
color: _isLbfraudInitialized
? Color(0xFF495c11f)
: Color(0xFFF44336),
),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: initLBFraudState,
style: ElevatedButton.styleFrom(
primary: Color(0xFF495c11f),
),
child: Text('Initialize LBFraud'),
),
TextField(
onChanged: (value) {
userID = value;
},
decoration: const InputDecoration(labelText: "User ID"),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: _isLbfraudInitialized ? sendTransaction : null,
style: ElevatedButton.styleFrom(
primary: Color(0xFF495c11f)
),
child: Text('Send Transaction'),
),
SizedBox(height: 20),
Text(
_showResult,
style: TextStyle(
color: _resultError ? Color(0xFFF44336) : Colors.black,
),
),
],
),
),
),
));
}
}
Updated: January 16, 2024