插件
# 支付宝工具
alipay_kit: ^1.1.0
说明一下:可以用其他插件的,不影响,支付宝本身在客户端就很简单,这个主要我跟微信插件是同个作者,写的差不多,我就用它了,评分很低。
1、先创建应用
支付的话,1和2都可以,区别不大,这里以自定义(2)为例
上面图片填完就来到这里
这里需要签名,所以先去搞签名先。
支付宝文档
这里推荐用普通公钥方式和web方式获取秘钥不用下载,简单
拿到后回到设置加签的页面
这里要账号拥有者才可以验证,及时你用短信验证,后面也要支付密码验证滴。
点保存设置,然后就会生成这两个
不知道干嘛用的,但是复制保存下来吧。
配置基本结束
插件配置说明:
Info.plist添加
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>alipay</string>
<key>CFBundleURLSchemes</key>
<array>
<string>说明</string>
</array>
</dict>
</array>
说明:alipay${Appid}yanke,我按照插件说的填alipay${Appid}发现不能支付完成后不能回到app,就加了后面那些东西,按照支付宝官方的说法就是尽量写一个能成为你app的唯一标识。
Info.plist添加:(注意看这个key是不是已经有了,有的话直接添加<string值>就行)
<key>LSApplicationQueriesSchemes</key>
<array>
<string>alipay</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
///直接复制就能用
import 'package:alipay_kit/alipay_kit.dart';
import 'package:flutter/foundation.dart';
class AlipayTool {
static AlipayTool _instance;
static Alipay _alipay;
/// 获取实例
factory AlipayTool.getInstance() => _getInstance();
static _getInstance() {
if (_instance == null) {
_instance = AlipayTool._internal();
}
return _instance;
}
/// 初始化
AlipayTool._internal() {
_alipay = Alipay();
}
//检查是否登录
Future<bool> isInstall() async {
return await _alipay.isInstalled();
}
//支付-->先写一种
Stream<AlipayResp> payOrderSign({
@required String orderInfo,
bool isShowLoading = true,
}) {
_alipay.payOrderSign(orderInfo: orderInfo, isShowLoading: isShowLoading);
return _alipay.payResp();
}
}
使用:
AlipayTool.getInstance().isInstall().then((value) {
if (value) {
AlipayTool.getInstance()
.payOrderSign(orderInfo: res.data.payInfo)
.listen((event) {
_listenAliPay(event);
});
} else {
Fluttertoast.showToast(msg: '请安装支付宝,再继续尝试');
}
});
注:看你后端返回给你是怎样的数据格式,选择用哪种方式;