Flutter支付集成插件flutter_pay_orc的使用

flutter_pay_orc

一个用于orc支付的Flutter插件。

开发者:PayOrc

入门指南

关于SDK

遵循以下步骤:

步骤 1:在应用程序初始化时指定环境

在您的应用程序中,在初始化时指定环境。

void main() {        
    FlutterPayOrc.initialize(
        merchantKey: 'your-merchant-key', // 更新您的商户密钥。
        merchantSecret: 'your-merchant-secret', // 更新您的商户密钥。
        environment: Environment.test, // 切换到Environment.production以启用生产环境
    );
    runApp(const MyApp());
}

步骤 2:实现createPaymentWithWidget方法,该方法将在视图上自动推送

在应用程序中调用此方法:

await FlutterPayOrc.instance.createPaymentWithWidget(
    context: context,
    request: createPayOrcPaymentRequest(), // 创建支付请求对象
    onPopResult: (String? pOrderId) async {
        await _fetchTransaction(pOrderId); // 获取交易状态
    },
    errorResult: (message) {
        // 显示错误提示给用户
    });

示例代码:创建支付请求对象

PayOrcPaymentRequest(
    data: Data(
      className: PayOrcClass.ecom.name.toUpperCase(),
      action: PayOrcAction.sale.name.toUpperCase(),
      captureMethod: PayOrcCaptureMethod.manual.name.toUpperCase(),
      paymentToken: "",
      orderDetails: OrderDetails(
        mOrderId: "1234",
        amount: "500",
        convenienceFee: "0",
        quantity: "1",
        currency: "AED", // 应动态设置货币
        description: "",
      ),
      customerDetails: CustomerDetails(
        mCustomerId: "123",
        name: "John Doe",
        email: "johndoe@example.com",
        mobile: "987654321",
        code: "971", // 不应包含+号
      ),
      billingDetails: BillingDetails(
        addressLine1: "address 1",
        addressLine2: "address 2",
        city: "Amarpur",
        province: "Bihar", // 州
        country: "IN", // 应为两位国家代码
        pin: "482008",
      ),
      shippingDetails: ShippingDetails(
        shippingName: "John Doe",
        shippingEmail: "",
        shippingCode: "91", // 不应包含+号
        shippingMobile: "9876543210",
        addressLine1: "address 1",
        addressLine2: "address 2",
        city: "Mumbai",
        province: "Maharashtra", // 州
        country: "IN", // 应为两位国家代码
        pin: "482005",
        locationPin: "https://www.google.com/maps?q=24.227923067092433,80.07790793685352",
        shippingCurrency: "AED", // 应动态设置货币
        shippingAmount: "10",
      ),
      urls: Urls(
        success: "",
        cancel: "",
        failure: "",
      ),
      parameters: [
        {
          "alpha": "",
        },
        {
          "beta": "",
        },
        {
          "gamma": "",
        },
        {
          "delta": "",
        },
        {
          "epsilon": "",
        }
      ],
      customData: [
        {
          "alpha": "",
        },
        {
          "beta": "",
        },
        {
          "gamma": "",
        },
        {
          "delta": "",
        },
        {
          "epsilon": "",
        }
      ],
    ),
);

注意事项:

  • 所有字段均为必填项。
  • 如果某个字段没有数据,请将其作为空字符串发送,而不是传递null。
  • 类、操作和捕获方法为枚举类型。
  • 参数和自定义数据将是HashMap的列表。

步骤 3:获取支付交易状态

通过createPayment响应中的p_order_id获取支付交易状态。

在应用程序中调用此方法:

final transaction = await FlutterPayOrc.instance.fetchPaymentTransaction(
  orderId: pOrderId.toString(),
  onLoadingResult: (loading) {
      // 使用此布尔值管理加载状态
  },
  errorResult: (message) {
      // 显示错误提示给用户
  },
);
if (transaction != null) {
  // 将交易信息更新到商户服务器

  FlutterPayOrc.instance.clearData();
}

步骤 4:清除本地数据

调用以下方法清除本地数据。

在应用程序中调用此方法:

FlutterPayOrc.instance.clearData();

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

1 回复

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


flutter_pay_orc 是一个用于在 Flutter 应用中集成支付功能的插件。它支持多种支付方式,如支付宝、微信支付等。以下是如何使用 flutter_pay_orc 插件的基本步骤:

1. 添加依赖

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

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

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

2. 配置支付平台

根据你使用的支付平台(如支付宝、微信支付等),你可能需要在项目中配置相应的平台设置。

Android 配置

android/app/src/main/AndroidManifest.xml 中添加必要的权限和支付配置:

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

iOS 配置

ios/Runner/Info.plist 中添加必要的权限和支付配置:

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

3. 初始化支付插件

在你的 Flutter 应用中初始化 flutter_pay_orc 插件:

import 'package:flutter_pay_orc/flutter_pay_orc.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await FlutterPayOrc.initialize();
  runApp(MyApp());
}

4. 发起支付请求

使用 flutter_pay_orc 插件发起支付请求。以下是一个简单的示例:

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

class PaymentPage extends StatelessWidget {
  Future<void> _pay() async {
    try {
      // 发起支付请求
      final result = await FlutterPayOrc.pay(
        amount: '100.00', // 支付金额
        currency: 'CNY',  // 货币类型
        paymentMethod: PaymentMethod.alipay, // 支付方式
        orderId: '123456', // 订单ID
        description: 'Test Payment', // 订单描述
      );

      // 处理支付结果
      if (result.status == PaymentStatus.success) {
        print('Payment successful');
      } else {
        print('Payment failed: ${result.message}');
      }
    } catch (e) {
      print('Error: $e');
    }
  }

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