_。插件选型:
1.tobias 2.flutter_alipay 3.alipay_kit 4.sy_flutter_alipay
因为flutter项目的flutter sdk是2.53 有空安全,所以排除掉三年没更新的sy_flutter_alipay,
flutter_alipay排除掉的原因是本项目的dart sdk版本太低不支持,然后我也没有去改版本怕出问题
最终选择tobias 因为tobias作者很勤,更新快,功能也完全够需求
二。
tobias: ^2.1.0 #支付宝支付
import 'package:tobias/tobias.dart' as tobias;
依赖下载的时候出现了一个问题,导致项目跑不起来:
报错信息关键:Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.1.15.
解决办法:
项目级 gradle 文件中,只需将 ext.kotlin.version 从拥有的任何版本增加到“1.6.0”或任何可用的最新版本。
路径:/android/build.gradle
项目跑起来之后就可以正常支付了
tobias.isAliPayInstalled().then((value) => { // 判断是否安装了支付宝if (!value) {DialogUtils.errorToast('请安装支付宝')}else{tobias.aliPay(result).then((payRes) {//result是请求接口返回的字符串直接放进去就好了if (payRes['resultStatus'] == 9000 ||payRes['resultStatus'] == '9000') {print('支付成功${payRes}')} else {print(支付失败${payRes})}})}});
坑:要后台返回的是字符串!!! 不要解码直接返回 然后要正式环境下,不要沙箱返回的数据,因为这个插件直接对的是真实环境。
感想:其实支付宝支付很简单,只是之前没做过支付所以采坑了(后端也是第一次做...)
坑一:后台解码返回 坑二 :沙箱环境下返回的数据
测试了好多次没成功就开始怀疑后端了 哈哈 然后坚持让他直接返回真实环境下的数据,然后就是成功唤起支付宝成功支付!