iOS H5調(diào)微信支付與回調(diào)

我這里用的是WKWebView担租,首先要實現(xiàn)WKNavigationDelegate協(xié)議

1抵怎、由H5頁跳轉(zhuǎn)微信客戶端--WKNavigationDelegate方法

該方法是決定H5頁面是否允許跳轉(zhuǎn)的

-(void)webView:(WKWebView*)webView decidePolicyForNavigationAction:(WKNavigationAction*)navigationAction decisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler{

? ? WKNavigationActionPolicy ?actionPolicy = WKNavigationActionPolicyAllow;//允許

? ? NSString*urlString = [[navigationAction.request URL] absoluteString];

? ? urlString = [urlString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

? ? NSLog(@"跳轉(zhuǎn):>>>???>>%@",urlString);

? ? //打開微信

? ? if([urlString containsString:@"weixin://wap/pay?"]) {

? ? ? ? actionPolicy =WKNavigationActionPolicyCancel;//不允許跳轉(zhuǎn)

? ? ? ? NSURL*url = [NSURL URLWithString:urlString];

? ? ? ? if([[UIApplication sharedApplication] respondsToSelector:@selector(openURL:options:completionHandler:)]) {

? ? ? ? ? ? [[UIApplication sharedApplication] openURL:url options:@{UIApplicationOpenURLOptionUniversalLinksOnly: @NO} completionHandler:^(BOOL success) {

? ? ? ? ? ? }];

? ? ? ? }else{

? ? ? ? ? ? [[UIApplication sharedApplication]openURL:webView.URL];

? ? ? ? }

? ? }

? ? decisionHandler(actionPolicy);?//這句是必須加上的反惕,不然會異常

}


2、從微信客戶端跳回APP

很多小伙伴兒都遇到回跳的問題背亥,點擊“完成”或“取消”跳到了Safari卻跳不回APP。

1狡汉、配置 URL Types ??添加schemes:www.xxxx.com


2盾戴、配置?Referer

[request setValue:@"www.xxxx.com://" forHTTPHeaderField:@"Referer"];

3、服務(wù)器回調(diào)的URL中一定要寫成 ?www.xxxx.com:// , 如果一定要拼接锐峭,可以讓后臺區(qū)分一下可婶,如果是iOS 前面一定要寫成?www.xxxx.com:// ,不然跳不回APP矛渴。

注意:www.xxxx.com 此域名一定是H5授權(quán)的域名,如果是二級域名蚕涤,可以寫成:aaa.xxxx.com

3铣猩、支付回來頁面不刷新或產(chǎn)生空白頁

一般支付完不管完成與否都要調(diào)一下回調(diào)地址來刷新支付頁面的,但問題是iOS的回調(diào)地址中一定要寫成?www.xxxx.com:// 這樣的格式才能跳回來天吓,但是調(diào)回來后沒有執(zhí)行回調(diào)地址峦椰,頁面又刷新不了,或者跳回來后是個空白頁物邑,這又產(chǎn)生了一個新的問題滔金。當點擊微信支付頁上的“完成”或“取消”返回APP時,會調(diào)用?AppDelegate 中的?openURL: 方法

-(BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary *)options{?

? ? // url.scheme 就是?www.xxxx.com 餐茵,你只需要在這做一個判斷,如果是?www.xxxx.com 你就給外部發(fā)一個通知钟病,那外部接收到這個通知刚梭,刷新界面就行了票唆。

那么問題又來了走趋,刷新方法是什么呢?簿煌?

刷新地址也就是支付完的回調(diào)地址,后臺可以把回調(diào)地址拼接在?www.xxxx.com:// 后面惩琉,例如:www.xxxx.com://http://www.baidu.com 夺荒。 那么?url 就是?www.xxxx.com://?http://www.baidu.com ,你向外部發(fā)通知時把?url 作為參數(shù)傳出去即可?

if ([url.scheme containsString:@"www.xxxx.com"]) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

[[NSNotificationCenter defaultCenter] postNotificationName:@"refreshWXH5Pay" object:nil userInfo:@{@"url":url}]; ? ? ? ? ? ? ? ? ?

?} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

}

//這是外部接收伍玖、處理通知的方法 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-(void)refreshOrderData:(NSNotification*)notifi{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

NSDictionary*dic = notifi.userInfo; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

NSString*url = [NSString stringWithFormat:@"%@",dic[@"url"]]; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

NSString*urlStr = [url substringFromIndex:14]; ?//截取?www.xxxx.com://?http://www.baidu.com? ? 后面的部分 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

[self.webView loadRequest:[self getRequest:urlStraction:nil]];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窍箍,一起剝皮案震驚了整個濱河市丽旅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖五辽,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杆逗,死亡現(xiàn)場離奇詭異,居然都是意外死亡蠕蚜,警方通過查閱死者的電腦和手機悔橄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門腺毫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挣柬,“玉大人,你說我怎么就攤上這事急黎〔嗟剑” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵故源,是天一觀的道長戈咳。 經(jīng)常有香客問我,道長删铃,這世上最難降的妖魔是什么踏堡? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮诫隅,結(jié)果婚禮上帐偎,老公的妹妹穿的比我還像新娘。我一直安慰自己豁生,他們只是感情好漫贞,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芍殖,像睡著了一般谴蔑。 火紅的嫁衣襯著肌膚如雪龟梦。 梳的紋絲不亂的頭發(fā)上肯适,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音蹦玫,去河邊找鬼刘绣。 笑死,一個胖子當著我的面吹牛福贞,可吹牛的內(nèi)容都是我干的停士。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼拇舀,長吁一口氣:“原來是場噩夢啊……” “哼蜻底!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起薄辅,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤站楚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后窿春,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谁尸,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡纽甘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年悍赢,在試婚紗的時候發(fā)現(xiàn)自己被綠了货徙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皮胡。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蠢棱,靈堂內(nèi)的尸體忽然破棺而出甩栈,到底是詐尸還是另有隱情,我是刑警寧澤量没,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布殴蹄,位于F島的核電站,受9級特大地震影響袭灯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怠李,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一蛤克、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧髓介,春花似錦筋现、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至申眼,卻和暖如春蝉衣,著一層夾襖步出監(jiān)牢的瞬間巷蚪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工啦膜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留前联,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓啸臀,卻偏偏與公主長得像烁落,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子伤塌,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

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