iOS swift 4.0 支付宝支付

iOS应用中调用支付宝支付的方法
默认后台已经对orderString进行处理,app中直接能拿到orderString,然后进行调用。
首先去支付宝官网下载iOSDemo,导入到工程中


image.png

然后在TARGETS点击General,找到Linked Frameworks and Libraries,导入如下的支付宝SDK的依赖库


image.png

然后在你的调用支付宝支付的界面,假设这里是选择支付宝跟微信支付,如下图
11536724470_.pic.jpg

因为微信的接下来做,这里先写支付宝的
AlipaySDK.defaultService().payOrder(orderString, fromScheme: appScheme){
                        result in
                    }

调用支付宝支付就是这一句话
orderString是服务器返回的,appScheme是自己定义的,不能重复,需要在代码中定义

let appScheme = "yourappScheme"//你自己的appScheme

然后前往工程,TARGETS,Info下面的URL Types,新增一个


image.png

千万记住yourappScheme与 URL Schemes一致
为了拿到支付宝返回的数据,需要在AppDelegate.swift增加

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        if url.host == "safepay"{
            AlipaySDK.defaultService().processOrder(withPaymentResult: url){
                value in
                let code = value!
                let resultStatus = code["resultStatus"] as!String
                var content = ""
                switch resultStatus {
                case "9000":
                    content = "支付成功"
                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "aliPaySucceess"), object: content)
                case "8000":
                    content = "订单正在处理中"
                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "aliPayUnknowStatus"), object: content)
                case "4000":
                    content = "支付失败"
                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "aliPayDefeat"), object: content)
                case "5000":
                    content = "重复请求"
                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "aliPayDefeat"), object: content)
                case "6001":
                    content = "中途取消"
                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "aliPayDefeat"), object: content)
                case "6002":
                    content = "网络连接出错"
                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "aliPayDefault"), object: content)
                case "6004":
                    content = "支付结果未知"
                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "aliPayUnknowStatus"), object: content)
                default:
                    content = "支付失败"
                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "aliPayDefeat"), object: content)
                    break
                }
            }
        }
        return true
    }

附上支付宝官方对于resultStatus的解释


image.png

NotificationCenter处是给你的viewController发消息,说明支付宝回调了数据
关于2018年最新的iOS支付宝支付就是这样,如果写的不好还请见谅~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容