Flutter支付集成插件basispaysdkv2的使用
Flutter支付集成插件basispaysdkv2的使用
Baisipay-Flutter-PG-SDKV2-KIT
这是一个用于在Flutter应用中使用BasisPay支付网关插件以接受在线支付的库。
简介
本文件描述了集成BasisPay在线支付网关Flutter SDK套件的步骤。该支付网关通过减少用户操作来执行在线支付交易。它接收支付详情作为输入,并处理支付流程,最终将支付响应返回给用户。用户必须手动将框架导入其项目中才能使用。
要求
- Android最小SDK版本:21
首先从BasisPay获取凭证
插件仅在使用API密钥时才有效。
ANDROID
步骤1:
转到你的应用的android文件夹并进入build.gradle文件
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
开始支付
Future<void> initPlatformState() async {
Map<String, dynamic> paymentRequestParams = {
// 必需参数
"apiKey": "YOUR_PG_API_KEY",
"secureHash": "xxxx",
"orderReference": "xxxx",
"customerName": "xxxx",
"customerEmail": "xxxx",
"customerMobile": "xxxxxxxxxx",
"address": "xxxx",
"postalCode": "xxxx",
"city": "xxxx",
"region": "xxxx",
"country": "xxx", // ISO 3码,例如:IND
"returnUrl": "xxxx",
"isPgMode": false, // 如果PG模式为LIVE,则设为true,否则为false(测试模式)
// 可选参数
"deliveryAddress": "xxxx",
"deliveryCustomerName": "xxxx",
"deliveryCustomerMobile": "xxxxxxxxxx",
"deliveryPostalCode": "xxxx",
"deliveryCity": "xxxx",
"deliveryRegion": "xxxx",
"deliveryCountry": "xxx", // ISO 3码,例如:IND
};
try {
var response = Basispaysdkv2.startTransaction(paymentRequestParams);
response.then((value) {
print(value);
var referenceNo = value['referenceNo'];
var success = value['success'];
}).catchError((onError) {
if (onError is PlatformException) {
setState(() {
print(onError.message + " \n " + onError.details.toString());
});
} else {
setState(() {
print(onError.toString());
});
}
});
} catch (err) {
print(err.toString());
}
}
示例代码
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:basispaysdkv2/basispaysdkv2.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
[@override](/user/override)
void initState() {
super.initState();
// initPlatformState();
}
// 平台消息异步处理,因此我们在异步方法中初始化
Future<void> initPlatformState() async {
Map<String, dynamic> paymentRequestParams = {
// 必需参数
"apiKey": "ac2d6957-f765-4b3d-99e3-b2926b1d7b3c",
"secureHash": "61261EB0899CEBFE71583D23A4399F1685F9CDC416A338B017C09E2D37E2113752DAFCB3334C00AD90DDE55537B837C3CB47A8DB70BDC5E23E676ABBCF95DADD",
"orderReference": "bpQGrKHvLyocqcGauJKdfA==",
"customerName": "mathan",
"customerEmail": "Testing223@gmail.com",
"customerMobile": "88543221100",
"address": "5/223 choolaimedu,chennai-01",
"postalCode": "641017",
"city": "chennai",
"region": "Tamil Nadu",
"country": "IND",
"returnUrl": "http://157.245.105.135:9057/cinchcollect/pg/merchant",
"isPgMode": false, // isPgMode false=测试模式或 true=生产模式
// 可选参数
"deliveryAddress": "",
"deliveryCustomerName": "",
"deliveryCustomerMobile": "",
"deliveryPostalCode": "",
"deliveryCity": "",
"deliveryRegion": "",
"deliveryCountry": "IND",
};
try {
var response = Basispaysdkv2.startTransaction(paymentRequestParams);
response.then((value) {
print(value);
for(var key in value.keys) {
print(key);
}
var referenceNo = value['referenceNo'];
var success = value['success'];
print("==Ref==" + referenceNo);
print("==Success==" + success);
}).catchError((onError) {
if (onError is PlatformException) {
setState(() {
print(onError.message! + " \n " + onError.details.toString());
});
} else {
setState(() {
print(onError.toString());
});
}
});
} catch (err) {
print(err.toString());
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('BasispaySdkv2'),
),
body: Center(
child: Column(
children: [
ElevatedButton(
onPressed: () {
setState(() {
initPlatformState();
});
},
child: Text("Make Payment")
)
],
),
),
),
);
}
}
更多关于Flutter支付集成插件basispaysdkv2的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter支付集成插件basispaysdkv2的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
basispaysdkv2
是一个用于 Flutter 的支付集成插件,通常用于与 Basis Pay 支付系统进行集成。以下是如何在 Flutter 项目中使用 basispaysdkv2
插件的步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 basispaysdkv2
插件的依赖:
dependencies:
flutter:
sdk: flutter
basispaysdkv2: ^1.0.0 # 请使用插件的最新版本
然后运行 flutter pub get
来获取依赖。
2. 导入插件
在你的 Dart 文件中导入 basispaysdkv2
插件:
import 'package:basispaysdkv2/basispaysdkv2.dart';
3. 初始化支付 SDK
在使用支付功能之前,通常需要初始化 SDK。你可以在 initState
或 main
函数中进行初始化:
class PaymentPage extends StatefulWidget {
@override
_PaymentPageState createState() => _PaymentPageState();
}
class _PaymentPageState extends State<PaymentPage> {
@override
void initState() {
super.initState();
BasisPaySdkV2.initialize(
merchantId: "YOUR_MERCHANT_ID",
secretKey: "YOUR_SECRET_KEY",
environment: BasisPayEnvironment.SANDBOX, // 或 BasisPayEnvironment.PRODUCTION
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Payment'),
),
body: Center(
child: ElevatedButton(
onPressed: () {
// 发起支付
_startPayment();
},
child: Text('Pay Now'),
),
),
);
}
}
4. 发起支付
使用 BasisPaySdkV2
提供的 API 来发起支付请求。通常需要提供订单号、金额、商品描述等信息:
void _startPayment() async {
try {
final response = await BasisPaySdkV2.startPayment(
orderId: "ORDER_12345",
amount: 100.0, // 金额
currency: "USD", // 货币
productName: "Test Product", // 商品名称
productDescription: "This is a test product", // 商品描述
customerEmail: "customer@example.com", // 客户邮箱
customerPhone: "1234567890", // 客户电话
);
if (response.status == BasisPayStatus.SUCCESS) {
// 支付成功
print("Payment Success: ${response.transactionId}");
} else {
// 支付失败
print("Payment Failed: ${response.message}");
}
} catch (e) {
// 处理异常
print("Error: $e");
}
}
5. 处理支付结果
支付完成后,SDK 会返回一个 BasisPayResponse
对象,你可以根据 response.status
来判断支付是否成功,并处理相应的逻辑。
6. 监听支付状态(可选)
如果你需要监听支付过程中的状态变化,可以使用 BasisPaySdkV2
提供的回调方法:
BasisPaySdkV2.setPaymentListener((BasisPayResponse response) {
if (response.status == BasisPayStatus.SUCCESS) {
// 支付成功
} else if (response.status == BasisPayStatus.FAILED) {
// 支付失败
} else if (response.status == BasisPayStatus.CANCELLED) {
// 支付取消
}
});