Flutter支付插件ime_pay的使用

Flutter支付插件ime_pay的使用

Flutter 插件用于在您的应用中集成 ImePay。

pub package

如何安装

  1. pubspec.yaml 文件中添加 ime_pay 依赖项。
dependencies:
  ime_pay:

使用方法

  1. 创建一个包含所需参数的 ImePay 对象。
// 创建 ImePay 对象
ImePay imePay = ImePay(
    merchantCode: 'TEST',       // 商户代码
    module: 'TEST',             // 模块
    userName: 'TEST',           // 用户名
    password: 'TEST',           // 密码
    amount: 50.0,               // 支付金额
    merchantName: 'TEST',       // 商户名称
    recordingServiceUrl: 'TEST',// 录音服务URL
    deliveryServiceUrl: 'TEST', // 交付服务URL
    environment: ImePayEnvironment.TEST, // 环境
    refId: 'TEST',              // 参考ID
);
  1. 调用 startPayment 方法开始支付流程。
// 开始支付
imePay.startPayment(onSuccess: (ImePaySuccessResponse data) {
    print(data); // 打印成功响应数据
}, onFailure: (error) {
    print(error); // 打印失败错误信息
});

成功响应 ImePaySuccessResponse 包含以下参数:

  • .amount [String]:支付金额
  • .refId [String]:交易参考ID
  • .msisdn [String]:手机号码
  • .transactionId [String]:交易ID
  • .responseDescription [String]:响应描述
  • .responseCode [String]:响应代码

完整示例

下面是完整的示例代码,展示了如何在 Flutter 应用中使用 ime_pay 插件进行支付。

import 'package:flutter/material.dart';
import 'package:ime_pay/ime_pay.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    super.initState();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('IME PAY 示例应用'),
        ),
        body: Center(
          child: ElevatedButton(
              child: Text('使用 IME 支付'),
              onPressed: () {
                ImePay imePay = ImePay(
                  merchantCode: 'TEST',       // 商户代码
                  module: 'TEST',             // 模块
                  userName: 'TEST',           // 用户名
                  password: 'TEST',           // 密码
                  amount: 50.0,               // 支付金额
                  merchantName: 'TEST',       // 商户名称
                  recordingServiceUrl: 'TEST',// 录音服务URL
                  deliveryServiceUrl: 'TEST', // 交付服务URL
                  environment: ImePayEnvironment.TEST, // 环境
                  refId: 'TEST',              // 参考ID
                );
                imePay.startPayment(onSuccess: (ImePaySuccessResponse data) {
                  print(data); // 打印成功响应数据
                }, onFailure: (error) {
                  print(error); // 打印失败错误信息
                });
              }),
        ),
      ),
    );
  }
}

更多关于Flutter支付插件ime_pay的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter支付插件ime_pay的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中使用IME Pay支付插件,你需要遵循IME Pay提供的SDK集成指南。以下是一个简要的步骤说明以及相关的代码案例,帮助你集成IME Pay支付插件到你的Flutter应用中。

步骤 1: 添加依赖

首先,在你的pubspec.yaml文件中添加IME Pay的Flutter插件依赖(假设该插件已经存在,如果官方没有提供Flutter插件,你可能需要直接使用原生代码或者通过MethodChannel与原生代码交互)。

dependencies:
  flutter:
    sdk: flutter
  ime_pay: ^latest_version  # 替换为实际的最新版本号

然后运行flutter pub get来安装依赖。

步骤 2: 配置Android和iOS

Android

android/app/src/main/AndroidManifest.xml中添加必要的权限和配置(根据IME Pay的SDK要求)。

<uses-permission android:name="android.permission.INTERNET"/>
<application
    ... >
    <meta-data
        android:name="com.imepay.sdk.MERCHANT_ID"
        android:value="YOUR_MERCHANT_ID"/> <!-- 替换为你的IME Pay商户ID -->
    <activity
        android:name="com.imepay.sdk.IMEPayActivity"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:launchMode="singleTop">
    </activity>
</application>

iOS

ios/Runner/Info.plist中添加必要的配置(根据IME Pay的SDK要求)。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>imepayYOUR_MERCHANT_ID</string> <!-- 替换为你的IME Pay商户ID -->
        </array>
    </dict>
</array>

步骤 3: 初始化并启动支付

在你的Flutter代码中,初始化IME Pay并开始支付流程。以下是一个简化的示例:

import 'package:flutter/material.dart';
import 'package:ime_pay/ime_pay.dart'; // 假设插件名为ime_pay

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('IME Pay Payment Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              // 初始化IME Pay配置
              IMEPayConfig config = IMEPayConfig(
                merchantId: 'YOUR_MERCHANT_ID', // 替换为你的IME Pay商户ID
                amount: 1000, // 支付金额,单位通常是尼泊尔卢比
                currencyCode: 'NPR', // 货币代码
                productName: 'Test Product', // 商品名称
                transactionRef: 'REF123456', // 交易参考号,需要唯一
                successUrl: 'https://yourwebsite.com/success', // 支付成功回调URL
                failUrl: 'https://yourwebsite.com/fail', // 支付失败回调URL
                cancelUrl: 'https://yourwebsite.com/cancel', // 支付取消回调URL
              );

              // 启动IME Pay支付
              try {
                await IMEPay.startPayment(config: config);
              } catch (e) {
                print('IME Pay payment error: $e');
              }
            },
            child: Text('Pay with IME Pay'),
          ),
        ),
      ),
    );
  }
}

注意

  1. 实际集成时,请确保阅读IME Pay的官方SDK文档,因为不同的支付平台可能有特定的集成要求和步骤。
  2. 安全性:不要在客户端代码中硬编码敏感信息,如商户密钥等。这些信息应该通过安全的服务器端接口获取。
  3. 回调处理:支付成功、失败或取消后的回调URL需要在你的服务器端正确配置和处理。

由于IME Pay可能未直接提供Flutter插件,上述代码是一个假设性的示例。如果IME Pay官方没有提供Flutter插件,你可能需要通过MethodChannel与原生Android和iOS代码进行交互。这时,你需要查看IME Pay的Android和iOS SDK文档,并编写相应的原生代码桥接。

回到顶部