Flutter支付网关集成插件omniware_payment_gateway_totalxsoftware的使用

发布于 1周前 作者 gougou168 来自 Flutter

Flutter支付网关集成插件omniware_payment_gateway_totalxsoftware的使用

关于Omniware Payment Gateway Totalxsoftware - Flutter Plugin

该插件由Totalx Software开发,提供了与Omniware支付网关的无缝集成,使Flutter应用程序能够进行安全高效的支付处理。

Launch Totalx

Omniware

功能

  • 简单集成:轻松将Omniware支付网关集成到Flutter应用中。
  • 可定制:支持多种支付方式、货币和用户配置文件。
  • 保存到Firebase:可选地将支付数据保存到Firebase,便于跟踪。
  • 安全支付:确保加密和安全的支付处理。

安装

  1. pubspec.yaml文件中添加依赖:

    dependencies:
      omniware_payment_gateway_totalxsoftware: ^1.0.0
    
  2. 运行flutter pub get以安装包。

  3. 在Dart文件中导入插件:

    import 'package:omniware_payment_gateway_totalxsoftware/omniware_payment_gateway_totalxsoftware.dart';
    

平台特定设置

Android集成
  1. 更新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" -->
    
  2. res/values/colors.xml中添加颜色:

    <resources>
        <color name="colorPrimary">#FF6200EE</color>
        <color name="colorPrimaryDark">#FF3700B3</color>
        <color name="colorAccent">#FF03DAC5</color>
    </resources>
    
  3. res/values/strings.xml中添加字符串:

    <resources>
        <string name="app_name">Kurikkal Business Park</string>
        <string name="totalxsoftwareapp">Kurikkal Business Park</string>
    </resources>
    
  4. 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> -->
    
  5. 更新settings.gradle:添加插件:

    include ":app"
    include ":payment_gateway_plugin"
    
  6. 更新app/build.gradle:确保包含必要的依赖项:

    dependencies {
        implementation 'androidx.appcompat:appcompat:1.6.0'
        // 其他依赖项
    }
    
iOS集成
  1. 更新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 支付模式(TESTLIVE)。 可选 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

1 回复

更多关于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('发起支付'),
          ),
        ),
      ),
    );
  }
}

注意事项

  1. 商户ID、公钥和私钥:这些敏感信息应该从你的后端安全地获取,并且不应该硬编码在客户端应用中。
  2. 环境配置:在开发阶段使用沙箱环境(OmniwareEnvironment.sandbox),在生产环境中切换到生产环境(OmniwareEnvironment.production)。
  3. 支付参数:根据你的业务需求,支付请求的参数可能会有所不同,请参考omniware_payment_gateway_totalxsoftware插件的官方文档或API文档来获取完整的参数列表和说明。
  4. 错误处理:在实际应用中,你应该有更完善的错误处理逻辑,以处理各种可能的异常情况。

这个示例提供了一个基本的框架,你可以根据自己的需求进行扩展和修改。希望这对你有所帮助!

回到顶部