iOS程序猿

swift3.0学习笔记(二) 支付宝集成

2016-11-25  本文已影响717人  Pamela_Liu

1.下载支付宝的SDK

https://open.alipay.com/developmentAccess/developmentAccess.htm
点击移动支付

2.支付宝集成


        //1.填写申请到的商家ID/账号ID/私钥

        let partner = ""

        let seller = ""

        let privateKey = ""


        //2.生成订单信息及签名

        let order = Order()

        order.partner = partner

        order.sellerID = seller

        order.outTradeNO = "" //订单ID(由商家自行制定)

        order.subject = "" //商品标题

        order.body = "" //商品描述

        order.totalFee = String(format:"%.2f",998.0000) //商品价格

        order.notifyURL =  "http://www.xxx.com" //回调URL

        

        //固定值

        order.service = "mobile.securitypay.pay"

        order.paymentType = "1"

        order.inputCharset = "utf-8"

        order.itBPay = "30m"

        order.showURL = "m.alipay.com"

        

        //3.应用注册scheme,在AlixPayDemo-Info.plist定义URL types

        //当用户支付成功或者失败后,支付宝客户端会通过该客户端,调回到该URL,所以要配置URL Types

        let appScheme = "alisdkdemo"

        

        //4.将商品信息拼接成字符串

        let orderSpec = order.description

        // 5.对订单进行签名加密

        let signer = CreateRSADataSigner(privateKey)

        guard let signedString = signer?.sign(orderSpec) else { return }

        

        // 6.对订单进行格式化

        let orderString = String(format: "%@&sign=\"%@\"&sign_type=\"%@\"", [orderSpec, signedString, "RSA"])


        // 7.根据订单,调用支付宝的接口,让用户进行支付

        // 如果用户手机中没有安装支付宝客户端, 会弹出网页的支付宝进行支付

        // 该位置的支付结果就是用户使用网页支付时会回调的结果

        AlipaySDK.defaultService().payOrder(orderString, fromScheme: appScheme, callback: { (dict : [AnyHashable : Any]?) -> Void in

            let tempDict = dict as? [String : Any]

            print(tempDict ?? "")

        })

3.两个地方的回调结果的区别

上一篇 下一篇

猜你喜欢

热点阅读