Flutter支付功能插件maswend_payment的使用

Flutter支付功能插件maswend_payment的使用

简介

maswend_payment 是一个用于 Edenvidi 的支付插件。它允许开发者在 Flutter 应用中集成支付功能。


开始使用

项目背景

该项目是一个 Flutter 插件包的起点,包含 Android 和/或 iOS 平台特定的实现代码。

开发者帮助

如果你刚开始使用 Flutter,可以查看官方文档,了解更多教程、示例以及移动开发的指导和完整的 API 参考: Flutter 官方文档


示例代码

以下是一个完整的示例代码,展示如何在 Flutter 应用中使用 maswend_payment 插件进行支付。

示例代码
// 导入必要的库
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:maswend_payment/maswend_payment.dart'; // 引入支付插件

void main() => runApp(new MyApp()); // 主函数入口

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => new _MyAppState(); // 初始化状态
}

class _MyAppState extends State<MyApp> {
  bool isMakePayment = false; // 控制支付按钮的显示状态

  @override
  void initState() {
    super.initState();
    // 初始化支付插件
    MaswendPayment.instance.init(
        "SB-Mid-client-nxIV6qUGgjz-1ACh", // 商户密钥
        "https://edenvidiapi.herokuapp.com"); // 回调地址
    MaswendPayment.instance.setTransactionFinishedCallback(_callback); // 设置回调函数
  }

  // 执行支付操作
  _makePayment() {
    setState(() {
      isMakePayment = true; // 设置为正在支付状态
    });
    MaswendPayment.instance
        .makePayment(MidtransTransaction(
          transaction_id: new DateTime.now().toString(), // 交易 ID
          user_id: '42fd18bd-76c0-4f71-875f-2f8b4c3b76ba', // 用户 ID
          total: 14000, // 总金额
          customer: new MidtransCustomer( // 用户信息
            "abc",
            "def",
            "abcdef@abcdef.com",
            "08235847489",
          ),
          items: [new MidtransItem("abc", 7000, 2, "Ale-ale")], // 商品信息
          skip_customer_details_page: true, // 跳过用户详情页面
          show_email_in_cc_form: false, // 不显示邮箱
          auto_read_sms: false, // 不自动读取短信验证码
          save_card_checked: false, // 不保存卡信息
          show_payment_status: true, // 显示支付状态
        ))
        .catchError((err) => print("ERROR $err")); // 捕获错误
  }

  // 支付完成后的回调函数
  Future<void> _callback(TransactionFinished finished) async {
    setState(() {
      isMakePayment = false; // 支付完成后恢复按钮状态
    });
    return Future.value(null);
  }

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new Scaffold(
        appBar: new AppBar(
          title: const Text('Plugin example app'), // 应用标题
        ),
        body: new Center(
          child: isMakePayment // 判断是否正在支付
              ? CircularProgressIndicator() // 正在支付时显示加载动画
              : ElevatedButton( // 支付按钮
                  child: Text("Make Payment"), // 按钮文本
                  onPressed: () => _makePayment(), // 点击事件
                ),
        ),
      ),
    );
  }
}

代码说明

  1. 初始化插件:

    MaswendPayment.instance.init(
        "SB-Mid-client-nxIV6qUGgjz-1ACh", 
        "https://edenvidiapi.herokuapp.com");
    • init 方法用于初始化插件,传入商户密钥和回调地址。
  2. 设置回调函数:

    MaswendPayment.instance.setTransactionFinishedCallback(_callback);
    • 设置支付完成后的回调函数 _callback
  3. 执行支付操作:

    MaswendPayment.instance.makePayment(MidtransTransaction(...));
    • 使用 makePayment 方法发起支付请求,传递 MidtransTransaction 对象。
  4. 支付完成后的处理:

    Future<void> _callback(TransactionFinished finished) async { ... }
1 回复

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


maswend_payment 是一个用于 Flutter 应用的支付插件,支持多种支付方式,如支付宝、微信支付等。以下是如何在 Flutter 项目中使用 maswend_payment 插件的步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 maswend_payment 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  maswend_payment: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 配置支付平台

根据你使用的支付平台(如支付宝、微信支付等),你可能需要在项目中配置相应的平台设置。

Android 配置

android/app/src/main/AndroidManifest.xml 文件中添加必要的权限和支付配置:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

iOS 配置

ios/Runner/Info.plist 文件中添加必要的配置:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

3. 初始化支付插件

在你的 Dart 代码中,首先需要初始化 maswend_payment 插件:

import 'package:maswend_payment/maswend_payment.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await MaswendPayment.initialize();
  runApp(MyApp());
}

4. 发起支付请求

使用 MaswendPayment 插件发起支付请求。以下是一个简单的示例,展示如何使用支付宝进行支付:

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

class PaymentPage extends StatelessWidget {
  Future<void> _makePayment() async {
    try {
      // 替换为你的支付订单信息
      final paymentResult = await MaswendPayment.pay(
        paymentMethod: PaymentMethod.alipay,
        orderInfo: 'your_order_info_here',
      );

      if (paymentResult == PaymentResult.success) {
        print('Payment successful');
      } else {
        print('Payment failed');
      }
    } catch (e) {
      print('Payment error: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Payment'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _makePayment,
          child: Text('Pay with Alipay'),
        ),
      ),
    );
  }
}

5. 处理支付结果

MaswendPayment.pay 方法会返回一个 PaymentResult 枚举,表示支付结果。你可以根据这个结果来处理支付成功或失败的情况。

6. 其他支付方式

maswend_payment 插件还支持其他支付方式,如微信支付。你可以通过设置 paymentMethod 参数来选择不同的支付方式:

final paymentResult = await MaswendPayment.pay(
  paymentMethod: PaymentMethod.wechat,
  orderInfo: 'your_order_info_here',
);
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!