美文网首页
swift - 支付宝

swift - 支付宝

作者: 劉戦軍 | 来源:发表于2016-11-11 11:18 被阅读118次

一、(可参照)最新版支付宝支付流程:

  • 未集成过支付宝的朋友(前后台均可)参考此流程进行orderString的制作过程


    前后台订单信息参考流程.png

二、首先需要下载最新版的支付宝SDK

支付宝官方Demo与SDK下载.png
  • 【重点来了】
  • 下载完成后需要将demo中的Order.h与.m类文件拖入你的项目中, SDK中的内容如下图所示集成到你的项目中:
官方Demo与SDK中需要集成的内容.png
  • 将文件夹中的类导入之后需要在swift和OC桥接的.h文件中导入需要的头文件
桥接文件中导入头文件.png

三、然后只需要一句代码就可以搞定支付宝了

上代码:
    1. 首先在AppDelegate中获取回调:

    func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool {
        
        WXApi.handleOpenURL(url, delegate: self)
        
        //支付宝支付的回调
        if url.host!.isEqualToStr("safepay"){
            AlipaySDK.defaultService().processOrderWithPaymentResult(url)
            {
                CHAliPay.zhifubaoPayCallBack($0)
            }
        }
        
        if url.host!.isEqualToStr("platformapi"){
            AlipaySDK.defaultService().processAuthResult(url)
            {
                CHAliPay.zhifubaoPayCallBack($0)
            }
        }
        
        return true
    }
  • 2.直接封装好代码即可

import UIKit

class CHAliPay: NSObject {
    
    // 支付宝支付, 这里需要将发送给支付宝的这个字符串传进来即可
    class func aliPay(payParams: String) {
        
        //应用注册scheme,在AlixPayDemo-Info.plist定义URL types一致
        let appScheme = "AlipayProject"; //需要和URL Types统一
        
        AlipaySDK.defaultService().payOrder(payParams, fromScheme: appScheme) { (dict) in
            self.zhifubaoPayCallBack(dict)
        }
    }
    
    //支付宝支付的回调
    class func zhifubaoPayCallBack(resultDic:[NSObject : AnyObject]){
        
        if let Alipayjson:[String:AnyObject] = resultDic as? [String:AnyObject]{
            let resultStatus = Alipayjson["resultStatus"] as! String
            if resultStatus == "9000"{
                print("订单支付成功")
                NSNotificationCenter.defaultCenter().postNotificationName(kThirdNotification, object: self, userInfo: nil)
            }else if resultStatus == "8000" {
                print("正在处理中")
            }else if resultStatus == "4000" {
                print("订单支付失败")
            }else if resultStatus == "6001" {
                print("用户中途取消")
            }else if resultStatus == "6002" {
                print("网络连接出错")
            }
        }
    }
}

提示: 除了上面需要配置的信息, 下面的代码可以直接拷贝, 需要严格按照步骤集成支付宝, 出现"ALI69, ALI......"之类的问题, 请前后台直接参考步骤一流程即可解决

相关文章

网友评论

      本文标题:swift - 支付宝

      本文链接:https://www.haomeiwen.com/subject/nlcfpttx.html