【Swift3.0】+ 支付寶支付集成

支付寶官方圖標(biāo).png

1蟹倾、申請開放平臺賬號广凸,并添加應(yīng)用

https://docs.open.alipay.com/200/105310#s2

支付寶應(yīng)用添加.png

2拌屏、開通支付功能

開通支付功能.png

3罚攀、配置支付寶的公鑰

配置支付寶公鑰.png

注:配置支付寶公鑰后党觅,服務(wù)端需提供接口給APP端簽名
官網(wǎng)簽名demo:https://docs.open.alipay.com/54/106370/

4、開始APP集成

1)導(dǎo)入需要的依賴包

a. 從地址:https://docs.open.alipay.com/54/104509 下載官網(wǎng)Demo斋泄,將項(xiàng)目下
AlipaySDK.bundle
AlipaySDK.framework
兩個(gè)包導(dǎo)入工程
b. 在Build Phases的Link Binary With Libraries中杯瞻,添加iOS依賴包

iOS依賴包.png

2)創(chuàng)建橋接文件導(dǎo)入支付寶的SDK

#import <AlipaySDK/AlipaySDK.h>

3)創(chuàng)建支付結(jié)果處理類AliSdkManager

PaymentType.ALIPAY  支付方式
PaymentResult  自定義支付結(jié)果

import UIKit
public class AliSdkManager: NSObject {
    public static var aliSdkManager:AliSdkManager!
    internal var orderPayController:OrderPayController!
    
    public static func sharedManager () -> AliSdkManager{
        AliSdkManager.aliSdkManager = AliSdkManager.init()
        return AliSdkManager.aliSdkManager
    }
    internal func showResult(result:NSDictionary){
//        9000  訂單支付成功
//        8000  正在處理中
//        4000  訂單支付失敗
//        6001  用戶中途取消
//        6002  網(wǎng)絡(luò)連接出錯(cuò)
        let returnCode:String = result["resultStatus"] as! String
        var returnMsg:String = result["memo"] as! String
        var subResultMsg:String = ""
        switch  returnCode{
        case "6001":
            break
        case "8000":
            orderPayController.paySuccess(PaymentType.ALIPAY, payResult: PaymentResult.PROCESS)
            break
        case "4000":
            orderPayController.paySuccess(PaymentType.ALIPAY, payResult: PaymentResult.FAIL)
            break
        case "9000":
            returnMsg = "支付成功"
            //支付返回信息:外系統(tǒng)訂單號、內(nèi)部系統(tǒng)訂單號等信息
            JSON.init(parseJSON: (result["result"] as! String))["alipay_trade_app_pay_response"]["sub_msg"].stringValue
            orderPayController.paySuccess(PaymentType.ALIPAY, payResult: PaymentResult.SUCCESS)
            break
        default:
            break
        }
    }
}

4)創(chuàng)建支付工具類AliPayUtils炫掐,用于調(diào)起支付

import UIKit
public class AliPayUtils: NSObject {
    var context:UIViewController;

    public init(context:UIViewController) {
        self.context = context;
    }
    
    public func pay(sign:String){
        let decodedData = sign.data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue))!
        let decodedString:String = (NSString(data: decodedData, encoding: String.Encoding.utf8.rawValue))! as String
 
        AlipaySDK.defaultService().payOrder(decodedString, fromScheme: "com.xmars.porsche.m2m", callback: { (resp) in
            print(resp)
        } )  
    }
}

5)在AppDelegate.swift的方法:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
添加代碼:

//初始化支付管理類
 AliSdkManager.sharedManager()

6)在AppDelegate.swift文件中重寫方法

    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        if url.host == "safepay" {
            AlipaySDK.defaultService().processOrder(withPaymentResult: url as URL!, standbyCallback: {
                (resultDic) -> Void in
                  //調(diào)起支付結(jié)果處理
                AliSdkManager.aliSdkManager.showResult(result: resultDic! as NSDictionary);
            })
        }
        return true;
    }

7)點(diǎn)擊工程文件中Info

8BB46E76-4F65-4E09-B3B9-4C0AFF54752F.png

此處的Url Schemes 需要和AliPayUtils中支付方法的fromScheme一樣的魁莉,否則可能回調(diào)失敗

 AlipaySDK.defaultService().payOrder(decodedString, fromScheme: "com.xmars.porsche.m2m", callback: { (resp) in
            print(resp)
        } )  

