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
参数,它将使用在付费市场中已经保存的客户信息进行支付。否则,必须填写所有其他客户信息如email
、name
、docNumber
。
// 使用信用卡支付
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
更多关于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
插件:
- 初始化插件并设置支付参数
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'),
),
),
),
);
}
}
- 处理支付结果
在上面的代码中,startPayment
方法会启动支付流程,并返回一个包含支付结果的Map。你可以根据返回的结果处理支付成功、失败或待处理的情况。
注意:
publicKey
和privateKey
是你在Mercado Pago开发者门户获取的凭证。preferenceId
是一个预先创建的支付偏好的ID,你可以在Mercado Pago的API中创建这个偏好,并指定支付金额、商品描述等信息。
这个示例只是一个基本的集成示例,实际应用中你可能需要处理更多的边界情况和用户交互。确保你遵循Mercado Pago的最佳实践和安全性要求,特别是在处理私钥和敏感信息时。
此外,请务必参考mercadopago_transparent
插件的官方文档和Mercado Pago的开发者指南,以获取最新的API信息和最佳实践。