集成ShareSDK社會化分享的時候集成了微信支付或者支付寶支付功能
ios
(分別集成了微信支付和支付寶,用Ping++集成支付的煩請繞行…)c++
不廢話,先甩連接程序員
(ps,這裏以前網友有過用ShareSDK中的微信SDK不支持支付功能,我這裏是能夠支付的,應該是Mob集成好了,若是你下載的不能用的話, 能夠去微信官方下載官方的SDK,10M左右的樣子,把ShareSDK中的微信SDK替換掉,替換的時候要注意,不能只替換文件,要看好工程中 Target選項卡里的文件路徑是否刪除了舊文件路徑,不然的話可能舊文件路徑會覆蓋新文件路徑,致使替換沒有效果或者崩潰。)sql
(這裏注意,Add的時候要勾選CopyItemsIfNeeed,不然可能會出現找不到路徑這種煩人的錯誤)api
1.添加系統依賴庫,(這裏我用了ShareSDK,因此也連Share必須的系統庫也一併添加了),方法—點擊工程名—Target—BuildPhases—Link Binary With Libraries—點擊+號搜索你須要的系統庫,並添加數組
SystemConfiguration.framework微信
QuartzCore.framework微信開發
CoreTelephony.frameworkapp
libicucore.dylib(ps,這裏由於可能你的Xcode是Xcode7,因此這裏的.dylib可能會在你的系統庫裏顯示.tbd)正常添加就好微信支付
libz.1.2.5.dylib
Security.framework
JavaScriptCore.framework
libstdc++.dylib
CoreText.framework
libsqlite3.dylib
ImageIO.framework (shareSDK新浪必須依賴庫)
AdSupport.framework(shareSDK新浪必須依賴庫)
2.配置工程的URL Types中的URL Schemes,
這個URL Schemes是用來調起第三方客戶端支付或分享或受權以後回到你的程序的標識
方法:點擊工程名—Target—Info—URL Types—點擊+號,在URL Schemes欄中填入你在第二步中獲取到的APPID(圖見上一步,本身找一下info選項卡)
3.若是是Xcode7須要在Info.Plist文件中加入字段LSApplicationQueriesSchemes,爲Array類型,而後在裏面添加兩個小選項,分別爲weixin和wechat(Xcode7http請求適配Xcode7的問題請自行百度)
1.將Demo中的WXPay文件夾拷貝到工程文件夾中,而後Add到工程目錄
2.在 AppDelegate.h中#import相關頭文件,在AppDelegate.m文件中的application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方 法中添加[WXApi registerApp:APP_ID withDescription:@"demo 2.0"];(這裏的APPID就是你第二步獲取的APPID,通常建議寫成宏。@「demo2.0」不須要修改),個人demo裏在這個方法裏還註冊了 shareSDK,但願你們不要有疑惑。
3.在AppDelegate.m中加入這兩個方法:
//重要更新,一下兩個方法IOS9.0之後被廢棄了,因此若是你是Xcode7.2的話,可能會出現不能進入微信的onResp回調方法,緣由是下邊兩個方法沒有被調用,因此這裏更新一下,改用另一個方法(並不建議刪除這兩個方法,新方法是9.0之後的方法,可能系統低版本的用戶不支持。因此我三種方法都留下了,若是有人發現不能都留下的話,請簡信告訴我一下,再次謝過了)
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
//改用方法爲- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options;
具體方法裏的代碼如何書寫請看Demo中的註釋。
4.配置完AppDelegate文件以後,向你的工程中拷貝入Demo中的UIViewController+WeChatAndAliPayMethod類目,並Add到工程中,
在你須要用到支付的頁面引用這個類目。(詳情請見Demo的ViewController頁面方法和代碼,仔細觀看註釋和理解代碼以後微信支付的集成就完成了)
PS.支付寶集成和微信支付集成大同小異,若是你集成了微信支付,你會發現支付寶集成更簡單。
(ps。這裏注意一下,我demo裏ThirdParty下的AliPay那些文件都是須要你在這一步拷貝的東西。)
尤爲是openssl和Util還有那兩個.a文件。由於支付寶的開發文檔寫的實在是不怎麼樣,亂七八糟的,都沒有直接給你要添加的SDK包,這些東西都是從官方的demo裏抽出來的。具體大家能夠下載官方demo看一看。
接下來的部分是後來新增的。(三方登陸,和三方分享,包括適配ios9)
注:三方登陸和分享這些代碼Mob官網都有,就很少贅述了。這裏主要是爲了減小你們的代碼量,加強複用性進行的一些整合。若是哪裏有問題或者處理不妥,但願碼友們積極提出。
首先,能作到三方登陸的話,和支付同樣,須要你在第三方平臺上註冊的應用擁有登陸權限。
其次,XCode7以後IOS9,shareSDK對應也有相應的變化,第三方分享登陸的時候,須要比以前多一些步驟,好比添加Schemes白名單:
info.plist中須要添加如此多的字段(爲了適應新的sso受權。如下只是新浪微博,QQ,微信三個平臺須要添加的字段)
添加LSApplicationQueriesSchemes數組型字段中的元素
爲方便你們按需添加,這裏進行分類:
新浪微博:sinaweibo,
sinaweibohd,
sinaweibosso,
sinaweibohdsso,
weibosdk,(添加weibosdk須要)
weibosdk2.5(添加weibosdk須要)
微信:
wechat,
weixin
QQ:
mqqOpensdkSSoLogin,
mqqopensdkapiV2,
mqqopensdkapiV3,
wtloginmqq2,
mqq,
mqqapi
(如下是QQZone需添加的,可是通常狀況一下,須要集成QQ分享登陸的,都須要QQZone的,因此通常建議你們直接把QQ和QQzone的都添加進去)
mqzone
mqzoneopensdk,
mqzoneopensdkapi,
mqzoneopensdkapi19,
mqzoneopensdkapiV2,
還有,不要忘記對URLType裏面的設置。(QQ添加的時候須要用十六進制轉化的,例:QQ41D9BC03)
關於登陸的簡單整理:
個人demo工程中有個LoginMethodObject文件夾,裏面有我本身新建的一個類LoginMethod。
使用者只須要引用這個類,實例化一個對象。並實現代理
-(void)recieveTheUserInfo:(NSDictionary*)userInfo
errorMsg:(NSString *)errorMsg;
userInfo便是獲取到的用戶信息。裏面我只獲取了暱稱,uid,頭像等等簡單的信息。若是須要其餘信息的話須要特別對待。不過通常登陸只須要uid就夠了,因此這裏不過多贅述。
注意:在實現這個代理的時候,爲了方便,邏輯更清楚。須要你們作下判斷,即判斷errorMsg是否存在。
(像AFNetWorking同樣)若存在errorMsg的話,說明獲取失敗,errorMsg打印出來便是錯誤緣由。若errorMsg不存在表明獲取成功,就能夠直接用userInfo中的用戶信息了
demo中的示例
第三方分享的話,Mob的官網上寫的很明白了,我就很少此一舉再寫什麼了。Demo中有樣板的,若是不想去mob翻的話,直接複製的話就能夠了。
(單說一下,demo中寫的是適用於全部平臺均發送同一分享內容的方法。若是須要針對不一樣平臺分享不一樣內容的話須要調用另一個方法,以下)
對不一樣平臺分享不一樣內容的代碼調用