1、目录
- Flutter 导入 tobias SDK
- 支付宝后台配置
- Node.js 配置
- Flutter 调起支付
2、导入 tobias SDK
在fulutter —- pubspec.yaml 文件中新增
dependencies:flutter_test:sdk: fluttertobias: ^2.1.2+1
3、支付宝后台设置
- 在商家中心中签约开通 APP支付

- 在开放平台中创建应用
- 在创建的应用中 添加APP支付能力

- 填写自己的APP包名与签名 签名获取工具

在应用信息中 设置回调地址、接口加签方式、应用网关
加签设置 将应用公钥复制进去
4、Node.js 后台配置
①:在项目中引入 alipay-sdk
②:项目配置
const AlipaySdk = require('alipay-sdk').defaultconst ali = new AlipaySdk({appId: '应用ID',notifyUrl: '回调地址',privateKey: '私钥',alipayPublicKey: '公钥',signType: 'RSA2',gateway: 'https://openapi.alipay.com/gateway.do'// 网关 固定});module.exports = {ali}

③:接口设置:
const alipay = require('../utils/alipay')const AlipayFormData = require('alipay-sdk/lib/form').default// 下单接口async aliPay(ctx) {const { platform, openid, title } = ctx.request.bodyconst out_trade_no = utils.getDate() + Math.random().toString().substring(2, 10)const formData = new AlipayFormData();const price = '0.01' // 价格formData.setMethod('get');formData.addField('notify_url', '回调地址');formData.addField('bizContent', {outTradeNo: out_trade_no,// 商家内部订单号productCode: "FAST_INSTANT_TRADE_PAY",// 固定totalAmount: price,subject: '主题', //body: "说明"});const result = await alipay.ali.exec('alipay.trade.app.pay', // APP支付 alipay.trade.page.pay--网页支付{},{ formData: formData },);// sdk返回的是一个地址 前端app需要的参数是url地址的后面参数const search = new URL(result).searchctx.body = search.substring(1) // 返回地址到前端},// 回调接口async aliPayCallBack(ctx) {const { out_trade_no, trade_no } = ctx.request.body}
5、Flutter前端调起使用
void aliPay() async {String openid = await Token();final data = await Dio().post('服务器请求地址');Map result = await tobias.aliPay(data.toString(), evn: AliPayEvn.ONLINE);//evn 固定参数if (result['resultStatus'] == "9000") { // 支付结果回调showToast('支付成功!');} else {showToast('支付失败!');}}
6、结语
至此在Flutter中接入支付宝支付已经完成了。
在接入的过程中,踩了许多的坑,阿里的sdk和flutter的sdk描写的都不够详细,所以在此记录一下,希望能帮助到你!
