一、(可参照)最新版支付宝支付流程:
-
未集成过支付宝的朋友(前后台均可)参考此流程进行orderString的制作过程
二、首先需要下载最新版的支付宝SDK
下载地址: https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1
注意: 我使用的是App支付功能, 所以如果没有开通App支付宝支付能力的商户, 可先申请开通App支付功能
进入地址下载第一个如下图: 因为我们下边需要用到demo中的一个类
- 【重点来了】
- 下载完成后需要将demo中的Order.h与.m类文件拖入你的项目中, SDK中的内容如下图所示集成到你的项目中:
- 将文件夹中的类导入之后需要在swift和OC桥接的.h文件中导入需要的头文件
三、然后只需要一句代码就可以搞定支付宝了
上代码:
- 首先在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("网络连接出错")
}
}
}
}