SDK para Flutter
El plugin de Flutter de Ironchip empaqueta los SDK de Android y de iOS para que puedas enviar transacciones al motor antifraude desde una aplicación Flutter con una sola base de código.
Requisitos
Sección titulada «Requisitos»| Plataforma | Versiones soportadas |
|---|---|
| Android | 5.0.0+ |
| iOS | 13.0.0+ |
Instalación
Sección titulada «Instalación»El plugin se publica en pub.dev como ironchip_lbfraud. Añádelo al fichero pubspec.yaml de tu paquete:
dependencies: ironchip_lbfraud: ^2.0.13Permisos en Android
Sección titulada «Permisos en Android»Para usar la detección de fraude en Android se recomiendan algunos permisos. El plugin funciona sin ellos, pero la precisión disminuye. Añádelos a tu aplicación para aprovechar todo su potencial:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />Recuerda que el usuario tiene que aceptar los permisos para que surtan efecto.
Configuración en iOS
Sección titulada «Configuración en iOS»Para usar Ironchip LBFraud, añade una capacidad al target de tu aplicación: ve a Signing & Capabilities y añade Access WiFi Information.

Después, añade estas claves al fichero Info.plist. En cada una, escribe la descripción como cadena de texto:
Privacy - Location Always and When In Use Usage DescriptionPrivacy - Location When In Use Usage DescriptionPrivacy - Location Always Usage DescriptionLSApplicationQueriesSchemesLSApplicationQueriesSchemes sirve para saber si el dispositivo tiene jailbreak.
Con el proyecto configurado y los permisos concedidos, importa el paquete:
import 'package:ironchip_lbfraud/ironchip_lbfraud.dart';Para enviar una transacción, primero inicializa el SDK con una API key válida.
// Sustituye APIKEY por la API key generada.// De forma predeterminada, el plugin apunta al entorno de producción. Para apuntar a otro:// LBFraudSDK fraud = new LbfraudFlutterPlugin.initFraudSDK("APIKEY", env: Environment.testing);await _lbfraudPlugin.initFraudSDK(apiKey);Una vez inicializado el servicio, ya puedes enviar transacciones:
try { // transactionID (obligatorio, único): identificador con el que después pedirás el informe // userID (obligatorio): identificador del usuario // extraData (opcional): información adicional para el análisis // Puedes omitir el await si no necesitas el resultado de la acción. var result = await _lbfraudPlugin.sendTransaction(transactionID, userID, {});
_showResult = result!; _resultError = false;} catch (e) { _showResult = e.toString(); _resultError = true;}sendTransaction es asíncrono, pero no necesitas usar await a menos que quieras comprobar el resultado de la acción.
Configurar un proxy
Sección titulada «Configurar un proxy»Si quieres usar un proxy concreto al enviar una transacción, configúralo con setProxy:
try { var result = await _lbfraudPlugin.setProxy(host, port);} catch (e) {}Ejemplo
Sección titulada «Ejemplo»Aplicación de ejemplo completa: inicializa el plugin con la API key que escribe el usuario y envía una transacción con un identificador aleatorio.
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"; // Sustituye APIKEY por la API key generada. 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 de LBFraud son asíncronos, así que se inicializan en un método asíncrono. Future<void> initLBFraudState() async { try { // Sustituye APIKEY por la API key generada. // De forma predeterminada, el SDK apunta al entorno de producción. Para apuntar a otro: // 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 { // transactionID (obligatorio, único): identificador con el que después pedirás el informe // userID (obligatorio): identificador del usuario // extraData (opcional): información adicional para el análisis // Puedes omitir el await si no necesitas el resultado de la acción.
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 ? Colors.green : Color(0xFFF44336), ), ), SizedBox(height: 20), ElevatedButton( onPressed: initLBFraudState, style: ElevatedButton.styleFrom( backgroundColor: Colors.green, ), 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( backgroundColor: Colors.green, ), child: Text('Send Transaction'), ), SizedBox(height: 20), Text( _showResult, style: TextStyle( color: _resultError ? Color(0xFFF44336) : Colors.black, ), ), ], ), ), ), )); }}Registro de cambios
Sección titulada «Registro de cambios»2.0.13 (2024-01-16)
Sección titulada «2.0.13 (2024-01-16)»- SDK de Android:
1.2.13 - SDK de iOS:
1.2.10
Cambiado
- Actualización de la documentación del plugin.
2.0.12 (2023-10-17)
Sección titulada «2.0.12 (2023-10-17)»- SDK de Android:
1.2.13 - SDK de iOS:
1.2.10
Cambiado
- La versión 0.0.1 se promueve a 2.0.12 por motivos organizativos.
0.0.1 (2023-10-17)
Sección titulada «0.0.1 (2023-10-17)»- SDK de Android:
1.2.13 - SDK de iOS:
1.2.10
Cambiado
- Configuración del proyecto.
¿Te ha resultado útil esta página?
Gracias. Lo tendremos en cuenta para mejorar la documentación. Si quieres contarnos qué falta o qué no está claro, escríbenos a support@ironchip.com.