Flutter支付集成插件cellpay_sdk的使用

Flutter支付集成插件cellpay_sdk的使用

CellPay Payment Gateway

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

1 回复

更多关于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 {
    // 支付失败,显示错误信息
  }
}
回到顶部