產品中接入了微博/微信的第三方登陸分享功能、微信和支付寶的第三方支付功能,以前在開發過程當中涉及到這些部分,因而抽空將接入過程梳理了一遍。php
SDK下載html
設置URL Scheme,用於從第三方應用或瀏覽器中啓動appios
將SDK添加到工程中(支持CocoaPods),app啓動時(didFinishLaunchingWithOptions)註冊appkeygit
重寫AppDelegate 的handleOpenURL和openURL方法,其它引用類庫等開發環境設置具體參考SDK中提供的《微博iOS平臺SDK 檔》便可。後續便可針對登陸分享場景調用SDKgithub
下載地址api
開放平臺SDK相關說明瀏覽器
配置相關與微博SDK基本一致,設置URL Scheme、添加相關類庫、啓動時註冊appKey及重寫handleOpenURL和openURL方法。微信
須要注意的是若是沒有安裝微信客戶端,是沒法像微博或支付寶那樣調起網頁進行操做的,因此須要使用SDK提供的方法「[WXApi isWXAppInstalled]」檢測微信是否安裝,若沒有安裝,則微信相關的操做沒法進行,微信登陸或分享的標識須要隱藏。app
設置URL Scheme、添加相關類庫,設置開發環境,詳細參考DEMO及集成流程文檔。
須要特別注意的點:
①Header Search Paths的設置
②白名單設置
③私鑰生成
在支付寶支付sdk demo裏提供了相關工具
在weibo sdk的協議方法「- (void)didReceiveWeiboResponse:(WBBaseResponse *)response」中判斷操做行爲及狀態,經過認證申請後便可去請求獲取用戶信息,得到用戶信息後再進行登陸相關處理便可
微博分享其實就是發微博操做,對應的是一個接口,不像微信分享那樣會跳轉過去,在微信裏確認輸入信息後分享,因此在應用裏須要構建一個頁面,將分享到微博的信息先展現預覽出來,供用戶修改文字等等,點擊肯定再執行分享操做。根據分享對象構造相關參數調用接口便可
這裏須要注意三點:
①微博字數限制爲140字,超過沒法分享。
②分享操做前須要更新access_token,防止過時致使沒法進行相關操做
響應方法didReceiveWeiboResponse中拿到申請認證返回結果,刷新存儲access_token等值便可
③分享時圖片參數能夠是一個url或者WBImageObject,二選一便可,若是兩者都有值,則url被忽略。
code在獲取access_token後失效
微信分享有分享到朋友圈(WXSceneTimeline)、分享到對話(WXSceneSession)兩種,最多見的也就是圖文類型的網頁。
點擊分享的網頁,調起客戶端則在微信的協議方法「onReq」裏進行處理,根據相應規則邏輯在應用內跳轉頁面等等。
參考微信支付提供的demo進行接入,設計的是客戶端與後臺交互,由後臺來調用微信支付接口,主要流程以下:
選擇商品並填寫相關信息後提交訂單,後臺返回訂單數據(後臺調用微信的統一下單api),後續支付時須要用到。
根據以前拿到的訂單數據(訂包括單id),向後臺發起微信支付的請求,拿到請求結果後調起微信客戶端準備支付
在「-(void) onResp:(BaseResp*)resp」方法判斷支付操做狀態,進行相應處理,例如支付成功後跳轉到訂單詳情頁給用戶展現訂單及支付信息等等。
一樣,參考支付寶支付demo進行接入,客戶端與後臺交互,由後臺來調用支付寶支付的接口,主要步驟以下:
選擇商品並填寫相關信息後提交訂單,後臺返回訂單數據。
根據以前拿到的訂單數據(訂包括單id),向後臺發起支付寶支付的請求,拿到請求結果後調起支付寶客戶端準備支付,若沒有安裝支付寶,則調用支付寶網頁進行支付。
在支付結果回調block中根據支付操做狀態進行相關業務邏輯處理
在AppDelagate的「openURL」及「handleOpenURL」中判斷支付寶支付操做,切迴應用時在回調block中作相關業務邏輯處理