iOS如何接入微信支付

本人最近公司打算在App中集成微信支付、支付寶支付等支付功能,我果斷跟經(jīng)理說這個(gè)比較容易做,幾個(gè)小時(shí)就可以做完。。。但是天網(wǎng)恢恢啊,這件事情教會(huì)我了一個(gè)道理,做人莫裝逼,裝逼招雷劈!好了,廢話不多說,直接上干貨
今天這個(gè)文章就只講微信支付吧,支付寶的有空再寫點(diǎn)自己的使用心得~!

第一:你需要有微信開發(fā)平臺(tái)的開發(fā)者賬號(hào),(網(wǎng)址https://open.weixin.qq.com/,或者自行百度“微信open”,支付寶支付同理,下同),并將你要集成的應(yīng)用在你的開發(fā)者賬號(hào)中注冊(cè),并獲取支付權(quán)限(一般這步不需要程序員考慮,都是客戶自己獲取的,你只需要知道,沒有支付權(quán)限的應(yīng)用,不可以集成支付)。

第二:注冊(cè)完你的應(yīng)用,通過審核之后,你會(huì)獲得開放平臺(tái)給你發(fā)放屬于這個(gè)應(yīng)用的AppID和AppSecret

第三:在開發(fā)平臺(tái)的資源中心(或者叫文檔中心,SDK中心什么的),下載IOS的SDK(文檔也可以下載下來方便查閱)。我這次的Demo是之前集成過ShareSDK的分享和第三方登錄,所以直接用的ShareSDK中的微信SDK。

第四:將下載好的SDK拷貝到工程文件夾中,然后再工程中AddFilesTo“你的工程”,

第五:這是最重要的一步,就是導(dǎo)入SDK后可能會(huì)有編譯報(bào)錯(cuò),這個(gè)問題主要是因?yàn)閷?dǎo)入時(shí)缺少了各個(gè)庫文件,其中報(bào)錯(cuò)有幾種類型的報(bào)錯(cuò)

(1)"OBJC_CLASS$_CTTelephonyNetworkInfo" 報(bào)錯(cuò)

這個(gè)報(bào)錯(cuò)你只需在圖下第5步的時(shí)候添加一個(gè)『CoreTelephony.framework』的庫文件就OK


1.png
(2)"Undefined symbols for architecture armv7:"報(bào)錯(cuò)

這個(gè)報(bào)錯(cuò)你也只需要重復(fù)第一步的操作,添加一個(gè)『libz.tbd』跟一個(gè)『libc++.tbd』的庫文件
再加入一個(gè)『SystemConfiguration.framework』跟『libsqlite3.tbd』庫文件,基本上95%是沒有問題的了~!
最后你導(dǎo)入微信的庫文件總共為四個(gè)如圖


4.png

第六:在配置文件中的 URL Types 將你申請(qǐng)到的微信 URL Schemes填入其中


3.png

第七:代碼部分
在AppDelegate中導(dǎo)入:
(1)#import "WXApi.h"
(2)#import "WXApiObject.h"
(3)遵守WXApiDelegate
(4)在application:didFinishLaunchingWithOptions方法里面寫入
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.viewController = [[[SendMsgToWeChatViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease];
} else {
self.viewController = [[[SendMsgToWeChatViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease];
}
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];

    //向微信注冊(cè)
    [WXApi registerApp:@"wxd930ea5d5a258f4f" withDescription:@"demo 2.0"];

    return YES;
}

(5)跳轉(zhuǎn)進(jìn)入微信
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
// 跳轉(zhuǎn)到URL schema中配置的地址
return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
}

(6)微信支付
#pragma mark - 微信支付
- (void)WeiXinPay{

    // 判斷 用戶是否安裝微信
    if([WXApi isWXAppInstalled])
    {
        // 調(diào)起微信支付
        PayReq* wxreq             = [[PayReq alloc] init];
        wxreq.openID              = @"WXAppId";
        wxreq.partnerId           = @"partnerId";
        wxreq.prepayId            = @"prepayId";
        wxreq.nonceStr            = @"nonceStr";
        wxreq.timeStamp           = 11; //timeStamp
        wxreq.package             = @"package";
        wxreq.sign                = @"sign";
        [WXApi sendReq:wxreq];
    }
    else
    {
        // 您未安裝微信
    }
}

貌似微信從1.5版本其就支持沒有安裝微信用戶也可以調(diào)用微信具體調(diào)用方法是:
+ (BOOL)sendAuthReq:(SendAuthReq)req viewController:(UIViewController)viewController delegate:(id<WXApiDelegate>)delegate;
但是作者本人還未實(shí)驗(yàn)過,等這幾天公司的事情的支付做的差不多了,我到時(shí)再補(bǔ)上代碼給大家~!

(7)支付后回調(diào)方法
- (void)onResp:(BaseResp*)resp
{
// 判斷是否是媒體消息
if([resp isKindOfClass:[SendMessageToWXResp class]])
{
// 對(duì)錯(cuò)誤碼進(jìn)行判斷 再做相對(duì)應(yīng)的操作
}
if([resp isKindOfClass:[PayResp class]]){
// 支付返回結(jié)果,實(shí)際支付結(jié)果需要去微信服務(wù)器端查詢
switch (resp.errCode) {
case WXSuccess:{
// 支付結(jié)果:成功!
break;
}
default:{
// 支付結(jié)果:失敗!
break;
}
}
}
}

未完待續(xù) 接下來會(huì)說說微信分享的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,694評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,672評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評(píng)論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,690評(píng)論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,019評(píng)論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評(píng)論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,188評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,718評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,438評(píng)論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,667評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評(píng)論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,845評(píng)論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評(píng)論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,384評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,635評(píng)論 2 380

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