Flutter集成PGW SDK插件pgw_sdk的使用

Flutter集成PGW SDK插件pgw_sdk的使用

简介

2C2P Payment Gateway (PGW) SDK 允许商家通过轻松集成2C2P支付网关,在其移动应用中构建出色的支付体验。由于2C2P提供了全渠道支付处理,Payment Gateway SDK为商家提供了一整套支付选项。

使用2C2P的Payment Gateway SDK,商家无需进行复杂且耗时的PCI-DSS认证流程。所有敏感信息都由2C2P使用符合PCI-DSS标准的最先进安全措施保护。

SDK集成

对于完整的SDK集成到您的Flutter项目,请参考2C2P开发者门户

SDK特性

关于完整SDK功能的参考,请访问2C2P开发者门户

示例代码

下面是一个如何在Flutter项目中使用pgw_sdk插件的示例demo:

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:pgw_sdk_example/apis/info_api.dart';
import 'package:pgw_sdk_example/apis/payment_api.dart';
import 'package:pgw_sdk_example/constants.dart';
import 'package:pgw_sdk_example/scenes/home_screen.dart';

/// PGW SDK feature examples
final infoApi = InfoApi();
final paymentApi = PaymentApi();
final List infoApiList = [];
final List paymentApiList = [];

void main() async {
  /// 注意:重要的是,由于PGW SDK必须在请求API之前初始化。
  await infoApi.initialize().whenComplete(() {
    initFeatureList();
    runApp(const MyApp());
  });
}

void initFeatureList() {
  infoApiList.clear();
  infoApiList.add((Constants.apiClientId, infoApi.clientId, Icons.cloud_outlined));
  infoApiList.add((Constants.apiConfiguration, infoApi.configuration, Icons.cloud_outlined));
  infoApiList.add((Constants.apiPaymentOption, infoApi.paymentOption, Icons.cloud_outlined));
  infoApiList.add((Constants.apiPaymentOptionDetail, infoApi.paymentOptionDetail, Icons.cloud_outlined));
  infoApiList.add((Constants.apiCustomerTokenInfo, infoApi.customerTokenInfo, Icons.cloud_outlined));
  infoApiList.add((Constants.apiExchangeRate, infoApi.exchangeRate, Icons.cloud_outlined));
  infoApiList.add((Constants.apiUserPreference, infoApi.userPreference, Icons.cloud_outlined));
  infoApiList.add((Constants.apiTransactionStatus, infoApi.transactionStatus, Icons.cloud_outlined));
  infoApiList.add((Constants.apiSystemInitialization, infoApi.systemInitialization, Icons.cloud_outlined));
  infoApiList.add((Constants.apiPaymentNotification, infoApi.paymentNotification, Icons.cloud_outlined));
  infoApiList.add((Constants.apiCancelTransaction, infoApi.cancelTransaction, Icons.cloud_outlined));
  infoApiList.add((Constants.apiLoyaltyPointInfo, infoApi.loyaltyPointInfo, Icons.cloud_outlined));

  paymentApiList.clear();
  paymentApiList.add((Constants.paymentGlobalCreditDebitCard, paymentApi.globalCreditDebitCard, Icons.energy_savings_leaf_outlined));
  paymentApiList.add((Constants.paymentLocalCreditDebitCard, paymentApi.localCreditDebitCard, Icons.energy_savings_leaf_outlined));
  // ... 其他支付API列表项省略 ...
  paymentApiList.add((Constants.paymentWebPaymentCard, paymentApi.webPaymentCard, Icons.energy_savings_leaf_outlined));
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: Constants.titleAppName,
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.lightBlue),
        useMaterial3: true,
      ),
      home: const CustomTabBar()
    );
  }
}

更多关于Flutter集成PGW SDK插件pgw_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter集成PGW SDK插件pgw_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter项目中集成并使用PGW SDK插件pgw_sdk,可以按照以下步骤进行。这些步骤包括添加依赖、配置原生代码以及使用SDK提供的功能。以下是一个详细的代码案例,帮助你完成这个过程。

1. 添加依赖

首先,在你的Flutter项目的pubspec.yaml文件中添加pgw_sdk依赖。

dependencies:
  flutter:
    sdk: flutter
  pgw_sdk: ^最新版本号  # 请替换为实际可用的最新版本号

然后运行以下命令以获取依赖:

flutter pub get

2. 配置原生代码

由于pgw_sdk可能需要在iOS和Android上进行一些原生配置,你需要根据插件的文档进行相应的配置。以下是一个基本的配置示例,但请务必参考插件的官方文档以获取最新和最准确的配置信息。

iOS配置

ios/Runner/Info.plist中添加必要的权限配置,例如网络权限:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

Android配置

android/app/src/main/AndroidManifest.xml中添加必要的权限配置,例如网络权限:

<uses-permission android:name="android.permission.INTERNET" />

3. 使用PGW SDK

在你的Flutter代码中,你可以通过导入pgw_sdk包来使用SDK提供的功能。以下是一个简单的示例,展示了如何初始化SDK并进行一些基本操作。

import 'package:flutter/material.dart';
import 'package:pgw_sdk/pgw_sdk.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String sdkStatus = "Initializing...";

  @override
  void initState() {
    super.initState();
    _initializeSDK();
  }

  Future<void> _initializeSDK() async {
    try {
      // 替换为你的实际配置信息
      String appId = "your_app_id";
      String appKey = "your_app_key";
      bool success = await PgwSdk.init(appId: appId, appKey: appKey);

      if (success) {
        setState(() {
          sdkStatus = "SDK Initialized Successfully!";
        });

        // 你可以在这里调用其他SDK方法
        // 例如:PgwSdk.someOtherMethod(...);
      } else {
        setState(() {
          sdkStatus = "SDK Initialization Failed!";
        });
      }
    } catch (e) {
      setState(() {
        sdkStatus = "Error: ${e.message}";
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('PGW SDK Example'),
        ),
        body: Center(
          child: Text(sdkStatus),
        ),
      ),
    );
  }
}

注意事项

  1. API密钥:确保你使用的是正确的appIdappKey
  2. 错误处理:在生产代码中,添加更多的错误处理和日志记录,以便更好地调试和维护。
  3. 官方文档:查阅PGW SDK的官方文档,了解所有可用的方法和最佳实践。

通过上述步骤,你应该能够在Flutter项目中成功集成并使用PGW SDK插件pgw_sdk。如果SDK有更新或变化,请参考最新的官方文档进行相应调整。

回到顶部