Flutter支付集成插件cellpay_sdk的使用
Flutter支付集成插件cellpay_sdk的使用
CellPay Payment Gateway for Flutter
CellPay是由Cellcom Private Limited提供的支付服务,Cellcom Private Limited是一家由尼泊尔央行(Nepal Rastra Bank)授权的支付服务提供商。在您的应用中使用CellPay支付网关解决方案,可以简化客户的支付流程。
支付类型
支付类型 | 类型 | 使用场景 | 描述 |
---|---|---|---|
ONE | ENUM | CellPayPayemntType.ONE | 商户已在CellPay注册并拥有银行联账户,希望将付款直接转入关联账户。 |
TWO | ENUM | CellPayPayemntType.TWO | 商户已在CellPay注册(有无银行联账户均可),希望收到钱包中的付款。 |
THREE | ENUM | CellPayPayemntType.THREE | 未在CellPay注册,但CellPay会收集付款并在t+1内结算。 |
注意: 这一点很重要,并可根据商户喜好发送。
使用方法
Flavors
- 开发环境 - CellPayFlavour.test
- 发布环境 - CellPayFlavour.live
参数
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
amount | String | M | 金额应以卢比表示,无需添加Rs.或逗号(例如:1000表示1,000卢比)。 |
invoice | String | M | 发票编号或系统生成的编号。 |
description | String | O | 此字段用于CellPay中的备注,用户可自行填写。 |
flavour | ENUM | M | 参见使用 > Flavors |
traceNumber | String | M | 用于跟踪交易。 |
type | ENUM | M | 参见支付类型 |
memberId | String | M/O | 如果支付类型为ONE或TWO,则memberId或memberPrincipal二者之一必须提供;如果类型为THREE,则memberPrincipal必须提供。 |
memberPrincipal | String | M/O | 如果支付类型为ONE或TWO,则memberId或memberPrincipal二者之一必须提供;如果类型为THREE,则memberPrincipal必须提供。 |
onSuccess | function | M | 支付完成后返回json数据。 |
onCancelled | function | O | 用户不想支付并取消支付时触发。 |
示例代码
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
// 支付成功回调
void onSuccess(CellPayPaymentResponse data) {
Navigator.of(context).popUntil((route) => route.isFirst);
print("OnSuccess ${data}");
}
// 错误回调
void onError(String data) {
print("onError");
}
[@override](/user/override)
Widget build(BuildContext context) {
return CellPayLoginScreen(
cellPayConfig: CellPayConfig(
memberId: "1008",
traceNumber: "123414645234123445",
invoice: "123123",
flavor: CellPayFlavor.test,
amount: '500',
onSuccess: onSuccess,
onError: onError,
description: "This is test description",
memberPrincipal: "9841000020",
type: CellPayPaymentType.ONE));
}
}
更多关于Flutter支付集成插件cellpay_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter支付集成插件cellpay_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
cellpay_sdk
是一个用于Flutter应用集成支付功能的插件。它允许开发者轻松地在Flutter应用中集成CellPay支付网关。以下是如何使用 cellpay_sdk
插件的步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 cellpay_sdk
插件的依赖。
dependencies:
flutter:
sdk: flutter
cellpay_sdk: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化SDK
在你的Flutter应用中,你需要在启动时初始化 cellpay_sdk
。
import 'package:cellpay_sdk/cellpay_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化CellPay SDK
await CellPaySdk.initialize(
merchantId: 'YOUR_MERCHANT_ID',
secretKey: 'YOUR_SECRET_KEY',
environment: Environment.production, // 或者 Environment.sandbox 用于测试
);
runApp(MyApp());
}
3. 创建支付请求
接下来,你可以创建一个支付请求并启动支付流程。
import 'package:cellpay_sdk/cellpay_sdk.dart';
void initiatePayment() async {
try {
PaymentRequest paymentRequest = PaymentRequest(
amount: 100.0, // 支付金额
orderId: 'ORDER_12345', // 订单ID
productName: 'Sample Product', // 产品名称
customerName: 'John Doe', // 客户名称
customerEmail: 'john.doe@example.com', // 客户邮箱
customerPhone: '1234567890', // 客户电话
callbackUrl: 'https://yourwebsite.com/callback', // 回调URL
);
PaymentResponse response = await CellPaySdk.startPayment(paymentRequest);
if (response.status == PaymentStatus.success) {
print('Payment Success: ${response.transactionId}');
} else {
print('Payment Failed: ${response.errorMessage}');
}
} catch (e) {
print('Error: $e');
}
}
4. 处理回调
支付完成后,CellPay会通过回调URL通知你的服务器支付结果。你需要在服务器端处理这些回调,并在必要时更新订单状态。
5. 处理支付结果
你可以在Flutter应用中处理支付结果,并根据结果更新UI或执行其他操作。
void handlePaymentResult(PaymentResponse response) {
if (response.status == PaymentStatus.success) {
// 支付成功,更新UI或执行其他操作
} else {
// 支付失败,显示错误信息
}
}