Flutter支付集成插件redsys_with_flutter的使用
Flutter支付集成插件redsys_with_flutter的使用
Redsys with Flutter 是一个用于在 Flutter 应用程序中集成 Redsys 银行支付网关的插件包。通过此插件,您可以轻松地在 Flutter 应用中处理支付。
特性
- 与 Redsys 支付网关无缝集成。
- 简单的配置和设置。
- 同时支持 iOS 和 Android 平台。
- 提供交易成功、失败和取消的回调。
- 详细的文档和示例。
如果您遇到任何问题或希望为该插件的开发做出贡献,请在 GitHub 仓库 上提交问题或拉取请求。
安装
要使用 Redsys with Flutter,请按照以下步骤操作:
- 在
pubspec.yaml文件中添加依赖:
dependencies:
redsys_with_flutter: ^1.0.0
- 或者运行以下命令:
flutter pub add redsys_with_flutter
- 运行以下命令以获取包:
flutter pub get
使用方法
导入插件
在项目中导入必要的类:
import 'package:redsys_with_flutter/common/ui_direct_payment_config.dart';
import 'package:redsys_with_flutter/flutter_with_redsys.dart';
import 'package:redsys_with_flutter/common/tpvv_configuration.dart';
import 'package:redsys_with_flutter/common/tpvv_constants.dart';
配置 Redsys 设置
在应用中配置 Redsys 的参数:
RedsysWithFlutter.configure(
merchantCode: 'YOUR_MERCHANT_CODE', // 商户代码
terminal: 'YOUR_TERMINAL', // 终端编号
currency: 'YOUR_CURRENCY', // 货币代码(例如:978 表示欧元)
secretKey: 'YOUR_SECRET_KEY', // 密钥
transactionType: TransactionType.authorization, // 交易类型
urlEnvironment: UrlEnvironment.live, // 环境(测试或生产)
);
处理支付
实现支付功能的代码如下:
final _pluginRedsysPlugin = FlutterWithRedsys();
performCardPayment(context, {String? alias, String? originalAlias}) async {
TPVVConfiguration tpvvConfig = TPVVConfiguration();
tpvvConfig.amount = 10.0; // 支付金额
tpvvConfig.enableRedirection = true; // 是否重定向
tpvvConfig.enableResultAlert = true; // 是否启用结果通知
tpvvConfig.paymentMethods = TPVVConstants.PAYMENT_METHOD_T; // 支付方式
tpvvConfig.license = "<dev_license_for_ios_or_android>"; // 开发者许可证
tpvvConfig.environment = TPVVConstants.ENVIRONMENT_TEST; // 测试环境
tpvvConfig.fuc = "<merchant_fuc>"; // 商户功能码
tpvvConfig.terminal = "002"; // 终端编号
tpvvConfig.merchantUrl = "<merchant_url_for_results_reporting>"; // 商户结果报告 URL
tpvvConfig.currency = "978"; // 货币代码
tpvvConfig.order = "978"; // 订单号
tpvvConfig.reference = 'ahmad'; // 参考信息
tpvvConfig.enableResultAlert = true; // 启用结果通知
tpvvConfig.enableRedirection = true; // 启用重定向
tpvvConfig.uiDirectPaymentConfig = UIDirectPaymentConfig(); // UI 直接支付配置
tpvvConfig.merchantData = "<id_transaction_to_be_set>"; // 交易 ID
log(tpvvConfig.toJson().toString()); // 打印配置信息
// 发起支付请求
var call = await _pluginRedsysPlugin.webPayment(tpvvConfig.toJson());
log(call.toString()); // 打印返回值
var resp = jsonDecode(call.toString()); // 解析返回值
log('ressssppp$resp'); // 打印解析后的结果
}
示例代码
以下是一个完整的示例代码,展示了如何在 Flutter 中使用 redsys_with_flutter 插件进行支付:
import 'dart:async';
import 'dart:convert';
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:redsys_with_flutter/common/ui_direct_payment_config.dart';
import 'package:redsys_with_flutter/flutter_with_redsys.dart';
import 'package:redsys_with_flutter/common/tpvv_configuration.dart';
import 'package:redsys_with_flutter/common/tpvv_constants.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
final _pluginRedsysPlugin = FlutterWithRedsys();
[@override](/user/override)
void initState() {
super.initState();
initPlatformState();
}
Future<void> initPlatformState() async {
String platformVersion;
try {
TPVVConfiguration tpvvConfig = TPVVConfiguration();
tpvvConfig.amount = 10.0;
tpvvConfig.paymentMethods = TPVVConstants.PAYMENT_METHOD_T;
tpvvConfig.license = "<dev_license_for_ios_or_android>";
tpvvConfig.environment = TPVVConstants.ENVIRONMENT_TEST;
tpvvConfig.fuc = "<merchant_fuc>";
tpvvConfig.terminal = "002";
tpvvConfig.merchantUrl = "<merchant_url_for_results_reporting>";
tpvvConfig.currency = "978";
tpvvConfig.merchantData = "<id_transaction_to_be_set>";
var call = await _pluginRedsysPlugin.webPayment(tpvvConfig.toJson());
log("CALL $call");
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
});
}
performCardPayment(context, {String? alias, String? originalAlias}) async {
TPVVConfiguration tpvvConfig = TPVVConfiguration();
tpvvConfig.amount = 10.0;
tpvvConfig.enableRedirection = true;
tpvvConfig.enableResultAlert = true;
tpvvConfig.paymentMethods = TPVVConstants.PAYMENT_METHOD_T;
tpvvConfig.license = "<dev_license_for_ios_or_android>";
tpvvConfig.environment = TPVVConstants.ENVIRONMENT_TEST;
tpvvConfig.fuc = "<merchant_fuc>";
tpvvConfig.terminal = "002";
tpvvConfig.merchantUrl = "<merchant_url_for_results_reporting>";
tpvvConfig.currency = "978";
tpvvConfig.order = "978";
tpvvConfig.reference = 'ahmad';
tpvvConfig.enableResultAlert = true;
tpvvConfig.enableRedirection = true;
tpvvConfig.uiDirectPaymentConfig = UIDirectPaymentConfig();
tpvvConfig.merchantData = "<id_transaction_to_be_set>";
log(tpvvConfig.toJson().toString());
var call = await _pluginRedsysPlugin.webPayment(tpvvConfig.toJson());
log(call.toString());
var resp = jsonDecode(call.toString());
log('ressssppp$resp');
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: TextButton(
child: Text('Running on: $_platformVersion\n'),
onPressed: () {
performCardPayment(context);
},
),
),
),
);
}
}
更多关于Flutter支付集成插件redsys_with_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter支付集成插件redsys_with_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
redsys_with_flutter 是一个用于在 Flutter 应用中集成 Redsys 支付的插件。Redsys 是西班牙常用的支付网关之一,支持信用卡、借记卡等多种支付方式。通过该插件,你可以轻松地在 Flutter 应用中实现支付功能。
1. 安装插件
首先,你需要在 pubspec.yaml 文件中添加 redsys_with_flutter 插件的依赖:
dependencies:
flutter:
sdk: flutter
redsys_with_flutter: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get 来安装插件。
2. 配置 Redsys 参数
在使用插件之前,你需要从 Redsys 获取以下信息:
- 商户代码 (Merchant Code)
- 终端号 (Terminal)
- 密钥 (Secret Key)
这些信息通常由 Redsys 提供,并且需要在支付请求中使用。
3. 创建支付请求
在 Flutter 项目中,你可以使用 RedsysWithFlutter 类来创建支付请求。以下是一个简单的示例:
import 'package:flutter/material.dart';
import 'package:redsys_with_flutter/redsys_with_flutter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: PaymentScreen(),
);
}
}
class PaymentScreen extends StatelessWidget {
final redsys = RedsysWithFlutter();
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Redsys Payment'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
// 配置支付参数
final paymentParams = PaymentParams(
merchantCode: '你的商户代码',
terminal: '你的终端号',
amount: '1000', // 金额(以分为单位)
order: '123456', // 订单号
currency: '978', // 货币代码(978 代表欧元)
transactionType: '0', // 交易类型(0 代表授权)
merchantURL: 'https://your-merchant-url.com', // 商户URL
merchantName: '你的商户名称',
titular: 'Card Holder Name', // 持卡人姓名
productDescription: 'Product Description', // 产品描述
secretKey: '你的密钥', // 密钥
);
// 发起支付请求
final result = await redsys.startPayment(paymentParams);
// 处理支付结果
if (result['success'] == true) {
print('支付成功');
} else {
print('支付失败: ${result['error']}');
}
},
child: Text('Pay with Redsys'),
),
),
);
}
}

