swift 支付宝登录及支付方法封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 支付宝登录及支付方法封装相关的知识,希望对你有一定的参考价值。

参考技术A class AliPayManager: NSObject

    static let shared = AliPayManager()

    // 用于弹出警报视图,显示成功或失败的信息

    fileprivate weak var sender: UIViewController!

    // 支付成功的闭包

    fileprivate var paySuccessClosure: (() -> Void)?

    // 支付失败的闭包

    fileprivate var payFailClosure: (() -> Void)?

    ///登录成功的闭包

    fileprivate var loginSuccessClosure:((_ auth_code:String) -> Void)?

    ///登录失败的闭包

    fileprivate var loginFailClosure:(() -> Void)?

    // 外部用这个方法调起支付支付

    func payAlertController(_ sender: UIViewController,

                            request:String,

                            paySuccess: @escaping () -> Void,

                            payFail:@escaping () -> Void)

        // sender 是调用这个方法的控制器,

        self.sender = sender

        //用于提示用户支付宝支付结果,可以根据自己需求是否要此参数。

        self.paySuccessClosure = paySuccess

        self.payFailClosure = payFail

        AlipaySDK.defaultService().payOrder(request, fromScheme:"xxx",callback:nil)

   

    //外部用这个方法调起支付宝登录

    func login(_ sender:UIViewController,withInfo:String,loginSuccess: @escaping (_ str:String) -> Void,loginFail:@escaping () -> Void)

        // sender 是调用这个方法的控制器,

        // 用于提示用户微信支付结果,可以根据自己需求是否要此参数。

        self.sender = sender

        self.loginSuccessClosure = loginSuccess

        self.loginFailClosure = loginFail

        AlipaySDK.defaultService().auth_V2(withInfo:withInfo, fromScheme:"xxx", callback:nil)

   

    ///授权回调

    func showAuth_V2Result(result:NSDictionary)

        //        9000    请求处理成功

        //        4000    系统异常

        //        6001    用户中途取消

        //        6002    网络连接出错

        let returnCode:String = result["resultStatus"] as! String

        var returnMsg:String = ""

        switch  returnCode

        case "6001":

            returnMsg = "用户中途取消"

            break

        case "6002":

            returnMsg = "网络连接出错"

            break

        case "4000":

            returnMsg = "系统异常"

            break

        case "9000":

            returnMsg = "授权成功"

            break

        default:

            returnMsg = "系统异常"

            break

       

        print("授权结果---\(returnMsg)")

        //  显示授权结果提示框

//        UIAlertController.showAlertYes(sender, title: "授权结果", message: returnMsg, okButtonTitle:"确定", okHandler: (alert) in

//            if returnCode == "9000"

//                let r=result["result"] as! String

//                self.loginSuccessClosure?(r)

//

//            else

//                self.loginFailClosure?()

//           

//        )

   

    //传入回调参数

    func showResult(result:NSDictionary)

        let returnCode:String = result["resultStatus"] as! String

        if returnCode == "9000"

            self.paySuccessClosure?()

        else

            self.payFailClosure?()

       

   

uniapp获取支付宝user_id - 支付宝提现 - 登录授权 - APP支付宝登陆 - H5支付宝授权

效果图

uniapp须知(无奈之处)

uniapp绑定支付宝user_id提现 - 方法对比:

==== 不同接口 ====

【APP支付宝登录】

https://opendocs.alipay.com/open/218/105325

【网站支付宝登录】

以上是关于swift 支付宝登录及支付方法封装的主要内容,如果未能解决你的问题,请参考以下文章

关于小程序 接入 支付宝支付 微信支付

uniapp获取支付宝user_id - 支付宝提现 - 登录授权 - APP支付宝登陆 - H5支付宝授权

uniapp获取支付宝user_id - 支付宝提现 - 登录授权 - APP支付宝登陆 - H5支付宝授权

支付宝怎么查收支明细

(转载)Android支付宝支付封装代码

支付宝小程序授权登录踩坑