首选:
保证调起微信的地址:https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb? 中没有回调参数 redirect_url ,否则取消支付时永远调起redirect_url中对应的地址,返回到浏览器里;

其次:
找到商户申请H5时提交的授权域名,比如:https://www.baidu.com

这个时候去配置APP 的schemes ,注意,一定要这么配:aaa可以随便写,有识别性就行,保证不跟其他APP的schemes相同就行。

再次:
代码里去实现给Referer赋值,在webview的shouldStartLoadWithRequest中实现,代码如下:

-(BOOL)setReferer:(NSURLRequest *)request
{
__block NSString *urlString = [NSString stringWithFormat:@"%@",request.URL];
if ([urlString hasPrefix:@“https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb”]) {
NSDictionary *header = request.allHTTPHeaderFields;
if (header[@“Referer”] && [header[@“Referer”] isEqualToString:@“nxh.pay.1an.com?/”]) { // 如果已经设置过referer
// 允许跳转
return YES;
} else {
// 设置referer

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{dispatch_async(dispatch_get_main_queue(), ^{NSString *urlStr = [NSString stringWithFormat:@"%@", urlString];// 注意,此处须去掉redirectUrl参数,如果没去掉的话就自己 [写方法删除url中的redirectUrl字段](https://blog.csdn.net/qijian_shashi/article/details/88995399)/*取掉redrect_url参数及其对应的值*/NSString *newStr = [[NSString alloc]removeParValue:urlStr Key:@"redirect_url"];NSURL *newUrl = [NSURL URLWithString:newStr];NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:newUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];[request setHTTPMethod:@"GET"];[request setValue:@"nxh.pay.1an.com://" forHTTPHeaderField: @"Referer"];[self.webView loadRequest:request];});});return NO;}
}NSURL *url = request.URL;
// 微信支付协议
if ([url.scheme isEqualToString:@"weixin"]) {if ([url.host isEqualToString:@"wap"]) {if ([url.relativePath isEqualToString:@"/pay"]) {if ([[UIApplication sharedApplication] canOpenURL:url]) {[[UIApplication sharedApplication] openURL:url];}}}return NO;
}
return YES;

}

最后:
尝试下,会不会成功。

ios 微信h5支付取消或完成支付时不能返回原APP相关推荐

  1. 解决iOS微信H5支付跳转微信后不返回App问题(Swift-WKWebview)(转)

    解决iOS微信H5支付跳转微信后不返回App问题(Swift-WKWebview)(转) 参考文章: (1)解决iOS微信H5支付跳转微信后不返回App问题(Swift-WKWebview)(转) ( ...

  2. H5页面在IOS微信webview中无法校验视频文件时长问题

    因业务需求需要一个图片视频文件上传功能,需支持主流浏览器及微信钉钉内置浏览器,遂考虑用一个简单的H5页面做上传客户端.视频上传因为要控制视频长度,在其他浏览器中都校验通过,但是在微信中却出了问题 co ...

  3. ios微信H5网页没有声音的解决方法

    一.问题描述 在做微信网页抽奖开发时,点击抽奖需要添加音效, 正常情况下,直接调用audio标签的play方法即可,但是在ios微信端不起作用. 二.解决方法 通过WeixinJSBridge调用pl ...

  4. php苹果h5微信支付白屏,iOS 微信h5支付 返回APP显示支付结果

    作者:QuinceyYang (YangQing) 一.解决UIWebView页面不能调起微信支付 - (BOOL)webView:(UIWebView *)webView shouldStartLo ...

  5. uniapp微信H5公众号授权与支付

    目录 前言 准备工作 配置回调域名 授权方式 参数 完整代码 前言 网页授权微信官方文档:网页授权 | 微信开放文档 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基 ...

  6. 支付宝|微信|h5|个人收款免签约支付系统源码

    支付宝,微信免签支付, 1.不需要企业资质,不需网站认证. 2.个人账户即可收款,无需成为支付宝.微信商家, 3.无需对接第三方平台, 4.无需任何手续费,无需提现,即时收款到支付宝.微信账户, 5. ...

  7. ios微信h5棋牌游戏自动播放音效填坑

    开发中不可避免遇到一些ios和安卓适配的坑: ios不可以自动播放音乐的机制,使一些h5游戏播放背景音乐和音效无法播放: 正常情况下ios只允许用户自己去打开音效.但是这样的机制并不适合很多项目.而去 ...

  8. 手机端html回弹,处理iOS微信H5页面橡皮回弹效果

  9. vue ios微信小程序跳转外链地址,返回页面执行自动后退或关闭页面

    需求是页面外跳后,返回到项目首页,判断上一页有没有,有则后退一页,没有则关闭微信浏览器 处理方案: 创建refresh.js 文件 在index.html 文件中引入 home.vue // 在首页先 ...

最新文章

  1. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——删除
  2. 5 年提速 500 倍,英伟达 GPU 创纪录突破与技术有哪些?
  3. Android开发--SharedPreferences初步介绍
  4. 2015年百度之星初赛(1) --- D KPI
  5. vs传值接收页面怎么直接打开_VS2003传值
  6. 有规律字段拆分(2005的解决方案)
  7. 5.10地址信息函数
  8. mybatis基础总结02 -配置详解
  9. DDD实战进阶第一波(七):开发一般业务的大健康行业直销系统(实现产品上下文接口与测试)...
  10. ios抓jdwskey
  11. oppo手机解锁_oppo手机密码解锁大全【图文】
  12. PCB中负片层的含义
  13. Unity3d开发wp8问题汇总
  14. 注重实效的程序员之快速参考指南
  15. 6个让您获得更佳的移动分析体验的提示
  16. php升序排列,php关联数组怎么按键名实现升序排列
  17. 大数据产品研究 - Presto简介
  18. ODOO实现环境检测机构检测业务管理系统
  19. Julia常用包简介
  20. 爱奇艺《大魔术师》海内外备受关注

热门文章

  1. 有的人已不在人间,但他们还在疯狂赚钱
  2. Cursor设置中文版
  3. Error while executing: npm ERR! D:\Program Files\Git\cmd\git.EXE ls-remote -h -t git://github.com/ad
  4. shell之文本过滤(awk)
  5. 路漫漫其修远兮——Linux发展大事记
  6. iframe跨域传递参数
  7. 软件测试最全的视频源码,最新软件测试学习路线图分享
  8. 进程间通信——共享内存(Shared Memory)
  9. 七日杀服务器自动保存时间,七日杀服务端架设 免主机跳出存档清空解决方法和技巧...
  10. 搞笑短信笑话-最新搞笑短片