一 ? 支付寶 ??
首先 按照 App支付iOS集成流程詳解 一步一步的不知客戶端。
第一個坑就在它的第一部里佳谦,文檔給的講的很模糊,先看它是怎么說的:
步驟1:啟動IDE(如Xcode)滋戳,把iOS包中的壓縮文件中以下文件拷貝到項(xiàng)目文件夾下钻蔑,并導(dǎo)入到項(xiàng)目工程中。
AlipaySDK.bundle
AlipaySDK.framework
在Build Phases選項(xiàng)卡的Link Binary With Libraries中奸鸯,增加以下依賴:
其中咪笑,需要注意的是:
如果是Xcode 7.0之后的版本必峰,需要添加libc++.tbd裳扯、libz.tbd牌里;
如果是Xcode 7.0之前的版本瘫析,需要添加libc++.dylib、libz.dylib(如下圖)擅腰。
問題? 就在第一個 AlipaySDK.bundle? AlipaySDK.framework 其實(shí)我們需要的文件不止這兩個整體需要的文件 應(yīng)該是??的
其中 openssl 和util? 是在官方Demo里面的記得這兩個文件拖到自己的項(xiàng)目里 openssl 文件必須添加在 Header Search Parths 里面 不然就會報(bào)錯 ?就會出現(xiàn)這個問題 解決辦法如下
?點(diǎn)擊項(xiàng)目名稱徒仓,點(diǎn)擊“Build Settings”選項(xiàng)卡樱哼,在搜索框中球恤,以關(guān)鍵字“search”搜索辜昵,對“Header Search Paths”增加頭文件路徑:$(SRCROOT)/項(xiàng)目名稱。如果頭文件信息已增加咽斧,可不必再增加堪置。
這里 ?我就多說一句,就是我們要創(chuàng)建一個 ?根目錄下的文件并且 在我們的Xcode里也有的文件收厨,xcode8 后好像和之前創(chuàng)建的方式不一樣了晋柱。可能我不知道吧诵叁,我把我自己創(chuàng)建的方式在這里說一下,如果 你有更好的方式钦椭,可以回復(fù)我拧额。
首先 在根目錄下面創(chuàng)建一個文件夾 然后拖到你項(xiàng)目里的xcode里 此時(shí)還有彈窗 ??
選擇如圖所示的方式即可創(chuàng)建一個實(shí)體文集,具體叫法是不是這個 ?我也不知清除彪腔,我就是這樣理解的侥锦,如果有誤 ,請給予指正德挣,謝謝恭垦。 ??
好了 ? 現(xiàn)在回到支付寶這里 。
步驟2:在需要調(diào)用AlipaySDK的文件中,增加頭文件引用番挺。
其實(shí)不是這個樣子的? 唠帝,在#import "AppDelegate.h" ?里面由于需要回調(diào) 所以我們只需要導(dǎo)入
#import<AlipaySDK/AlipaySDK.h>頭文件。并且寫上回調(diào)函數(shù)
一個是8.0 版本的 一個是 9.0以后版本的 ? 回調(diào)微信 也是在這里寫 這里我用通知來通知 ?支付成功還是失敗?
還有就是在你用到支付的地方 需要這樣的添加類?
個人感覺現(xiàn)在 加密和簽名都在后天處理 所以對于我們錢前臺 所做的事情就少了 玄柏。
這是官方給的? 針對Demo的運(yùn)行注意
2襟衰、如果遇到運(yùn)行后報(bào)錯,類似于以下提示信息:
Cannot find interface declaration for 'NSObject', superclass of 'Base64'
那么需要打開報(bào)錯了的文件粪摘,增加頭文件瀑晒。
#import <Foundation/Foundation.h>
還有就是 如果你可以支付 并且支付還成功,但就是不會自動返回你的APP? 就說明你沒有在URL Types添加 你的APP的唯一標(biāo)示徘意,所以它找不到回調(diào)的APP 所以 ?你需要添加唯一標(biāo)示 苔悦,一定要自己寫唯一標(biāo)示,因?yàn)?以前大家都用的官方DEMO 就忽略這個問題基本上用的都輸官方的唯一標(biāo)示 叫什么alipaydemo ?,所以這樣就會稀奇古怪的返回到其他軟件里椎咧,如果出現(xiàn)這個問題就是唯一標(biāo)示的問題间坐。具體的步驟如下
點(diǎn)擊項(xiàng)目名稱,點(diǎn)擊“Info”選項(xiàng)卡邑退,在“URL Types”選項(xiàng)中竹宋,點(diǎn)擊“+”,在“URL Schemes”中輸入“唯一標(biāo)示”例如(WYBS)地技。
代碼的參數(shù)就是這個 NSString *appScheme = @“WYBS”;蜈七。
還有就是 ?服務(wù)器繁忙這些問題,一般就是簽名的問題 和 參數(shù)的問題莫矗,多認(rèn)真檢查是可以解決的 飒硅。好了 支付寶就到這里了。
二 ?微信支付
1作谚、項(xiàng)目設(shè)置APPID
2三娩、注冊APPID
[WXApi registerApp:@"wxd930ea5d5a258f4f" withDescription:@"demo 2.0"];
3、調(diào)起支付
PayReq *request = [[[PayReq alloc] init] autorelease];
request.partnerId = @"10000100";
request.prepayId= @"1101000000140415649af9fc314aa427";
request.package = @"Sign=WXPay";
request.nonceStr= @"a462b76e7436e98e0ed6e13c64b4fd1c";
request.timeStamp= @"1397527777";
request.sign= @"582282D72DD2B03AD892830965F428CB16E7A256";
[WXApi sendReq:request];
4妹懒、支付結(jié)果回調(diào)
和支付吧一樣上面已經(jīng)說過了 ?不過這里需要添加一個方法
同樣的用通知做的處理雀监。
還有很多問題 只能見到在解決然后在記錄下來。