实现在 Harmony NEXT 运行的 Flutter 项目实现支付宝购买逻辑。
- 目前仅实现了
new Pay().pay(orderInfo, withLoading)
方法的桥接,其他方法暂未实现。 - 此插件仅仅是实现了在 NEXT 原生端调用支付宝完成支付,所需的 orderInfo 需要从 Flutter 层传递过来。
- 支付宝服务端逻辑请参考支付宝官方文档。
- 目前对接支付宝 NEXT 版 SDK版本为 V15.8.26
- Flutter 代码中从服务器获取 orderInfo
- Flutter 项目引入 next_alipay 插件
dependencies: next_alipay: git: url: https://github.com/litang0908/next_alipay.git
- 调用下面方法发起原生支付请求
import 'package:next_alipay/next_alipay.dart';
Future<void> _startAlipay() async {
//请自行实现生成 orderInfo 的逻辑,建议通过服务器来生成
var orderInfo = ''; //await getOrderInfo();
final nextAlipayPlugin = NextAlipay();
var payResult = await nextAlipayPlugin.startPay(orderInfo, true);
if (payResult?.isNotEmpty ?? false) {
var payResultJson = jsonDecode(payResult!);
var resultCode = payResultJson['resultStatus'] ?? '';
if (resultCode == '9000') {
//支付成功
// 刷新用户信息
} else if (resultCode == '6001') {
//支付取消
} else {
//支付失败
}
}
}
- 支付完成后,支付宝会回调到原生层,原生层再通过 EventChannel 传递给 Flutter 层,Flutter 层再处理支付结果。
- 如果
payResultJson['resultStatus'] == '9000'
代表支付成功。 - 如果支付不成功,请从
payResultJson['resultStatus']
中获取错误码,具体错误码请参考支付宝官方文档 常见API错误码大全