国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

ios開發——支付寶SDK集成流程

2019-11-09 17:04:55
字體:
來源:轉載
供稿:網友

1、創建應用

這個其實開發者們都應該懂,就是在支付寶這里掛個號,然后進行下一步業務的申請。

創建應用的鏈接

創建應用界面

開發者只需要按照指示一步一步添加內容就可以。

2、申請移動支付

這個就需要一些公司文檔什么的了,根據指示填寫即可,但是要切記不要讓自己的Word超過了大小限制,否則有一定幾率不會通過。簽約成為商家

雖然說,整個流程可能需要將近兩周時間,但是根據我這次集成來看,大約一周多就能完成。但是假如你的開發周期比較緊張,建議早申請,畢竟要控制時間成本。

3、下載官方Demo

這個是比較坑的事情。。。不知道是不是公司原來辦公室網絡的問題,總之就是用迅雷無論如何也下載不下來,然后用了Chrome之后就一切順利。

開發工具包下載

點擊以上鏈接之后進入各種Demo的下載頁面,當然,也可以下載用于UI的視覺資源。(PS:Android和iOS的Demo是在一起的

以下兩張圖片為下載的Demo的文件情況:

Demo內部文件Demo內部文件

因為我是做iOS端的集成,所以自行忽略掉了服務端和Android端的Demo。

4、業務邏輯

交互流程網頁鏈接

功能流程數據交互

支付寶支付的功能流程相比較微信支付來說簡單的很,如上面兩張圖展示的,我們的App(也就是商戶客戶端)所做的大概只有三個步驟:

生成訂單調用支付寶接口,發送訂單返回訂單支付結果并處理

功能層面上講就是著這些,但是支付環節肯定有一個安全性問題,那么就需要加密以及解密的過程。

目前支付寶采取的是RSA的加密方式,這是一種比較常見的非對稱加密算法,至于怎么集成,下面會給大家做個詳細介紹。RSA維基

5、集成

iOS工程內容

1)添加framework和其他文件

打開iOS工程,你會看到上面的一堆東西,你需要復制粘貼到自己工程里的有:

lipaySDK.frameworkAlipaySDK.bundleOrder.h和Order.mUntil文件夾openssl文件夾libcrypto.a和libssl.a

2)添加第三方框架和類庫

來源于網絡,侵刪

以及上面的libcrypto.a , libssl.a

此時,假如你啟動工程,很大幾率上你會發現報error的情況。報錯#include <openssl/opensslconf.h> not find這是一個神奇的大坑,我Google了好久,也不得其解,然后經網友提醒之后想起來#import ""#import <>的區別。

解決方法:Targets -> Build Settings 下的 Header Search Paths。添加如下目錄 "$(SRCROOT)/項目名稱/文件的絕對地址"

在集成之前,不要忘了還要寫一個URL Scheme,在Targets -> Info 下最后一個即可找到。

3)集成代碼

你在添加代碼的時候會發現下圖所示代碼

partner:可以在支付寶的賬戶中找到seller:就是我們的支付寶賬號PRivateKey:這個就是我們上面提到的RSA加密中的密鑰

密鑰生成方法在上文中可以看到,就是在上文中的下載的官方文檔中openssl文件夾中的生成命令。

RSA私鑰及公鑰生成

網頁截圖

注意:我在生成密鑰的時候,在第三行,誤將其以為是java開發者才會使用,所以沒有在命令行中輸入命令,一直導致無法加密,所以iOS開發者務必將所有命令輸入Vim當中。

生成的文件一共有兩個rsa_private_key.pemrsa_public_key.pem,第一個就是私鑰,可以用vim打開,也可以用文本文件打開,打開之后復制到工程中即可,值得注意的是,復制的時候不要有空格等東西。。。

上傳公鑰:

上傳公鑰官方指導,和私鑰一樣,上傳的過程中,切記不要有空格等字符出現。

AppDelegate

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { //跳轉支付寶錢包進行支付,處理支付結果 [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { NSLog(@"result = %@",resultDic); }];return YES;

}

執行回調

orderString = [NSString stringWithFormat:@"%@&sign=/"%@/"&sign_type=/"%@/"", orderSpec, signedString, @"RSA"]; [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) { NSLog(@"reslut = %@",resultDic); }];

以下是幾個回調返回的resultDic值:

9000 訂單支付成功 8000 正在處理中 4000 訂單支付失敗 6001 用戶中途取消 6002 網絡連接出錯

對于iOS9進行適配

和其他的第三SDK一樣,對于新的iOS9,支付寶SDK一樣需要下infoPlist進行適配。

<key>NSAPPTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>alipay.com</key> <dict><!--Include to allow subdomains--> <key>NSIncludesSubdomains</key><true/><!--Include to allow insecure HTTP requests--> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> <!--Include to specify minimum TLS version--> <key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> </dict> </dict></dict>

4)易發bug以及總結

我覺得最易發的有:

報錯#include <openssl/opensslconf.h> not find返回錯誤ALI64和ALI69

第一個上面有提到,第二個可以在支付包官方文檔中找到:官方鏈接。理論上講,最大概率出錯就是在公鑰和密鑰的處理上,認真排查應該就會找到問題。如果還沒有解決,可以尋找客服來解決問題,剛開始的是智能機器人客服,如果兩次都無法解決問題,還可以后面申請人工客服,只不過等待時間可能會有點長。

文/Derek_老黃(簡書作者)原文鏈接:http://www.jianshu.com/p/0f3bb4c2c473著作權歸作者所有,轉載請聯系作者獲得授權,并標注“簡書作者”。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 锦屏县| 观塘区| 明光市| 长武县| 福泉市| 建阳市| 界首市| 根河市| 长丰县| 黑龙江省| 贞丰县| 磐安县| 江永县| 固镇县| 石首市| 大渡口区| 祁阳县| 兰州市| 乌苏市| 西盟| 天水市| 东乌珠穆沁旗| 亳州市| 承德县| 西贡区| 开阳县| 隆回县| 瑞安市| 五河县| 连平县| 儋州市| 锡林浩特市| 静安区| 元阳县| 无锡市| 邵武市| 定兴县| 炉霍县| 武义县| 刚察县| 信宜市|