Flutter支付集成插件razorpay_totalxsoftware的使用
Flutter支付集成插件razorpay_totalxsoftware的使用

由 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';
设置
- 初始化Firebase(可选):如果你计划将交易保存到Firebase,则需要在你的Flutter应用中设置Firebase。你可以参考官方的Firebase设置指南。
- 配置Razorpay API密钥:你需要你的Razorpay
API Key ID
和Secret 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
更多关于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,并处理支付。以下是一个基本的实现步骤:
- 在AndroidManifest.xml中添加必要的权限和配置(确保替换
YOUR_KEY_ID
和YOUR_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>
- 在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>
- 在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_ID
和KEY_SECRET
,并在代码中正确替换。此外,根据你应用的具体需求,你可能需要调整支付选项和UI设计。
这个示例展示了如何在Flutter应用中集成Razorpay支付插件,并处理支付成功、失败和使用外部钱包支付的事件。如果你使用的是razorpay_totalxsoftware
的特定版本,请查阅该版本的文档以获取任何特定的配置或代码调整。