Flutter支付集成插件kyrmannpay_flutter的使用

Flutter支付集成插件kyrmannpay_flutter的使用

安装

在你的pubspec.yaml文件中添加kyrmannpay_flutter依赖:

dependencies:
  ...
  kyrmannpay_flutter: <version>

支付数据

为了进行支付,你需要提供以下参数:

  • paymentData(Map<String, dynamic>):包含初始化支付所需的所有数据,包括:

    • login(String):用户登录名 | 联系Kyrmannpay获取
    • password(String):用户加密密码 | 联系Kyrmannpay获取
    • amount(int):购买总金额
    • afid(int):表示客户端使用的服务ID | 由Kyrmannpay提供
    • offerId(int):表示客户从SAV平台提议的服务ID | 由Kyrmannpay提供
    • cartId(String):消费者购买标识符 | 长度必须大于等于5
    • key(String):表示加密密钥 | 由Kyrmannpay提供
    • iv(String):表示IV密钥 | 由Kyrmannpay提供
  • callbackUrl(String):表示回调URL

示例代码

以下是完整的示例代码:

import 'package:flutter/material.dart';
import 'package:kyrmannpay_flutter/kyrmannpay.dart';

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

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

  // 这个小部件是你的应用的根。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Kyrmannpay Demo'),
      routes: {
        '/payment': (context) => KyrmannPay(
          paymentData: const {
            "login": "login",
            "password": "password",
            "amount": 0000,
            "afid": 00,
            "offerId": 0000,
            "cartId": "cartId",
            "key": "iv",
            "iv": "iv"
          },
          callbackUrl: 'https://flutter.dev',
          onPaymentError: (error) {
            // 显示错误对话框
            showDialog(
              context: context,
              builder: (_) => AlertDialog(
                title: const Text(
                  '错误',
                  textAlign: TextAlign.center,
                ),
                content: Text('$error'),
              ),
            );
          },
          onPaymentSuccess: (data) {
            // 处理支付成功后的操作
            Navigator.of(context).pop();
          },
        ),
      },
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            // 导航到支付页面
            Navigator.pushNamed(context, '/payment');
          },
          child: const Text('付款'),
        ),
      ),
    );
  }
}

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

1 回复

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


kyrmannpay_flutter 是一个用于在 Flutter 应用中集成支付功能的插件。以下是如何使用该插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 kyrmannpay_flutter 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  kyrmannpay_flutter: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

2. 初始化插件

在你的 Dart 代码中,首先需要初始化 kyrmannpay_flutter 插件。

import 'package:kyrmannpay_flutter/kyrmannpay_flutter.dart';

void initializePayment() async {
  await KyrmannPayFlutter.initialize(
    apiKey: 'YOUR_API_KEY',
    environment: Environment.sandbox, // 或者 Environment.production
  );
}

3. 创建支付订单

接下来,你可以创建一个支付订单。

void createPaymentOrder() async {
  PaymentRequest paymentRequest = PaymentRequest(
    amount: 1000, // 金额,单位通常是分
    currency: 'USD',
    description: 'Test Payment',
    customerEmail: 'customer@example.com',
  );

  PaymentResponse response = await KyrmannPayFlutter.createPayment(paymentRequest);

  if (response.success) {
    print('Payment successful: ${response.paymentId}');
  } else {
    print('Payment failed: ${response.errorMessage}');
  }
}

4. 处理支付结果

你可以通过监听事件来处理支付结果。

void listenToPaymentEvents() {
  KyrmannPayFlutter.onPaymentSuccess.listen((paymentId) {
    print('Payment succeeded: $paymentId');
  });

  KyrmannPayFlutter.onPaymentFailure.listen((error) {
    print('Payment failed: $error');
  });
}

5. 启动支付界面

最后,你可以启动支付界面来完成支付。

void startPayment() async {
  await KyrmannPayFlutter.startPayment(
    context: context,
    paymentRequest: paymentRequest,
  );
}

6. 处理回调

在支付完成后,你可以处理回调以更新订单状态或执行其他操作。

void handlePaymentCallback() {
  KyrmannPayFlutter.onPaymentSuccess.listen((paymentId) {
    // 更新订单状态或其他操作
  });

  KyrmannPayFlutter.onPaymentFailure.listen((error) {
    // 处理支付失败的情况
  });
}

7. 清理资源

在应用退出或不再需要支付功能时,可以清理资源。

void dispose() {
  KyrmannPayFlutter.dispose();
}

注意事项

  • 确保你使用的是正确的 API Key 和环境(沙盒或生产)。
  • 根据你的业务需求处理支付成功和失败的逻辑。
  • 请参考插件的官方文档以获取更多详细信息和高级用法。

示例代码

以下是一个完整的示例代码:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: PaymentScreen(),
    );
  }
}

class PaymentScreen extends StatefulWidget {
  [@override](/user/override)
  _PaymentScreenState createState() => _PaymentScreenState();
}

class _PaymentScreenState extends State<PaymentScreen> {
  [@override](/user/override)
  void initState() {
    super.initState();
    initializePayment();
    listenToPaymentEvents();
  }

  void initializePayment() async {
    await KyrmannPayFlutter.initialize(
      apiKey: 'YOUR_API_KEY',
      environment: Environment.sandbox,
    );
  }

  void listenToPaymentEvents() {
    KyrmannPayFlutter.onPaymentSuccess.listen((paymentId) {
      print('Payment succeeded: $paymentId');
    });

    KyrmannPayFlutter.onPaymentFailure.listen((error) {
      print('Payment failed: $error');
    });
  }

  void createPaymentOrder() async {
    PaymentRequest paymentRequest = PaymentRequest(
      amount: 1000,
      currency: 'USD',
      description: 'Test Payment',
      customerEmail: 'customer@example.com',
    );

    PaymentResponse response = await KyrmannPayFlutter.createPayment(paymentRequest);

    if (response.success) {
      print('Payment successful: ${response.paymentId}');
    } else {
      print('Payment failed: ${response.errorMessage}');
    }
  }

  void startPayment() async {
    PaymentRequest paymentRequest = PaymentRequest(
      amount: 1000,
      currency: 'USD',
      description: 'Test Payment',
      customerEmail: 'customer@example.com',
    );

    await KyrmannPayFlutter.startPayment(
      context: context,
      paymentRequest: paymentRequest,
    );
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('KyrmannPay Flutter Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: startPayment,
          child: Text('Pay Now'),
        ),
      ),
    );
  }
}
回到顶部