flutter 支付(1)- 支付宝支付

首先,大家可以看下flutter的一些支付宝库

flutter_alipay: ^0.1.2

运行一下,flutter pub get

首先在iOS项目下配置一些设置:

1、Runner-Bridging-Header.h中导入头文件

#import

2、在AppDelegate里添加如下配置

override func application(_application:UIApplication, open url:URL, sourceApplication:String?, annotation:Any) ->Bool{

 if(url.host=="safepay")//支付宝支付

        {

 return FlutterAlipayPlugin.handleOpen(url);

        }

 return true;

    }

 override func application(_application:UIApplication, handleOpen url:URL) ->Bool{

if(url.host=="safepay")//支付宝支付

        {

 return FlutterAlipayPlugin.handleOpen(url);

        }

 return true;

    }

 override func application(_app:UIApplication, open url:URL, options: [UIApplication.OpenURLOptionsKey:Any] = [:]) ->Bool{

if(url.host=="safepay")//支付宝支付

        {

 return FlutterAlipayPlugin.handleOpen(url);

        }

 return true;

    }

3、在info.plist中加入如下配置

CFBundleURLTypes

CFBundleTypeRole

Editor

CFBundleURLName

alipay

CFBundleURLSchemes

***alipay

CFBundleVersion


4、在Flutter项目下可以创建一个ALiPayHelper的类,用来管理阿里支付,返回Future,成功为true,不成功为false

class AliPayHelper {

  static Future aliPay(String sign) async {

    if (sign == null || sign.length == 0) {

      return false;

    }

    FlutterAlipay.pay(sign).then((payResult) {

      print('>>>>>  ${payResult.toString()}');

      /*

        /// 支付状态,参考支付宝的文档https://docs.open.alipay.com/204/105695/

  /// 返回码,标识支付状态,含义如下:

  /// 9000——订单支付成功        上面的result有值

  /// 8000——正在处理中

  /// 4000——订单支付失败

  /// 5000——重复请求

  /// 6001——用户中途取消

  /// 6002——网络连接出错

      */

      String payResultStatus = payResult.resultStatus;

      if (payResultStatus == "9000") {

        return true;

        print("支付成功");

        CommonToast.showToast('支付成功');

      } else if (payResultStatus == "6001") {

        return false;

        print("支付取消");

        CommonToast.showToast('支付取消');

      } else if (payResultStatus == "4000") {

        return false;

        print("支付失败");

        CommonToast.showToast('支付失败');

      } else if (payResultStatus == "8000") {

        return false;

        print("等待支付");

        CommonToast.showToast('等待支付');

      } else if (payResultStatus == "6002") {

        return false;

        print("无网络");

        CommonToast.showToast('无网络');

      } else if (payResultStatus == "5000") {

        return false;

        print("重复支付");

        CommonToast.showToast('重复支付');

      }else{

        return false;

        print("支付失败,未知错误");

        CommonToast.showToast('支付失败,未知错误');

      }

    }).catchError((e) {

      return false;

      print("支付失败");

      CommonToast.showToast('支付失败');

    });

  }

}

你可能感兴趣的:(flutter 支付(1)- 支付宝支付)