微信支付

微信支付,我大部分參考的是在 code4app找的demo。感謝作者。www.code4app.com/ios/支付寶和微信支付兩種方式集成/568e1c0fb5ad2e73288b4c0f

有很多可能多余的步驟。

參考微信官方文檔微信開(kāi)放平臺(tái)

1 先下載 微信SDK。放在一個(gè)文件夾下,然后拖進(jìn)工程里。在 Build Phases加上所需要的系統(tǒng)庫(kù),SystemConfiguration.framework,libz.dylib,libsqlite3.0.dylib,libc++.dylib。

2 在Xcode中,選擇你的工程設(shè)置項(xiàng),選中“TARGETS”一欄,在“info”標(biāo)簽欄的“URL type“添加“URL scheme”為你所注冊(cè)的應(yīng)用程序id(就是申請(qǐng)的 APP ID)



3 開(kāi)始支付

1)在AppDlegate 里面注冊(cè)你的應(yīng)用。在你需要使 用微信終端API的文件中import WXApi.h 頭文件,并增加 WXApiDelegate 協(xié)議。

2)重寫AppDelegate的handleOpenURL和openURL方法:


3)微信支付 然后按照 demo上來(lái)就可以調(diào)起微信客戶端支付了(下面多摘自demo)

①、統(tǒng)一下單

【微信支付】APP支付開(kāi)發(fā)者文檔?->API列表->統(tǒng)一下單 按照文檔要求appid,mch_id,nonce_str,sign,body,out_trade_no,total_fee,spbill_create_ip,notify_url,trade_type這十個(gè)參數(shù)是必須的。

其中appid,mch_id是微信給的;trade_type傳定值A(chǔ)PP;nonce_str,spbill_create_ip是直接在手機(jī)上獲取到的;body,out_trade_no,total_fee這三個(gè)是從服務(wù)端上獲取的數(shù)據(jù)。sign根據(jù)以上鍵值對(duì)按照簽名規(guī)則得到的。

注意

完成之后要轉(zhuǎn)化成XML格式上傳到微信服務(wù)器。

第一個(gè)比較坑的地方在這,如果直接使用AF的POST方式是不行的,總是會(huì)返回"XML格式錯(cuò)誤"。必須使用NSMutableURLRequest添加method和body,然后用AFHTTPRequestOperation進(jìn)行網(wǎng)絡(luò)請(qǐng)求才行。

然后接收到數(shù)據(jù)的返回。其中返回?cái)?shù)據(jù)中有用的只有prepayid,其他的要么本地就有,要么就是惡心你的值。

② 客戶端調(diào)起支付

【微信支付】APP支付開(kāi)發(fā)者文檔?->API列表->調(diào)起支付接口 文檔要求appid,partnerid,prepayid,package,noncestr,timestamp,sign這七個(gè)參數(shù)是必須的,但是DEMO中appid根本沒(méi)有用到,所以其實(shí)只需要六個(gè)參數(shù),這是第二個(gè)坑爹的地方!!! partnerid就是第一步的mch_id,prepayid是上一步返回的最重要的數(shù)據(jù),package傳定值Sign=WXPay,noncestr就是上一步中的nonce_str,timestamp這個(gè)按照規(guī)則生成十位的。

sign是最最最坑的地方,不是上一步返回的那個(gè)sign,不是上一步返回的那個(gè)sign,不是上一步返回的那個(gè)sign。他是根據(jù)上面的五個(gè)參數(shù)進(jìn)行簽名得出的值。不然每次調(diào)用就只看見(jiàn)微信界面只有一個(gè)確定。

對(duì)于返回簽名錯(cuò)誤的,可以對(duì)照他們的簽名測(cè)試工具檢驗(yàn)。微信公眾平臺(tái)支付接口調(diào)試工具

4)支付結(jié)果

⑴(使用的不安全的 客戶端直接向微信服務(wù)器查詢,)在AppDelegate中


⑵接收通知的地方


最后,就是這些了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容