Flutter支付集成插件razorpay_totalxsoftware的使用

Flutter支付集成插件razorpay_totalxsoftware的使用

Launch Totalx

Totalx Software 开发


RazorpayTotalxsoftware 是一个简化了Razorpay支付处理集成的Flutter插件,并且可选地支持Firebase日志记录。它负责订单创建、支付确认以及将交易日志保存到Firebase。

目录


功能

  • 订单创建:自动为Razorpay生成订单ID。
  • 自定义UI:显示一个用于确认的支付提示框。
  • 交易日志:可选地将交易详情保存到Firebase。
  • 回调支持:成功、失败和错误处理的回调函数。

安装

pubspec.yaml 文件中添加 razorpay_totalxsoftware 依赖项:

dependencies:
  razorpay_totalxsoftware:

然后,在你的Dart文件中导入该包:

import 'package:razorpay_totalxsoftware/razorpay_totalxsoftware.dart';

设置

  1. 初始化Firebase(可选):如果你计划将交易保存到Firebase,则需要在你的Flutter应用中设置Firebase。你可以参考官方的Firebase设置指南
  2. 配置Razorpay API密钥:你需要你的Razorpay API Key IDSecret Key 用于身份验证。

使用

发起支付的主要方法是 RazorpayTotalxsoftware.pay。它需要包括支付详情、用户信息以及处理支付流程的回调函数等参数。


方法参数

参数 类型 描述
context BuildContext Flutter构建上下文。
saveInFirebase bool 如果为 true,则保存交易详情到Firebase。
amount num 支付金额(货币单位)。
rzpKey String Razorpay API Key ID。
razorpayKeySecret String Razorpay Secret Key。
appName String 应用名称。
itemName String? 可选的商品名称或描述。
userProfile RzpUserProfile 包含姓名、电话号码和电子邮件的用户信息。
success Function 成功支付时触发的回调函数。
failure Function 支付失败时触发的回调函数。
error Function 支付过程中出现错误时触发的回调函数。

示例

以下是一个基本的示例,展示了如何在Flutter应用中使用 pay 方法:

RazorpayTotalxsoftware.pay(
  context,
  amount: 100,
  saveInFirebase: true,
  rzpKey: 'YOUR_RAZORPAY_KEY',
  razorpayKeySecret: 'YOUR_RAZORPAY_KEY_SECRET',
  appName: 'razorpay_web_totalxsoftware',
  // itemName: '商品名称', // 可选

  userProfile: RzpUserProfile(
    uid: 'unique_user_id',
    name: 'John Doe',
    email: 'qYqgK@example.com',
    phoneNumber: '1234567890',
  ),
  success: (response) {
    print(response.toString());
    print('支付成功');
  },
  failure: (response) {
    print(response.toString());
  },
  error: (response) {
    print(response.toString());
  },
);

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

1 回复

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


当然,以下是一个关于如何在Flutter应用中集成razorpay_flutter插件的示例代码案例。虽然你提到的是razorpay_totalxsoftware,但请注意,截至我的最后更新日期(2023年),更常见和官方的插件是razorpay_flutter。如果你确实在使用一个特定于totalxsoftware的分支或定制版本,请确保参考该版本的文档,但以下代码应大致相同或有所启发。

首先,确保你的Flutter项目已经设置好,并且在pubspec.yaml文件中添加了razorpay_flutter依赖:

dependencies:
  flutter:
    sdk: flutter
  razorpay_flutter: ^1.2.7  # 请检查最新版本号

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

接下来,你需要在你的Flutter应用中初始化Razorpay,并处理支付。以下是一个基本的实现步骤:

  1. 在AndroidManifest.xml中添加必要的权限和配置(确保替换YOUR_KEY_IDYOUR_KEY_SECRET为你的Razorpay密钥):
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <!-- 其他配置 -->

    <meta-data
        android:name="com.razorpay.ApiKey"
        android:value="YOUR_KEY_ID" />

    <activity
        android:name="com.razorpay.CheckoutActivity"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:screenOrientation="portrait" />

    <!-- 其他配置 -->

</manifest>
  1. 在iOS的Info.plist中添加URL Scheme(同样替换YOUR_KEY_ID):
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>rzp_your_key_id</string> <!-- 替换为YOUR_KEY_ID,并去掉下划线 -->
        </array>
    </dict>
</array>
  1. 在Dart代码中初始化Razorpay并处理支付
import 'package:flutter/material.dart';
import 'package:razorpay_flutter/razorpay_flutter.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final Razorpay _razorpay = Razorpay();

  @override
  void initState() {
    super.initState();
    _razorpay.on(Razorpay.EVENT_PAYMENT_SUCCESS, _handlePaymentSuccess);
    _razorpay.on(Razorpay.EVENT_PAYMENT_ERROR, _handlePaymentError);
    _razorpay.on(Razorpay.EVENT_EXTERNAL_WALLET, _handleExternalWallet);
  }

  void _handlePaymentSuccess(PaymentSuccessResponse response) {
    print("Payment Success: ${response.toJson()}");
    // 处理支付成功逻辑
  }

  void _handlePaymentError(PaymentFailureResponse response) {
    print("Payment Failed: ${response.toJson()}");
    // 处理支付失败逻辑
  }

  void _handleExternalWallet(ExternalWalletResponse response) {
    print("External Wallet: ${response.toJson()}");
    // 处理使用外部钱包支付逻辑
  }

  void _openCheckout() async {
    var options = {
      'key': 'YOUR_KEY_ID', // 替换为你的Razorpay密钥ID
      'amount': '1000', // 支付金额(单位:货币最小单位,例如:对于INR,1000代表10.00 INR)
      'currency': 'INR',
      'name': 'Merchant Name',
      'description': 'Payment Description',
      'image': 'https://example.com/your_logo.png',
      'prefill': {
        'email': 'user@example.com',
        'contact': '1234567890',
      },
      'theme': {
        'color': '#FF5733'
      }
    };

    try {
      _razorpay.open(options);
    } catch (e) {
      print(e);
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Razorpay Payment Integration'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _openCheckout,
          child: Text('Pay Now'),
        ),
      ),
    );
  }
}

请确保你已经从Razorpay仪表板获取了正确的KEY_IDKEY_SECRET,并在代码中正确替换。此外,根据你应用的具体需求,你可能需要调整支付选项和UI设计。

这个示例展示了如何在Flutter应用中集成Razorpay支付插件,并处理支付成功、失败和使用外部钱包支付的事件。如果你使用的是razorpay_totalxsoftware的特定版本,请查阅该版本的文档以获取任何特定的配置或代码调整。

回到顶部