Flutter支付集成插件intrale_mobile_mercadopago的使用

Flutter支付集成插件intrale_mobile_mercadopago的使用

简介

intrale_mobile_mercadopago 是一个用于在 Flutter 应用程序中集成 Mercado Pago 支付网关的插件。通过该插件,开发者可以轻松地将支付功能嵌入到自己的应用程序中。


使用步骤

以下是一个完整的示例,展示如何在 Flutter 应用程序中使用 intrale_mobile_mercadopago 插件进行支付集成。


1. 添加依赖

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

dependencies:
  intrale_mobile_mercadopago: ^1.0.0  # 请根据实际版本替换

然后运行以下命令以安装依赖:

flutter pub get

2. 初始化插件

在使用插件之前,需要初始化 Mercado Pago SDK 并设置您的应用密钥(Access Token)。以下是初始化代码:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: PaymentScreen(),
    );
  }
}

PaymentScreen 中初始化 Mercado Pago:

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

class _PaymentScreenState extends State<PaymentScreen> {
  final String accessToken = "YOUR_ACCESS_TOKEN"; // 替换为您的Mercado Pago Access Token

  [@override](/user/override)
  void initState() {
    super.initState();
    IntraleMobileMercadopago.initialize(accessToken);
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Mercado Pago Payment"),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            _startPayment();
          },
          child: Text("Pay Now"),
        ),
      ),
    );
  }
}

3. 启动支付流程

通过调用 IntraleMobileMercadopago.startPayment() 方法启动支付流程。以下是完整的支付逻辑:

void _startPayment() async {
  try {
    // 定义支付请求参数
    Map<String, dynamic> paymentRequest = {
      "amount": 100.0, // 支付金额
      "description": "Test Product", // 商品描述
      "installments": 1, // 分期数
      "externalReference": "Order_12345", // 订单号
    };

    // 开始支付
    Map<String, dynamic> response = await IntraleMobileMercadopago.startPayment(paymentRequest);

    // 处理支付结果
    if (response['status'] == 'approved') {
      print("Payment Successful!");
      print("Transaction ID: ${response['transactionId']}");
    } else {
      print("Payment Failed!");
      print("Error Message: ${response['errorMessage']}");
    }
  } catch (e) {
    print("An error occurred: $e");
  }
}

4. 查看支付结果

支付完成后,startPayment() 方法会返回一个包含支付状态的 JSON 对象。您可以根据 status 字段判断支付是否成功,并进一步处理交易数据。


示例完整代码

以下是完整的示例代码,您可以直接复制并运行:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: PaymentScreen(),
    );
  }
}

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

class _PaymentScreenState extends State<PaymentScreen> {
  final String accessToken = "YOUR_ACCESS_TOKEN"; // 替换为您的Mercado Pago Access Token

  [@override](/user/override)
  void initState() {
    super.initState();
    IntraleMobileMercadopago.initialize(accessToken);
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Mercado Pago Payment"),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            _startPayment();
          },
          child: Text("Pay Now"),
        ),
      ),
    );
  }

  void _startPayment() async {
    try {
      // 定义支付请求参数
      Map<String, dynamic> paymentRequest = {
        "amount": 100.0, // 支付金额
        "description": "Test Product", // 商品描述
        "installments": 1, // 分期数
        "externalReference": "Order_12345", // 订单号
      };

      // 开始支付
      Map<String, dynamic> response = await IntraleMobileMercadopago.startPayment(paymentRequest);

      // 处理支付结果
      if (response['status'] == 'approved') {
        print("Payment Successful!");
        print("Transaction ID: ${response['transactionId']}");
      } else {
        print("Payment Failed!");
        print("Error Message: ${response['errorMessage']}");
      }
    } catch (e) {
      print("An error occurred: $e");
    }
  }
}
1 回复

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


intrale_mobile_mercadopago 是一个用于在 Flutter 应用中集成 MercadoPago 支付的插件。它允许开发者轻松地将 MercadoPago 支付功能集成到他们的应用程序中。以下是使用 intrale_mobile_mercadopago 插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 intrale_mobile_mercadopago 插件的依赖。

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

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

2. 配置 MercadoPago

在开始使用插件之前,你需要在 MercadoPago 开发者平台上创建一个应用,并获取 public_keyaccess_token

3. 初始化插件

在你的 Flutter 应用中,首先需要初始化 intrale_mobile_mercadopago 插件。

import 'package:intrale_mobile_mercadopago/intrale_mobile_mercadopago.dart';

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('MercadoPago Payment'),
        ),
        body: PaymentScreen(),
      ),
    );
  }
}

class PaymentScreen extends StatelessWidget {
  final MercadoPago _mercadoPago = MercadoPago();

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Center(
      child: ElevatedButton(
        onPressed: () async {
          try {
            // 初始化 MercadoPago
            await _mercadoPago.initialize("YOUR_PUBLIC_KEY");

            // 创建支付请求
            final paymentResponse = await _mercadoPago.startPayment(
              amount: 100.0,
              title: "Sample Product",
              description: "This is a sample product",
              paymentMethodId: "visa", // 支付方式 ID
              email: "user@example.com",
            );

            // 处理支付结果
            if (paymentResponse.status == "approved") {
              print("Payment approved!");
            } else {
              print("Payment failed: ${paymentResponse.status}");
            }
          } catch (e) {
            print("Error: $e");
          }
        },
        child: Text("Pay with MercadoPago"),
      ),
    );
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!