8)頁面調(diào)起支付

注:此處所有數(shù)據(jù)為測試數(shù)據(jù)

alipayUtils = AliPayUtils.init(context: self);
AliSdkManager.aliSdkManager.orderPayController = self
alipayUtils.pay(sign: "app_id=20177383904816397&method=alipay.trade.app.pay&charset=utf-8&sign_type=RSA2&timestamp=2017-06-30 14:59:58&version=1.0&format=json&notify_url=http://ceshidizhi.com:8080/store-manage/payment/callback/notifyAlipayApp.ihtml&biz_content={\"total_amount\":\"0.01\",\"timeout_express\":\"30m\",\"product_code\":\"QUICK_MSECURITY_PAY\",\"subject\":\"測試商品1\",\"out_trade_no\":\"10120170630123671234537281\"}&sign=df15Q+AQ3lZLlF95wNdXKRpc35nmpDeEL8XrlIlTbfTQE39Z+RTRrOlSxuBtAqZpCzZy0ulxlkI64Y85PFiU9E6x+vnaimFTMuVNUYqasfdsaNaH3+85dhTk5u0SxV5n/fOrklx+B1SzADl4218/lhjz4bNnMqE6lXiJAFdfasdsafdsafasfdsqZDFjmJxmnjI9nfH74lEP+yF4X68uRsdUFrXaEt2CciyL2RVNj5ZJcJ7njjwtAcgdcHblA6j6qHqFRnrvdxV5i5VGQn1SHwpvMEAdsadsa1mBl7kDlCpWh/M1chCNdB79e3B1O8KsX7Iaz8g2snBr/y/wHU7YHfsnuLw==}")

支付寶集成差不多就這樣啦!D嘉浮旗唁!

備注: 文中OrderPayController 為自定義的支付頁面,
支付寶版本為2017-06-10

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末痹束,一起剝皮案震驚了整個(gè)濱河市检疫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祷嘶,老刑警劉巖屎媳,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夺溢,死亡現(xiàn)場離奇詭異,居然都是意外死亡烛谊,警方通過查閱死者的電腦和手機(jī)风响,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丹禀,“玉大人状勤,你說我怎么就攤上這事∨缺溃” “怎么了荧降?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長攒读。 經(jīng)常有香客問我,道長辛友,這世上最難降的妖魔是什么薄扁? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮废累,結(jié)果婚禮上邓梅,老公的妹妹穿的比我還像新娘。我一直安慰自己邑滨,他們只是感情好日缨,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著掖看,像睡著了一般匣距。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哎壳,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天毅待,我揣著相機(jī)與錄音,去河邊找鬼归榕。 笑死尸红,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刹泄。 我是一名探鬼主播外里,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼特石!你這毒婦竟也來了盅蝗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤县匠,失蹤者是張志新(化名)和其女友劉穎风科,沒想到半個(gè)月后撒轮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贼穆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年题山,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片故痊。...
    茶點(diǎn)故事閱讀 38,064評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡顶瞳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出愕秫,到底是詐尸還是另有隱情慨菱,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布戴甩,位于F島的核電站符喝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏甜孤。R本人自食惡果不足惜协饲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缴川。 院中可真熱鬧茉稠,春花似錦、人聲如沸把夸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恋日。三九已至膀篮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谚鄙,已是汗流浹背各拷。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留闷营,地道東北人烤黍。 一個(gè)月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像傻盟,于是被迫代替她去往敵國和親速蕊。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 此項(xiàng)目已開源 趕快來圍觀 Start支持下吧 【客戶端開源地址-JPay】【服務(wù)端端開源地址-在com.javen...
    LucasAdam閱讀 1,935評論 0 3
  • 易效能親子班40期二組 家長:李明飛 孩子:趙雁行 9歲 成就:堅(jiān)持打卡28天 孩子的目標(biāo):早睡早起娘赴,堅(jiān)持運(yùn)動(dòng)规哲。 ...
    李明飛_ad9c閱讀 233評論 0 1
  • 露晨薄霧 柳絲依依 斜風(fēng)細(xì)雨 淅淅瀝瀝 我的心湖也泛起了漣漪 兩條清清的小溪 順著臉頰流淌入泥 潮濕的往事 如一枚...
    蕙蘭漱雪閱讀 123評論 0 0