Registro de cambios
[2.0.13] - 2024-01-16 - hoy en día
- Android SDK:
1.2.13
- IOS SDK:
1.2.10
Agregado
Cambiado
- Update plugin documentation
Eliminado
[2.0.12] - 2023-10-17 - 2024-01-16
- Android SDK:
1.2.13
- IOS SDK:
1.2.10
Agregado
Cambiado
- La versión 0.0.1 se ha promovido a 2.0.12 por motivos organizativos.
Eliminado
[0.0.1] - 2023-10-17 - 2023-10-17
- Android SDK:
1.2.13
- IOS SDK:
1.2.10
Agregado
Cambiado
- Configuración del proyecto
Eliminado
Configuración
Visita pub.dev para obtener más información sobre nuestro plug-in de Flutter:
Versiones soportadas
Plataforma | Versiones soportadas |
---|---|
Android | 5.0.0+ |
iOS | 13.0.0+ |
Empezando
Agregue el plug-in al archivo pubspec.yaml de su paquete:
dependencies:
ironchip_lbfraud: ^2.0.12
Android
Para utilizar la detección de fraude en Android, se recomiendan algunos permisos. Aunque el complemento seguirá funcionando sin los permisos, la precisión disminuirá. Le recomendamos colocar los permisos en sus aplicaciones 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" />
Recuerde que el usuario tiene que aceptar los permisos para que estos surtan efecto.
iOS
Para poder utilizar Ironchip LBFraud, deberá agregar una capacidad al destino de su aplicación, así que vaya a Canto y capacidades y agregue acceder a la información de Wifi.
Y para usarlo en iOS, debes agregar estos permisos en Info.plist:
Privacy - Location Always and When In Use Usage Description, and insert the description as string
Privacy - Location When In Use Usage Description, and insert the description as string
Privacy - Location Always Usage Description, and insert the description as string
LSApplicationQueriesSchemes, and insert the description (this permission is to be able
Uso
Visita pub.dev para obtener más información sobre nuestro plug-in 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,
),
),
],
),
),
),
));
}
}