Flutter alipay支付集成,嘗試了3種插件
(1)插件sy_flutter_alipay ios下編譯失敗,放棄
(2)插件 flutter_alipay 最終也失敗放棄
https://github.com/best-flutter/flutter_alipay
幾個點:
1.info.plist
CFBundleURLTypes和LSApplicationQueriesSchemes
<key>LSApplicationQueriesSchemes</key>
<array>
<string>mqqOpensdkSSoLogin</string>
<string>mqzone</string>
<string>sinaweibo</string>
<string>alipayauth</string>
<string>alipay</string>
<string>safepay</string>
<string>mqq</string>
<string>mqqapi</string>
<string>mqqopensdkapiV3</string>
<string>mqqopensdkapiV2</string>
<string>mqqapiwallet</string>
<string>mqqwpa</string>
<string>mqqbrowser</string>
<string>wtloginmqq2</string>
<string>weixin</string>
<string>wechat</string>
<string>cydia</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>alipay</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>aimingAlipay</string>
</array>
</dict>
<dict/>
<dict/>
</array>
2.Appdelegate.swift增加
3.服務端回調
同pc的參數
var payResult = await FlutterAlipay.pay(payUrl);
print(payResult);
最后測試 能拉起支付,但返回app的時候 payResult的結果沒有,看了git issue 也沒有人回復,但有的人能成功。查看了官方sdk有2個接口
(1.0) mobile.securitypay.pay
(2.0)alipay.trade.app.pay
我用的是1.0 沒有reture result,不知道別人成功的是不是2.0
(3)最后用了靠譜的 ibatis,就是這個名字取的不行,怎么都想不到他是alipay插件,但很靠譜和好用,不管怎么樣 urlschme是一定要配置的
Map payResult;
try {
print("The pay info is : " + payUrl);
payResult = await aliPay(payUrl);
print("--->$payResult");
} on Exception catch (e) {
payResult = {};
}
if (!mounted) return;
print('payResult:' + payResult.toString());
if (payResult['resultStatus'].toString() == '9000') {
Utils.showToast('支付成功');
Navigator.of(context)
.push(MaterialPageRoute(builder: (_) => FinanceListView()));
} else {
Utils.showCustomAlert(context,
content: Text('支付失敗:' + payResult['resultStatus']));
}