快速集成支付寶快捷支付

本文介紹了iOS快速集成支付寶支付的方法,本文中介紹的方法是經過一次封裝,因此配置完成之后調用僅需一行代碼即可支付寶支付,非常的方便,希望大家喜歡。

我只是根據官方的文檔,對支付寶的SDK做了進一步封裝,其中密鑰的生成很簡單,需要看官方的文檔,官方的文檔我在工程附件目錄里也有一份,如果需要馬上集成,沒工夫研究的話,可以大致看一下密鑰的生成即可,其他的配置我會在下面進行討論。

要在iOS應用里集成支付寶支付,需要公司和支付寶簽約,然后生成相應的密鑰。密鑰的生成支付寶的開發文檔里已經說的非常清楚了,這里就不再討論。

雖然支付寶的文檔說的非常的詳細,比微信支付強100倍(微信支付的坑多的跟月球表面一樣,如果有需要,我會在接下來的博客中討論微信支付),不過有一點需要提醒的是:大部分用戶根本就找不到支付寶的SDK和文檔在哪里下載!這也是我開始做支付寶支付時候頭疼的事情:要做支付寶支付,你需要先找到官方的文檔和SDK才行!

不過上面我也說了,附件中又支付寶目前最新的開發文檔,工程中也集成了支付寶最新的SDK和開發文檔,當然,既然我找到了,就不會讓大家失望j_0002.gif。下面奉上支付寶的完整的文檔和SDK下載地址供大家下載:https://b.alipay.com/order/productDetail.htm?productId=2013080604609654&tabId=4#ps-tabinfo-hash。這個下載頁面是官方的下載頁面。

也可以看博客:http://winann.blog.51cto.com/4424329/1595985。好了,廢話不多說了,下面就正式開始本教程的內容。


1. 下載附件,點擊http://down.51cto.com/data/1974080下載壓縮包,需要2積分,也可以在github上免費下載:https://github.com/winann/IntegratedAlipay。

github下載如圖所示:

2.將工程中的IntegratedAlipay文件夾導入工程中,記得選copy(注意:工程名也是:IntegratedAlipay,不要導錯了,應該是:“存放目錄/IntegratedAlipay/IntegratedAlipay”路徑下的IntegratedAlipay目錄。

3.點擊項目名稱,點擊“Build Settings”選項卡,在搜索框中,以關鍵字“search” 搜索,對“Header Search Paths”增加頭文件搜索路徑,

第一種方法(推薦使用):增加頭文件路徑:“$(SRCROOT)”,然后選擇后面的recursive(會在相應的目錄遞歸搜索文件,就是子文件夾也會相應的進行搜索),這是最簡單也推薦使用的方法(如下圖所示:);

第二種方法:增加頭文件路徑:“$(SRCROOT)/項目名稱/IntegratedAlipay/AlipayFiles”(注意:不包括引號,如果不是放到項目根目錄下,請在項目名稱后面加上:“/相應的目錄名”,保證是正確的路徑和格式),可以查看下面的動態圖片。這種方法很羅嗦,就是手動找到存放頭文件的路徑,還容易出錯,這是支付寶官方使用的方法,不推薦使用。

4.點擊項目名稱,點擊“Build Phases”選項卡,在“Link Binary with Librarles” 選項中,新增“AlipaySDK.framework”和“SystemConfiguration.framework” 兩個系統庫文件。如果項目中已有這兩個庫文件,可不必再增加,(如下動態圖,我添加一個SystemConfiguration.framework的方法);

5.在“AlipayHeader.h”頭文件中設置kPartnerID、kSellerAccount、kAppScheme、kPrivateKey的值(注意,建議除appScheme以外的字段都從服務器請求):

因為本工程的kAppScheme是寫好的,這樣工程在配置好其他的參數之后就可以直接運行了,所以kAppScheme固定了,這里如果更改了,請在工程的Info的選項卡里也相應的更改(如下圖所示),其他的“xxx”都需要換成公司簽約支付寶時返回的郵件內容中的值:

6.在需要用的地方導入“AlipayHeader.h”,并使用“[AlipayRequestConfig alipayWithPartner:...”方法進行支付;

例如button事件的寫法如下:

- (IBAction)payWithAli:(UIButton *)sender {

[AlipayRequestConfig alipayWithPartner:kPartnerID seller:kSellerAccount tradeNO:[AlipayToolKit genTradeNoWithTime] productName:@"郵票" productDescription:@"全真郵票" amount:@"0.8" notifyURL:kNotifyURL itBPay:@"30m"];

}

到這里,就已經實現支付寶的支付了,現在還差最后一步:返回用戶的支付狀態,請看第七步:

7.在AppDelegate中處理事件回調(可直接復制下面內容粘貼到AppDelegate中):

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

//如果極簡 SDK 不可用,會跳轉支付寶錢包進行支付,需要將支付寶錢包的支付結果回傳給 SDK if ([url.host isEqualToString:@"safepay"]) {

[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

NSLog(@"result = %@",resultDic);

}];

if ([url.host isEqualToString:@"platformapi"]){//支付寶錢包快登授權返回 authCode

[[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {

NSLog(@"result = %@",resultDic);

}];

}

return YES;

}

注意:經過上述的步驟就可以進行支付寶支付了,但是有可能報6002網絡連接的錯誤,有可能是Bundle Identifier的設置不對,換成com.alipay.AliSDKDemo就ok了。

這個方法用來查看用戶的支付狀態,詳細的參數說明請查看官方文檔。

支付寶SDK、API文檔和demo下載問題:http://winann.blog.51cto.com/4424329/1595985

工程下載地址:51cto下載中心:http://down.51cto.com/data/1974080

github免費下載:https://github.com/winann/IntegratedAlipay

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容