Flutter支付集成插件mercadopago_transparent的使用

Flutter支付集成插件mercadopago_transparent的使用

Mercado Pago 集成

客户端操作

  • create: 创建一个新客户
  • delete: 删除具有给定ID的客户
  • save card: 将一个已标记的卡保存到特定的客户
  • get: 返回特定的客户
import 'package:mercadopago_transparent/mercadopago_transparent.dart' as mercadopago;

final mercado = mercadopago.MercadoPago(acessToken: 'ACESS_TOKEN', publicKey: 'PUBLIC_KEY', applicationId: '');

卡片操作

  • token: 对卡进行标记
  • token with card: 从已保存的卡生成标记
  • get: 返回特定的卡
// 对卡片进行标记
String token = await mercado.card.token(
       cardName: 'cardName',
       cpf: 'cpf',
       cardNumber: 'cardNumber',
       expirationMoth: 11,
       expirationYear: 2025,
       securityCode: 'securityCode',
       issuer: 'issuer'); 

// issuer 是发卡银行的ID。更多信息:https://www.mercadopago.com.br/developers/pt/guides/resources/localization/payment-methods
// 例如:master, visa 等

支付操作

  • payment methods: 返回所有可用的支付方式
  • credit card: 使用信用卡支付
  • ticket: 使用支付单据支付
  • pix: 使用Pix支付
  • get: 返回特定的支付信息
// 创建一个客户
final client = mercadopago.Client(firstName: '', email: '', docNumber: '', phone: '');

String clientId = await mercado.client.create(client: client);

// 将卡片与客户关联以供以后购买
String cardId = await mercado.client.savecard(clientId: 'clientId', token: 'token');

// 使用已保存的卡片进行标记需要安全码和卡片ID
String token = await mercado.card.tokenWithCard(cardId: 'cardId', securityCode: 'securityCode');

支付

信用卡支付

如果传递了clientId参数,它将使用在付费市场中已经保存的客户信息进行支付。否则,必须填写所有其他客户信息如emailnamedocNumber

// 使用信用卡支付
mercadopago.Payment pay = await mercado.payment.creditCard(tokenCard: 'tokenCard', clientId: '', amount: 100.0);
支票支付
// 使用支票支付
mercadopago.Payment pay = await mercado.payment.ticket(name: 'name', email: 'email', docNumber: 'docNumber', amount: 100.0);

其中Payment类的一个参数是barCode,即支付单据的条形码。

PIX支付
// 使用PIX支付
mercadopago.Payment pay = await mercado.payment.ticket(name: 'name', email: 'email', docNumber: 'docNumber', amount: 100.0);

其中Payment类的一个参数是qrCode,即用于支付的Pix二维码。另外还有qrCodeRender,用于重新定义视图中的代码。

订阅

订阅仅适用于真实用户,需要真实的卡片。或者使用测试用户,后者都是测试用户。

你可以创建订阅、暂停和取消订阅。

创建订阅
// 创建订阅
mercadopago.Subscriptions = await mercado.subscriptions.create(
           description: 'Teste',
           email: '',
           token: 'token card',
           frequency: 1,
           type: 'months',
           amount: 1);

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

1 回复

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


当然,以下是如何在Flutter项目中集成并使用mercadopago_transparent插件进行支付的示例代码。这个插件允许你使用Mercado Pago的透明重定向(Transparent Redirect)方法进行支付集成。

首先,确保你已经在你的pubspec.yaml文件中添加了mercadopago_transparent依赖:

dependencies:
  flutter:
    sdk: flutter
  mercadopago_transparent: ^最新版本号  # 请替换为最新的版本号

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

接下来,你需要按照Mercado Pago的要求配置你的应用。这通常包括在Mercado Pago的开发者门户中创建应用并获取必要的凭证(如公钥和私钥)。

以下是一个简单的示例,展示如何在Flutter应用中使用mercadopago_transparent插件:

  1. 初始化插件并设置支付参数
import 'package:flutter/material.dart';
import 'package:mercadopago_transparent/mercadopago_transparent.dart';

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  MercadoPagoTransparent? mercadoPagoTransparent;

  @override
  void initState() {
    super.initState();
    // 初始化MercadoPagoTransparent插件
    mercadoPagoTransparent = MercadoPagoTransparent(
      publicKey: '你的Mercado Pago公钥', // 替换为你的公钥
      privateKey: '你的Mercado Pago私钥', // 替换为你的私钥
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Mercado Pago Transparent Demo'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              if (mercadoPagoTransparent != null) {
                try {
                  // 设置支付参数
                  var preferenceId = '你的Preference ID'; // 替换为你的Preference ID
                  var result = await mercadoPagoTransparent!.startPayment(preferenceId);
                  if (result['status'] == 'approved') {
                    // 支付成功处理
                    print('Payment approved: ${result}');
                  } else {
                    // 支付失败或待处理
                    print('Payment result: ${result}');
                  }
                } catch (e) {
                  // 错误处理
                  print('Error: $e');
                }
              }
            },
            child: Text('Start Payment'),
          ),
        ),
      ),
    );
  }
}
  1. 处理支付结果

在上面的代码中,startPayment方法会启动支付流程,并返回一个包含支付结果的Map。你可以根据返回的结果处理支付成功、失败或待处理的情况。

注意

  • publicKeyprivateKey是你在Mercado Pago开发者门户获取的凭证。
  • preferenceId是一个预先创建的支付偏好的ID,你可以在Mercado Pago的API中创建这个偏好,并指定支付金额、商品描述等信息。

这个示例只是一个基本的集成示例,实际应用中你可能需要处理更多的边界情况和用户交互。确保你遵循Mercado Pago的最佳实践和安全性要求,特别是在处理私钥和敏感信息时。

此外,请务必参考mercadopago_transparent插件的官方文档和Mercado Pago的开发者指南,以获取最新的API信息和最佳实践。

回到顶部