Flutter支付集成插件eko_payu的使用

Flutter支付集成插件eko_payu的使用

eko-payu

Payu Flutter 插件用于在 Flutter 应用程序中集成 PayU 支付功能。

使用步骤

以下是使用 eko_payu 插件进行支付集成的完整示例代码:

示例代码

import 'dart:developer';
import 'dart:io';

import 'package:eko_payu/payu_config.dart';
import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:eko_payu/eko_payu.dart';

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

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

class _MyAppState extends State<MyApp> {
  String _platformVersion = 'Unknown';
  EkoPayu ekoPayu;

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  // 初始化平台状态
  Future<void> initPlatformState() async {
    String platformVersion;
    this.ekoPayu = new EkoPayu(
        onSuccess: (data) => this.onSuccess(data),
        onCancel: (data) => this.onCancel(data),
        onError: (data) => this.onError(data),
        onFailure: (data) => this.onFailure(data),
        hashGenerate: (data) => this.onHashGenerate(data));
    // 获取平台版本号
    try {
      platformVersion = await EkoPayu.platformVersion;
    } on PlatformException {
      platformVersion = 'Failed to get platform version.';
    }

    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
    });
  }

  // 支付成功回调
  onSuccess(dynamic data) {
    print("Success");
  }

  // 支付错误回调
  onError(dynamic data) {
    print("Error");
  }

  // 支付取消回调
  onCancel(dynamic data) {
    print("cancel");
  }

  // 支付失败回调
  onFailure(dynamic data) {
    print("Failure");
  }

  // 生成支付哈希值
  Future<String> onHashGenerate(dynamic data) async {
    return null;
  }

  // 启动支付流程
  Future<void> start() async {
    try {
      print("Starting Payment");
      // 配置支付参数
      dynamic res = await this.ekoPayu.payuConfig(PayuConfig(merchantName: "Hello"));
      // 开始支付
      this.ekoPayu.startPayment(
          merchantName: "Eko",
          merchantKey: "fnuDx1",
          merchantID: "130033",
          txnId: "602ed0df6cea17445945645",
          amount: "500.00",
          productName: "bucket-1",
          firstName: "Shubham",
          emailId: "Shubham|shubham.mua@gmail.com",
          isProduction: false,
          phoneNumber: "7838821488",
          sUrl: "https://payuresponse.firebaseapp.com/success",
          fUrl: "https://payuresponse.firebaseapp.com/failure",
          userCredential: "fnuDx1:1",
          hash:
              "112e784011a26de9d5ec73ee997320a63ef659063a0dbe5862405639077b976562c846d316707b6ee640c2cf8706c0e47976bcb029ae2e05bbcd3f11bcae1501");
    } on PlatformException {
      log("Error");
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Row(
          children: [
            Center(
              child: Text('Running on: $_platformVersion\n'),
            ),
            FlatButton(
              child: Text('Start'),
              onPressed: () {
                this.start();
              },
            )
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


eko_payu 是一个用于在 Flutter 应用中集成 PayU 支付的插件。PayU 是一个流行的在线支付网关,支持多种支付方式和货币。通过集成 eko_payu,开发者可以轻松地在 Flutter 应用中实现支付功能。

以下是如何使用 eko_payu 插件的基本步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 eko_payu 插件的依赖:

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

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

2. 导入插件

在你的 Dart 文件中导入 eko_payu 插件:

import 'package:eko_payu/eko_payu.dart';

3. 初始化 PayU

在使用 PayU 之前,你需要初始化它。通常你需要在应用的启动时进行初始化:

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  
  PayU.init(
    environment: PayUEnvironment.test, // 使用测试环境
    key: "YOUR_MERCHANT_KEY", // 你的商户密钥
    salt: "YOUR_SALT", // 你的盐值
    // 其他可选配置
  );

  runApp(MyApp());
}

4. 发起支付

在需要发起支付的地方,你可以使用 PayU.startPayment 方法来启动支付流程:

void startPayment() async {
  PaymentParams paymentParams = PaymentParams(
    amount: "10.0", // 支付金额
    transactionId: "TX123456", // 交易ID
    productInfo: "Product Info", // 产品信息
    firstName: "John", // 用户名字
    email: "john@example.com", // 用户邮箱
    phone: "1234567890", // 用户电话
    surl: "https://your-success-url.com", // 成功回调URL
    furl: "https://your-failure-url.com", // 失败回调URL
  );

  PaymentResponse response = await PayU.startPayment(paymentParams);

  if (response.status == PayUResponseStatus.success) {
    // 支付成功
    print("Payment Successful: ${response.response}");
  } else {
    // 支付失败
    print("Payment Failed: ${response.response}");
  }
}

5. 处理支付结果

PayU.startPayment 方法返回的 PaymentResponse 对象中,你可以检查支付的状态并处理结果。

if (response.status == PayUResponseStatus.success) {
  // 支付成功
  print("Payment Successful: ${response.response}");
} else {
  // 支付失败
  print("Payment Failed: ${response.response}");
}

6. 配置回调 URL

确保你已经配置了正确的回调 URL(surlfurl),以便 PayU 可以在支付完成后通知你的服务器。

7. 测试与生产环境

在开发和测试阶段,使用 PayUEnvironment.test 环境。当你准备上线时,切换到 PayUEnvironment.production 环境。

PayU.init(
  environment: PayUEnvironment.production, // 生产环境
  key: "YOUR_MERCHANT_KEY",
  salt: "YOUR_SALT",
);
回到顶部