Flutter支付集成插件phonepe_pg_web的使用
Flutter支付集成插件phonepe_pg_web的使用
该插件为PhonePe PG SDK提供了Flutter包装器,允许您通过您的Flutter Web应用轻松接受付款。
使用方法
要使用该插件,请首先在您的pubspec.yaml
文件中添加以下依赖:
dependencies:
phonepe_pg: ^1.0.0
然后导入包:
import 'package:phonepe_pg/phonepe_pg.dart';
初始化交易
调用initTransaction()
方法并传入以下参数来初始化交易:
merchantTransactionId
: 可选的交易标识符。customerMobile
: 客户的手机号码。amount
: 需要支付的金额(以派士为单位,100派士等于1印度卢比)。redirectType
: 重定向类型。
redirectType
参数可以设置为 RedirectType.REDIRECT
或 RedirectType.POST
。如果指定 RedirectType.REDIRECT
,用户将被重定向到PhonePe应用以完成支付。如果指定 RedirectType.POST
,支付将在您的Flutter应用内完成。
initTransaction()
方法返回一个 PaymentResponse
对象,其中包含交易状态和重定向URL(如果指定了 RedirectType.REDIRECT
)。
示例
以下示例展示了如何使用PhonePe PG SDK初始化交易:
import 'package:phonepe_pg/phonepe_pg.dart';
Future<PaymentResponse> initTransaction() async {
PaymentResponse paymentResponse = await PhonePePg.initTransaction({
'customerMobile': '+919876543210', // 客户手机号
'amount': 100, // 金额,100派士等于1印度卢比
'redirectType': RedirectType.REDIRECT, // 重定向类型
});
return paymentResponse;
}
启动交易
要启动交易,请使用 initTransaction()
方法返回的重定向URL调用 launchUrl()
方法。
调试模式
在调试模式下,插件将使用PhonePe沙盒环境。要在初始化 PhonePePg
对象时启用调试模式,请将 debug
属性设置为 true
。
PhonePePg phonePePg = PhonePePg(
merchantId: 'YOUR_MERCHANT_ID', // 商户ID
merchantUserId: 'YOUR_MERCHANT_USER_ID', // 商户用户ID
salt: 'YOUR_SALT', // 盐值
saltIndex: 'YOUR_SALT_INDEX', // 盐值索引
redirectUrl: 'YOUR_REDIRECT_URL', // 重定向URL
callbackUrl: 'YOUR_CALLBACK_URL', // 回调URL
debug: true, // 调试模式
);
更多关于Flutter支付集成插件phonepe_pg_web的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter支付集成插件phonepe_pg_web的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
phonepe_pg_web
是一个用于在 Flutter 应用中集成 PhonePe 支付网关的插件。它允许开发者通过 WebView 或类似的方式将 PhonePe 的支付页面嵌入到应用中,从而实现支付功能。
以下是如何在 Flutter 项目中使用 phonepe_pg_web
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 phonepe_pg_web
插件的依赖。
dependencies:
flutter:
sdk: flutter
phonepe_pg_web: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入插件
在你的 Dart 文件中导入 phonepe_pg_web
插件。
import 'package:phonepe_pg_web/phonepe_pg_web.dart';
3. 配置支付参数
在使用 PhonePe 支付之前,你需要配置支付参数,例如商户 ID、订单 ID、金额等。
final paymentParams = {
'merchantId': 'YOUR_MERCHANT_ID',
'transactionId': 'YOUR_TRANSACTION_ID',
'amount': '100', // 金额,单位为分
'callbackUrl': 'YOUR_CALLBACK_URL',
'mobileNumber': 'YOUR_CUSTOMER_MOBILE_NUMBER',
'message': 'Payment for order #123',
};
4. 启动支付
使用 PhonePePgWeb.launchPayment
方法启动支付流程。你可以传递一个 BuildContext
和支付参数。
void initiatePayment(BuildContext context) async {
try {
final result = await PhonePePgWeb.launchPayment(
context,
paymentParams,
);
// 处理支付结果
if (result['status'] == 'SUCCESS') {
// 支付成功
print('Payment Successful: ${result['transactionId']}');
} else {
// 支付失败
print('Payment Failed: ${result['errorMessage']}');
}
} catch (e) {
// 捕获异常
print('Error: $e');
}
}
5. 处理支付结果
在 launchPayment
方法的回调中,你可以处理支付结果。result
对象包含了支付的状态和相关信息。
6. 注意事项
- 回调 URL: 确保你提供了正确的回调 URL,以便 PhonePe 在支付完成后能够通知你的服务器。
- 测试环境: 在开发阶段,你可以使用 PhonePe 提供的测试环境和测试商户 ID。
- 安全性: 不要在客户端硬编码敏感信息,如 API 密钥或商户 ID。建议通过后端生成支付参数。
7. 示例代码
以下是一个完整的示例代码:
import 'package:flutter/material.dart';
import 'package:phonepe_pg_web/phonepe_pg_web.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('PhonePe Payment Example'),
),
body: Center(
child: ElevatedButton(
onPressed: () => initiatePayment(context),
child: Text('Pay with PhonePe'),
),
),
),
);
}
void initiatePayment(BuildContext context) async {
final paymentParams = {
'merchantId': 'YOUR_MERCHANT_ID',
'transactionId': 'YOUR_TRANSACTION_ID',
'amount': '100', // 金额,单位为分
'callbackUrl': 'YOUR_CALLBACK_URL',
'mobileNumber': 'YOUR_CUSTOMER_MOBILE_NUMBER',
'message': 'Payment for order #123',
};
try {
final result = await PhonePePgWeb.launchPayment(
context,
paymentParams,
);
if (result['status'] == 'SUCCESS') {
// 支付成功
print('Payment Successful: ${result['transactionId']}');
} else {
// 支付失败
print('Payment Failed: ${result['errorMessage']}');
}
} catch (e) {
print('Error: $e');
}
}
}