Flutter支付插件urwaypayment的使用

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

Flutter支付插件urwaypayment的使用

Urway是一个在Flutter中使用的支付网关。该Flutter插件为商家提供了与Urway支付网关API轻松无痛集成的功能。

开始使用

首先,在你的pubspec.yaml文件中导入该包:

dependencies:
  urwaypayment: ^2.0.5

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

系统需求

要使用此插件,你的系统需要满足以下条件:

  • Flutter >= 3.5.1
  • Dart >= 3.0.0 < 4.0.0
  • iOS >= 12.0
  • MacOS >= 10.14
  • Android compileSdk 34
  • Java 17
  • Android Gradle Plugin 8.5.2
  • Gradle Wrapper >= 8.4

额外配置

为了执行交易,你需要在应用的配置文件appconfig.json中配置终端ID、终端密码、商户密钥和URL。将该文件放置到应用的资产文件夹中。

权限设置

在Android和iOS平台上分别添加所需的权限:

Android

AndroidManifest.xml文件中添加以下权限:

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

完整示例

下面是一个完整的示例代码,展示了如何使用urwaypayment插件进行支付。

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:urwaypayment/urwaypayment.dart';

void main() => runApp(MyApp());

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

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    super.initState();
  }

  Future<void> makePayment() async {
    // 存储支付数据
    dynamic lastResult;

    try {
      // 发起支付请求
      lastResult = await Payment.makepaymentService(
        context: context,
        country: "SA",
        action: "1",
        currency: "SAR",
        amt: "1.00",
        customerEmail: "john.deo@gmail.com",
        trackid: "111AAA",
        udf1: "", // 用户自定义字段1
        udf2: "", // 用户自定义字段2
        udf3: "", // 用户自定义字段3
        udf4: "", // 用户自定义字段4
        udf5: "", // 用户自定义字段5
        cardToken: "", // 卡令牌
        address: "ABC", // 地址
        city: "PQR", // 城市
        state: "XYZ", // 州/省
        tokenizationType: "1", // 令牌化类型
        zipCode: "", // 邮政编码
        tokenOperation: "A/U/D", // 令牌操作
        metadata: "" // 元数据
      );

      print('支付结果: $lastResult');
    } on PlatformException {
      print('支付失败');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('支付测试'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text('等待响应...'),
              ElevatedButton(
                child: Text('调用支付'),
                onPressed: () => makePayment(),
              ),
              ElevatedButton(
                child: Text('调用Apple Pay支付'),
                onPressed: () => makePayment(),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,关于Flutter支付插件 urwaypayment 的使用,以下是一个简单的代码示例,展示了如何在Flutter应用中集成并使用该插件进行支付。请注意,这只是一个基本的示例,具体实现可能需要根据你的项目需求进行调整,并且确保你已经按照插件的官方文档完成了相关的配置和依赖项的添加。

首先,确保你已经在 pubspec.yaml 文件中添加了 urwaypayment 插件的依赖项:

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

然后,运行 flutter pub get 来获取依赖项。

接下来,在你的 Flutter 项目中,你可以按照以下步骤进行支付功能的实现:

  1. 导入插件

在你的 Dart 文件中(例如 main.dart 或一个专门的支付页面文件),导入 urwaypayment 插件:

import 'package:flutter/material.dart';
import 'package:urwaypayment/urwaypayment.dart';
  1. 配置支付参数

根据 urwaypayment 插件的要求,配置支付所需的参数。这些参数通常包括订单信息、支付渠道等。

Map<String, dynamic> paymentParams = {
  "orderId": "你的订单ID",
  "amount": "支付金额", // 通常为字符串形式的金额,例如 "100.00"
  "currency": "CNY", // 货币类型
  "channel": "WECHAT", // 支付渠道,例如 "WECHAT" 表示微信支付,"ALIPAY" 表示支付宝支付
  // 其他可能需要的参数,根据具体需求添加
};
  1. 发起支付请求

使用 UrwayPayment.startPayment 方法发起支付请求。

void _startPayment() async {
  try {
    bool result = await UrwayPayment.startPayment(paymentParams);
    if (result) {
      // 支付成功
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('支付成功')),
      );
    } else {
      // 支付失败或取消
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('支付失败或取消')),
      );
    }
  } catch (e) {
    // 处理异常
    print("支付过程中发生错误: $e");
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text('支付过程中发生错误')),
    );
  }
}
  1. 在UI中添加支付按钮

在你的 Flutter UI 中添加一个按钮,用于触发支付功能。

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('支付示例'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: _startPayment,
            child: Text('发起支付'),
          ),
        ),
      ),
    );
  }
}

这个示例展示了如何在 Flutter 应用中集成 urwaypayment 插件,并通过点击按钮来发起支付请求。请确保你已经正确配置了支付参数,并且你的后端服务器已经能够处理支付回调和订单验证等逻辑。

此外,根据 urwaypayment 插件的官方文档,你可能还需要进行额外的配置,例如添加必要的权限、处理支付回调等。请务必仔细阅读并遵循插件的官方文档,以确保支付功能的正确实现和安全性。

回到顶部