Flutter插件chapasdk的介绍与使用

Flutter插件chapasdk的介绍与使用

官方的Chapa Flutter SDK使得Flutter开发者能够无缝地将Chapa的支付API集成到他们的应用中。它支持原生和网页结账,为发起和验证支付提供了强大而灵活的解决方案。

Flutter插件chapasdk功能

  • 🌟 发起支付:轻松通过四种受支持的钱包(telebirr, cbebirr, mpesa, ebirr)进行交易。
  • ✅ 验证支付状态:确认支付完成并即时通知用户。
  • 🌐 网页结账支持:允许用户使用网页结账以获取额外的支付选项。

预览

支付方法在网格视图中显示

Payment Methods in Grid View

支付方法在列表视图中显示,按钮颜色自定义

Payment Methods in List View

错误

Error

成功支付收据

Successful Payment Receipt

Flutter插件chapasdk开始使用

Flutter插件chapasdk安装

在pubspec.yaml文件中添加以下依赖项:

dependencies:
  chapasdk: ^latest_version

然后运行命令:

flutter pub get

参数

参数名 类型 是否必需 描述
context BuildContext 是 当前小部件的上下文。
publicKey String 是 您的Chapa公钥(测试环境用测试密钥,生产环境用生产密钥)。
currency String 是 交易货币(原生结账为ETB,网页结账为ETB或USD,不能使用USD进行原生结账)。
amount String 是 要收取的金额。
email String 是 客户的电子邮件地址。
phone String 是 客户的电话号码。
firstName String 是 客户的名字。
lastName String 是 客户的姓氏。
txRef String 是 交易的唯一参考号。
title String 是 支付模态框的标题。
desc String 是 支付的描述。
namedRouteFallBack String 是 支付事件(成功、失败或取消)后重定向用户的命名路由。
nativeCheckout bool 否 是否使用原生结账(true)或网页结账(false),默认为true。
showPaymentMethodsOnGridView bool 否 显示支付方法在网格(true)还是水平视图(false),默认为true。
availablePaymentMethods List<String> 否 允许的支付方法列表(mpesa, cbebirr, telebirr, ebirr),默认为所有方法。
buttonColor Color 否 原生结账按钮的颜色,默认为应用程序的主题颜色。

使用

import 'package:chapasdk/chapasdk.dart';

Chapa.paymentParameters(
  context: context,
  publicKey: 'CHAPUBK-@@@@',
  currency: 'ETB',
  amount: '1',
  email: 'fetanchapa.co',
  phone: '0911223344',
  firstName: 'Israel',
  lastName: 'Goytom',
  txRef: 'txn_12345',
  title: 'Order Payment',
  desc: 'Payment for order #12345',
  nativeCheckout: true,
  namedRouteFallBack: '/',
  showPaymentMethodsOnGridView: true,
  availablePaymentMethods: ['mpesa', 'cbebirr', 'telebirr', 'ebirr'],
);

支付响应

对于原生结账

在原生结账环境中,交易参考编号是Chapa的支付参考编号。

{
  "message": "Any Descriptive message regarding the payment status",
  "transactionReference": "CHHhvtn7xLEkZ", 
  "paidAmount": "1.00"
}

对于网页结账

在网页结账环境中,交易参考编号是你生成的支付交易参考编号。

重要提示: 如果从原生结账页面启动网页结账,网页结账的交易参考编号将由应用自身生成。这是因为单个交易参考编号不能同时用于原生和网页结账过程。因此,应用将为网页结账生成一个单独的交易参考编号。

支付已取消
{
  "message": "paymentCancelled",
  "transactionReference": "txn_12345",
  "paidAmount": "1.00"
}
支付成功
{
  "message": "paymentSuccessful",
  "transactionReference": "txn_12345" ,
  "paidAmount": "1.00"
}
支付失败
{
  "message": "paymentFailed",
  "transactionReference": "txn_12345",
  "paidAmount": "0.00"
}

更多关于Flutter插件chapasdk的介绍与使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter插件chapasdk的介绍与使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


针对你提到的Flutter未知功能插件chapasdk,虽然无法确切知道其具体功能和实现细节(因为这不是一个广为人知的插件),但我可以展示一个典型的Flutter插件使用案例,这样你可以根据这个框架去探索和尝试chapasdk插件的潜在使用。

通常,Flutter插件的使用包括以下几个步骤:

  1. 在pubspec.yaml文件中添加依赖: 首先,你需要在你的Flutter项目的pubspec.yaml文件中添加对该插件的依赖。如果chapasdk是一个有效的Flutter插件,你应该能够在这里找到它的依赖项并添加。

    dependencies:
      flutter:
        sdk: flutter
      chapasdk: ^x.y.z  # 假设这是插件的版本号,你需要替换为实际的版本号
    
  2. 导入插件: 在你的Dart文件中,你需要导入该插件以便使用它。

    import 'package:chapasdk/chapasdk.dart';
    
  3. 初始化插件并调用其功能: 根据插件的文档,你需要初始化插件并调用其提供的功能。下面是一个假设性的示例,展示了如何初始化一个名为ChapaSDK的类(这个类名和功能是假设的,你需要根据chapasdk的实际API进行调整)。

    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(
              title: Text('ChapaSDK Demo'),
            ),
            body: Center(
              child: ChapaSDKDemo(),
            ),
          ),
        );
      }
    }
    
    class ChapaSDKDemo extends StatefulWidget {
      @override
      _ChapaSDKDemoState createState() => _ChapaSDKDemoState();
    }
    
    class _ChapaSDKDemoState extends State<ChapaSDKDemo> {
      String result = '';
    
      @override
      void initState() {
        super.initState();
        _initializeChapaSDK();
      }
    
      void _initializeChapaSDK() async {
        try {
          // 假设ChapaSDK有一个名为initialize的方法
          await ChapaSDK.initialize();
          setState(() {
            result = 'ChapaSDK initialized successfully!';
          });
    
          // 调用插件的某个功能,比如获取数据
          var data = await ChapaSDK.fetchSomeData();
          setState(() {
            result = 'Data fetched: $data';
          });
        } catch (e) {
          setState(() {
            result = 'Failed to initialize ChapaSDK: ${e.message}';
          });
        }
      }
    
      @override
      Widget build(BuildContext context) {
        return Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(result),
          ],
        );
      }
    }
    

在这个示例中,我们创建了一个简单的Flutter应用,该应用在启动时尝试初始化ChapaSDK插件,并调用其某个假设的fetchSomeData方法来获取数据。结果会显示在应用的中心位置。

注意:

  • 实际的chapasdk插件可能具有不同的初始化方法和功能,你需要参考其官方文档或源代码来了解具体的API。
  • 如果chapasdk是一个私有或未公开的插件,你可能需要联系插件的开发者或维护者来获取更多信息和支持。
  • 在使用任何第三方插件时,确保检查其安全性和隐私政策,特别是在处理敏感数据时。
回到顶部