Flutter支付集成插件flutter_cielo的使用
flutter-cielo
Package用于使用Cielo e-Commerce SDK创建交易。更多详细信息请访问 文档。
开始
在您的pubspec.yaml
文件中添加flutter_cielo
包。
dependencies:
flutter_cielo: ^x.x.x
然后在代码中导入:
import 'package:flutter_cielo/flutter_cielo.dart';
初始化API对象:
final CieloEcommerce cielo = CieloEcommerce(
environment: Environment.SANDBOX, // 环境设置为沙箱模式
merchant: Merchant(
merchantId: "SEU_MERCHANT_ID", // 商户ID
merchantKey: "SEU_MERCHANT_KEY", // 商户密钥
),
);
创建一个销售对象并发起支付:
// 创建销售对象
Sale sale = Sale(
merchantOrderId: "123", // 唯一订单ID
customer: Customer(
name: "Comprador crédito simples" // 用户名
),
payment: Payment(
type: TypePayment.creditCard, // 支付类型
amount: 7777, // 金额(以分计算)
installments: 1, // 分期数
softDescriptor: "Cielo", // 支付描述
creditCard: CreditCard(
cardNumber: "1234123412341231", // 卡号
holder: "Teste Holder", // 持卡人姓名
expirationDate: "12/2030", // 到期日期
securityCode: "123", // 安全码
brand: "Visa", // 卡品牌
),
),
);
try {
var response = await cielo.createSale(sale);
print(response.payment.paymentId); // 打印支付ID
} catch (e) {
print(e); // 捕获异常
}
Tokenizing一张信用卡
使用tokenizeCard
方法对信用卡进行token化处理:
CreditCard cart = CreditCard(
customerName: "Comprador Teste Cielo",
cardNumber: "1234123412341231",
holder: "Teste Holder",
expirationDate: "12/2030",
brand: "Visa",
);
try {
var response = await cielo.tokenizeCard(cart);
print(response.cardToken); // 打印生成的卡token
} on CieloException catch (e) {
print(e.message); // 打印错误消息
print(e.errors[0].message); // 打印具体错误信息
print(e.errors[0].code); // 打印错误代码
}
使用Tokenized卡进行支付
使用已token化的卡进行支付:
Sale sale = Sale(
merchantOrderId: "123",
customer: Customer(
name: "Comprador crédito simples"
),
payment: Payment(
type: TypePayment.creditCard,
amount: 7777,
installments: 1,
softDescriptor: "Cielo",
creditCard: CreditCard.token(
cardToken: "1234123412341231", // 使用已token化的卡
securityCode: "123",
brand: "Visa",
),
),
);
try {
var response = await cielo.createSale(sale);
print(response.payment.paymentId); // 打印支付ID
} on CieloException catch (e) {
print(e.message); // 打印错误消息
print(e.errors[0].message); // 打印具体错误信息
print(e.errors[0].code); // 打印错误代码
}
示例代码
以下是一个完整的示例代码:
import 'package:flutter/material.dart';
import 'package:flutter_cielo/flutter_cielo.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
final CieloEcommerce cielo = CieloEcommerce(
environment: Environment.SANDBOX,
merchant: Merchant(
merchantId: "SEU_MERCHANT_ID",
merchantKey: "SEU_MERCHANT_KEY",
),
);
void _incrementCounter() async {
try {
print("Iniciando pagamento tokenizado....");
Sale sale = Sale(
merchantOrderId: "123",
customer: Customer(
name: "Comprador crédito simples"
),
payment: Payment(
type: TypePayment.creditCard,
amount: 7777,
installments: 1,
softDescriptor: "Pagame",
creditCard: CreditCard(
cardToken: "TOKEN_DO_CARTAO",
securityCode: "123",
brand: "Visa",
),
),
);
var response = await cielo.createSale(sale);
print(response.payment.paymentId); // 打印支付ID
} on CieloException catch (e) {
print(e.message); // 打印错误消息
print(e.errors[0].message); // 打印具体错误信息
print(e.errors[0].code); // 打印错误代码
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('You have pushed the button this many times:'),
Text(
'$_counter',
style: Theme.of(context).textTheme.display1,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
),
);
}
}
1 回复
更多关于Flutter支付集成插件flutter_cielo的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_cielo
是一个用于在 Flutter 应用中集成 Cielo 支付网关的插件。Cielo 是巴西最大的支付处理公司之一,支持多种支付方式,包括信用卡、借记卡和电子钱包等。
以下是如何在 Flutter 项目中使用 flutter_cielo
插件的步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 flutter_cielo
插件的依赖:
dependencies:
flutter:
sdk: flutter
flutter_cielo: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 配置 Cielo 商户信息
在使用 flutter_cielo
之前,你需要配置你的 Cielo 商户信息,包括 MerchantId
和 MerchantKey
。你可以在 Cielo 的开发者门户中获取这些信息。
3. 初始化 Cielo 支付
在你的 Flutter 应用中初始化 Cielo 支付:
import 'package:flutter_cielo/flutter_cielo.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Cielo Payment Example'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
_startPayment();
},
child: Text('Pay with Cielo'),
),
),
),
);
}
void _startPayment() async {
// 初始化 Cielo
Cielo cielo = Cielo(
merchantId: 'YOUR_MERCHANT_ID',
merchantKey: 'YOUR_MERCHANT_KEY',
environment: CieloEnvironment.sandbox, // 使用沙盒环境进行测试
);
// 创建支付请求
PaymentRequest paymentRequest = PaymentRequest(
orderId: 'ORDER123',
amount: 1000, // 金额以分为单位
paymentType: PaymentType.creditCard,
creditCard: CreditCard(
cardNumber: '4111111111111111',
holder: 'John Doe',
expirationDate: '12/2025',
securityCode: '123',
brand: 'Visa',
),
);
// 发起支付
try {
PaymentResponse response = await cielo.createPayment(paymentRequest);
if (response.status == PaymentStatus.authorized) {
print('Payment authorized!');
} else {
print('Payment failed: ${response.returnMessage}');
}
} catch (e) {
print('Error: $e');
}
}
}