Flutter未知功能插件chapasdk的潜在使用

发布于 1周前 作者 sinazl 来自 Flutter

Flutter未知功能插件chapasdk的潜在使用

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

功能

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

预览

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

Payment Methods in Grid View

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

Payment Methods in List View

错误

Error

成功支付收据

Successful Payment Receipt

开始使用

安装

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是一个私有或未公开的插件,你可能需要联系插件的开发者或维护者来获取更多信息和支持。
  • 在使用任何第三方插件时,确保检查其安全性和隐私政策,特别是在处理敏感数据时。
回到顶部