Flutter支付网关集成插件omniware_payment_gateway_totalxsoftware的使用
Flutter支付网关集成插件omniware_payment_gateway_totalxsoftware的使用
关于Omniware Payment Gateway Totalxsoftware - Flutter Plugin
该插件由Totalx Software开发,提供了与Omniware支付网关的无缝集成,使Flutter应用程序能够进行安全高效的支付处理。
功能
- 简单集成:轻松将Omniware支付网关集成到Flutter应用中。
- 可定制:支持多种支付方式、货币和用户配置文件。
- 保存到Firebase:可选地将支付数据保存到Firebase,便于跟踪。
- 安全支付:确保加密和安全的支付处理。
安装
-
在
pubspec.yaml
文件中添加依赖:dependencies: omniware_payment_gateway_totalxsoftware: ^1.0.0
-
运行
flutter pub get
以安装包。 -
在Dart文件中导入插件:
import 'package:omniware_payment_gateway_totalxsoftware/omniware_payment_gateway_totalxsoftware.dart';
平台特定设置
Android集成
-
更新
AndroidManifest.xml
:添加命名空间并更新应用标签:<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <application android:label="[@string](/user/string)/totalxsoftwareapp" ... > ... </application> </manifest> <!-- 添加以下内容 --> <!-- ++ xmlns:tools="http://schemas.android.com/tools ++ android:label="[@string](/user/string)/totalxsoftwareapp" -->
-
在
res/values/colors.xml
中添加颜色:<resources> <color name="colorPrimary">#FF6200EE</color> <color name="colorPrimaryDark">#FF3700B3</color> <color name="colorAccent">#FF03DAC5</color> </resources>
-
在
res/values/strings.xml
中添加字符串:<resources> <string name="app_name">Kurikkal Business Park</string> <string name="totalxsoftwareapp">Kurikkal Business Park</string> </resources>
-
在
res/values/styles.xml
中添加样式:<?xml version="1.0" encoding="utf-8"?> <resources> <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar"> <item name="android:windowBackground">@drawable/launch_background</item> </style> <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar"> <item name="android:windowBackground">?android:colorBackground</item> </style> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">[@color](/user/color)/colorPrimary</item> <item name="colorPrimaryDark">[@color](/user/color)/colorPrimaryDark</item> <item name="colorAccent">[@color](/user/color)/colorAccent</item> </style> </resources> <!-- 添加以下内容 --> <!-- ++ <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> ++ <item name="colorPrimary">[@color](/user/color)/colorPrimary</item> ++ <item name="colorPrimaryDark">[@color](/user/color)/colorPrimaryDark</item> ++ <item name="colorAccent">[@color](/user/color)/colorAccent</item> ++ </style> -->
-
更新
settings.gradle
:添加插件:include ":app" include ":payment_gateway_plugin"
-
更新
app/build.gradle
:确保包含必要的依赖项:dependencies { implementation 'androidx.appcompat:appcompat:1.6.0' // 其他依赖项 }
iOS集成
-
更新
Info.plist
:添加支持的UPI和支付应用:<dict> ... <key>LSApplicationQueriesSchemes</key> <array> <string>upi</string> <string>credpay</string> <string>gpay</string> <string>phonepe</string> <string>paytmmp</string> <string>mobikwik</string> <string>com.amazon.mobile.shopping</string> <string>bharatpe</string> <string>freecharge</string> <string>payzapp</string> <string>myjio</string> <string>bhim</string> <string>slice</string> ... </array> ... </dict>
请求参数列表
参数名称 | 描述 | 是否必填 | 数据类型 |
---|---|---|---|
api_key |
分配给您的业务/登录账户的唯一40位商户密钥。每个登录账户都有自己的api_key 。 |
必填 | String (最大长度: 40) |
order_id |
商户参考编号。每笔交易必须唯一。重复的order_id 对于同一商户是不允许的。 |
必填 | String (最大长度: 30) |
mode |
支付模式(TEST 或LIVE )。 |
可选 | String (最大长度: 4) |
amount |
支付金额。 | 必填 | 最大15位整数+最大2位小数 |
currency |
3位货币代码,例如INR 。 |
必填 | String (最大长度: 3) |
description |
产品或服务的简要描述。 | 必填 | String (最大长度: 200) |
name |
客户姓名。 | 必填 | String (最大长度: 200) |
email |
客户电子邮件地址。 | 必填 | String (最大长度: 200) |
phone |
客户电话号码。 | 必填 | String (最大长度: 30) |
address_line_1 |
客户地址行1。 | 可选 | String (最大长度: 255) |
address_line_2 |
客户地址行2。 | 可选 | String (最大长度: 255) |
city |
客户所在城市。 | 必填 | String (最大长度: 50) |
state |
客户所在州。 | 可选 | String (最大长度: 50) |
country |
客户所在国家。 | 必填 | String (最大长度: 10) |
zip_code |
客户邮政编码。 | 必填 | Integer (最小值: 0, 最大值: 1000) |
return_url |
成功URL - 成功交易后会向此URL发送POST请求。 | 必填 | String (最大长度: 200) |
示例代码
以下是一个完整的示例代码,展示了如何在Flutter应用中使用omniware_payment_gateway_totalxsoftware
插件进行支付。
import 'dart:developer';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:omniware_payment_gateway_totalxsoftware/omniware_payment_gateway_totalxsoftware.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Omniware Payment Gateway',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const PaymentScreen(),
);
}
}
class PaymentScreen extends StatelessWidget {
const PaymentScreen({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Omniware Payment Gateway"),
),
body: Center(
child: ElevatedButton(
onPressed: () {
OmniwarePaymentGatewayTotalxsoftware.pay(
context,
saveInFirebase: true,
appName: 'totalxsoftwareapp',
platform: Platform.isAndroid ? 'android' : 'ios',
paymentMode: PaymentMode.LIVE, // LIVE or TEST
amount: 100, // 支付金额
apiKey: 'YOUR_API_KEY', // 替换为您的实际API密钥
merchantId: 'YOUR_MERCHANT_ID', // 替换为您的实际商户ID
salt: 'YOUR_SALT', // 替换为您的实际Salt值
description: 'Brief description of product or service being charged for', // 替换为您的产品描述
currency: Currency.INR, // 根据需要更改货币
returnUrl: 'https://totalx.in', // 替换为您的返回URL
userProfile: OmniwareUserProfile(
uid: 'user_unique_id', // 替换为用户的唯一ID
name: 'Customer Name', // 替换为客户姓名
email: 'customer@example.com', // 替换为客户电子邮件
phoneNumber: '1234567890', // 替换为客户电话号码
city: 'City Name', // 替换为客户所在城市
state: 'State Name', // 替换为客户所在州
country: 'Country Code', // 替换为国家代码(例如IND)
zipcode: '123456', // 替换为客户邮政编码
// addressline_1: 'Address Line 1', // 如需使用,请取消注释并替换
// addressline_2: 'Address Line 2', // 如需使用,请取消注释并替换
),
success: (response, orderId) {
log('Payment Success: $response');
log('Order ID: $orderId');
},
failure: (response, orderId) {
log('Payment Failure: $response');
log('Order ID: $orderId');
},
error: (response) {
log('Payment Error: $response');
},
);
},
child: const Text("Make Payment"),
),
),
);
}
}
更多关于Flutter支付网关集成插件omniware_payment_gateway_totalxsoftware的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter支付网关集成插件omniware_payment_gateway_totalxsoftware的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成并使用omniware_payment_gateway_totalxsoftware
插件的一个基本代码示例。这个示例将展示如何初始化插件并进行支付请求。
1. 添加依赖
首先,在你的pubspec.yaml
文件中添加omniware_payment_gateway_totalxsoftware
插件的依赖:
dependencies:
flutter:
sdk: flutter
omniware_payment_gateway_totalxsoftware: ^最新版本号 # 请替换为最新版本号
然后运行flutter pub get
来安装依赖。
2. 导入插件
在你的Dart文件中导入插件:
import 'package:omniware_payment_gateway_totalxsoftware/omniware_payment_gateway_totalxsoftware.dart';
3. 初始化插件并配置支付请求
接下来,在你的Flutter应用中初始化插件并配置支付请求。以下是一个基本的示例:
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Omniware Payment Gateway Example'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
// 初始化插件(假设你已经在后端获取了必要的配置信息)
final OmniwarePaymentGateway gateway = OmniwarePaymentGateway(
merchantId: '你的商户ID',
publicKey: '你的公钥',
privateKey: '你的私钥',
environment: OmniwareEnvironment.sandbox, // 使用沙箱环境进行测试,生产环境请使用OmniwareEnvironment.production
);
// 配置支付请求参数
final Map<String, dynamic> paymentData = {
'amount': 100.00, // 支付金额
'currency': 'USD', // 货币代码
'orderId': '123456789', // 订单ID
'description': '测试支付', // 支付描述
// 其他可能需要的参数,根据API文档添加
};
try {
// 发起支付请求
final Map<String, dynamic> response = await gateway.startPayment(paymentData);
// 处理支付响应
if (response['status'] == 'success') {
// 支付成功处理逻辑
print('支付成功: ${response['paymentToken']}');
} else {
// 支付失败处理逻辑
print('支付失败: ${response['errorMessage']}');
}
} catch (e) {
// 处理异常
print('发生错误: $e');
}
},
child: Text('发起支付'),
),
),
),
);
}
}
注意事项
- 商户ID、公钥和私钥:这些敏感信息应该从你的后端安全地获取,并且不应该硬编码在客户端应用中。
- 环境配置:在开发阶段使用沙箱环境(
OmniwareEnvironment.sandbox
),在生产环境中切换到生产环境(OmniwareEnvironment.production
)。 - 支付参数:根据你的业务需求,支付请求的参数可能会有所不同,请参考
omniware_payment_gateway_totalxsoftware
插件的官方文档或API文档来获取完整的参数列表和说明。 - 错误处理:在实际应用中,你应该有更完善的错误处理逻辑,以处理各种可能的异常情况。
这个示例提供了一个基本的框架,你可以根据自己的需求进行扩展和修改。希望这对你有所帮助!