Flutter支付功能插件pay_hyj的使用
Flutter支付功能插件pay_hyj的使用
相关文档
- 蚂蚁金服开放平台
- 支付宝支付
- 支付宝登录
- 应用签名工具
开始使用
Android
# 不需要做任何额外接入工作
# 混淆已打入 Library,随 Library 引用,自动添加到 apk 打包混淆
iOS
# 不需要做任何额外接入工作
# 配置已集成到脚本里
UTDID冲突的问题解决方案
alipay_kit:
ios: noutdid # 默认 utdid
安装(仅iOS)
# step.1 安装必要依赖
sudo gem install plist
# step.2 切换工作目录,插件里为 example/ios/,普通项目为 ios/
cd example/ios/
# step.3 执行脚本
pod install
示例
示例代码
import 'dart:async';
import 'dart:convert';
import 'package:alipay_kit/alipay_kit.dart';
import 'package:alipay_kit_example/unsafe_alipay_kit.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({
super.key,
});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Home(),
);
}
}
class Home extends StatefulWidget {
const Home({
super.key,
});
[@override](/user/override)
State<StatefulWidget> createState() {
return _HomeState();
}
}
/// pkcs1 -> '-----BEGIN RSA PRIVATE KEY-----\n${支付宝RSA签名工具生产的私钥}\n-----END RSA PRIVATE KEY-----'
/// pkcs8 -> '-----BEGIN PRIVATE KEY-----\n${支付宝RSA签名工具生产的私钥}\n-----END PRIVATE KEY-----'
class _HomeState extends State<Home> {
static const bool _ALIPAY_USE_RSA2 = true;
static const String _ALIPAY_APPID = 'your alipay appId'; // 支付/登录
static const String _ALIPAY_PID = 'your alipay pid'; // 登录
static const String _ALIPAY_TARGETID = 'your alipay targetId'; // 登录
static const String _ALIPAY_PRIVATEKEY =
'your alipay rsa private key(pkcs1/pkcs8)'; // 支付/登录
late final StreamSubscription<AlipayResp> _paySubs;
late final StreamSubscription<AlipayResp> _authSubs;
[@override](/user/override)
void initState() {
super.initState();
_paySubs = AlipayKitPlatform.instance.payResp().listen(_listenPay);
_authSubs = AlipayKitPlatform.instance.authResp().listen(_listenAuth);
}
void _listenPay(AlipayResp resp) {
final String content = 'pay: ${resp.resultStatus} - ${resp.result}';
_showTips('支付', content);
}
void _listenAuth(AlipayResp resp) {
final String content = 'pay: ${resp.resultStatus} - ${resp.result}';
_showTips('授权登录', content);
}
[@override](/user/override)
void dispose() {
_paySubs.cancel();
_authSubs.cancel();
super.dispose();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Alipay Kit Demo'),
),
body: ListView(
children: <Widget>[
ListTile(
title: Text('环境检查'),
onTap: () async {
final String content =
'alipay: ${await AlipayKitPlatform.instance.isInstalled()}';
_showTips('环境检查', content);
},
),
ListTile(
title: Text('支付'),
onTap: () {
final Map<String, dynamic> bizContent = <String, dynamic>{
'timeout_express': '30m',
'product_code': 'QUICK_MSECURITY_PAY',
'total_amount': '0.01',
'subject': '1',
'body': '我是测试数据',
'out_trade_no': '123456789',
};
final Map<String, dynamic> orderInfo = <String, dynamic>{
'app_id': _ALIPAY_APPID,
'biz_content': json.encode(bizContent),
'charset': 'utf-8',
'method': 'alipay.trade.app.pay',
'timestamp': '2016-07-29 16:55:53',
'version': '1.0',
};
AlipayKitPlatform.instance.unsafePay(
orderInfo: orderInfo,
signType: _ALIPAY_USE_RSA2
? UnsafeAlipayKitPlatform.SIGNTYPE_RSA2
: UnsafeAlipayKitPlatform.SIGNTYPE_RSA,
privateKey: _ALIPAY_PRIVATEKEY,
);
},
),
ListTile(
title: Text('授权'),
onTap: () {
AlipayKitPlatform.instance.unsafeAuth(
appId: _ALIPAY_APPID,
pid: _ALIPAY_PID,
targetId: _ALIPAY_TARGETID,
signType: _ALIPAY_USE_RSA2
? UnsafeAlipayKitPlatform.SIGNTYPE_RSA2
: UnsafeAlipayKitPlatform.SIGNTYPE_RSA,
privateKey: _ALIPAY_PRIVATEKEY,
);
},
),
],
),
);
}
void _showTips(String title, String content) {
showDialog<void>(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text(title),
content: Text(content),
);
},
);
}
}
更多关于Flutter支付功能插件pay_hyj的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter支付功能插件pay_hyj的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
pay_hyj
是一个用于 Flutter 应用的支付插件,支持多种支付方式,如支付宝、微信支付等。使用该插件可以方便地在 Flutter 应用中集成支付功能。以下是使用 pay_hyj
插件的基本步骤。
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 pay_hyj
插件的依赖:
dependencies:
flutter:
sdk: flutter
pay_hyj: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 配置支付平台
根据你使用的支付平台(如支付宝、微信支付等),你可能需要在项目中添加相应的配置。
Android 配置
在 android/app/build.gradle
文件中,确保已经添加了必要的依赖和配置。例如,对于微信支付,你可能需要添加以下内容:
android {
...
defaultConfig {
...
manifestPlaceholders = [
WX_APP_ID: "你的微信AppID"
]
}
}
iOS 配置
在 ios/Runner/Info.plist
文件中,添加微信支付的配置:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>weixin</string>
<key>CFBundleURLSchemes</key>
<array>
<string>你的微信AppID</string>
</array>
</dict>
</array>
3. 初始化支付插件
在你的 Dart 代码中,初始化 pay_hyj
插件:
import 'package:pay_hyj/pay_hyj.dart';
void main() {
PayHyj.initialize(
wxAppId: "你的微信AppID",
aliAppId: "你的支付宝AppID",
);
runApp(MyApp());
}
4. 发起支付请求
根据你选择的支付方式,发起支付请求。例如,使用微信支付:
void payWithWeChat() async {
try {
final result = await PayHyj.payWithWeChat(
appId: "你的微信AppID",
partnerId: "商户号",
prepayId: "预支付交易会话ID",
packageValue: "扩展字段",
nonceStr: "随机字符串",
timeStamp: "时间戳",
sign: "签名",
);
if (result == PayResult.success) {
print("支付成功");
} else {
print("支付失败");
}
} catch (e) {
print("支付异常: $e");
}
}