问答1 问答5 问答50 问答500 问答1000

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

提问网友 发布时间:2022-09-22 03:17
声明声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2023-11-24 00:03
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?()

        }

    }

}

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

先缴纳职业年金等退休时再领这有什么意又呢? 芽菜肉末蒸豆腐的做法有哪些 梦幻山三宝塔礁必杀书能卖多少钱、还有七十的剑制造书、和单法落岩 想从从北京去腾冲大理丽江这三个地方,最后在返回北京,先去哪里比较合适,怎么玩比较节省时间,是自由行 三宝塔龙门的篆书怎么写 人教版语文高一高二必背古诗文(题目) 高二人教版语文必修5第一单元作文题目 人教版高二必修五的全国100所名校双级限时测评卷·语文卷(四)的答案 人教版高二语文必修五必背古诗文题目 人教版语文,高二上课文《故都的秋》课后练习第二题,仿写 电大学费是多少?按学期缴费还是按年缴费 大专学费是每年交一次,还是一年的上下学期都交? 电大是一个学期交一次学费还是两个学期交一次呢!每个学期都有书和作业吗?求帮忙 电大学费是否要一次性交齐,是否可以分期付款? 你好,我想知道电大的学费是一年一缴费,还是每个学期一缴费?我去年秋天缴费2000多,这个月底又要交 电大专科要交几个学期的学费 window10系统64位装了打印机驱动,提示你没有权限修改打印机设置,请联系管理员。怎么办 格林童话读书笔记10篇 可配置交换机都可以划分vlan吗? 俄罗斯出口橄榄油吗 女朋友给我送鞋有什么寓意啊? 请问苹果手机可以上传自己的伴奏吗 疟原虫的三期六形分别是什么? 猪肺罗汉果菜干汤是凉的吗? 日常生活中,可以清热化痰延衰老的食物都有哪些? 别怕我伤心歌词?谁告诉我 急求荷花淀的主要内容 果汁要怎么做才有营养跟好喝? 小炒包菜怎么做好吃,小炒包菜的家常做法 小炒包菜的正宗做法,小炒包菜怎样做才好吃的做法步骤 一息等于多少秒 一息是多少时间?怎么读? ‘狗恶酒酸’是什么意思?30求助!!! 啊庾奉承的拼音怎么写 中国平安保险西安网点查询电话 涅磐重生为题目的散文 浴火凤凰作文 满分作文浴火重生的书的名师点评 sai绘画,清除刚刚不小心画错一笔的快键是哪个?不要清除了全部,是清除一笔! 发青高瓜能吃吗 还有里面有黑点能吃吗