iOS 集成一网通支付的坑
1.UIWebView 和 WKWebView必须都实现, 因为 SDK 中会在有 WKWebView 的时候自动调用 WKWebView 的方法, 如果不实现 WKWebView 会造成崩溃;
2. UIWebView 发送请求
//1.设置请求路径NSURL *URL=[NSURL URLWithString:@"一网通支付接口地址"];//2.创建请求对象NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];request.timeoutInterval=5.0;//设置请求超时为5秒request.HTTPMethod=@"POST";//设置请求方法//设置请求体NSString *jsonRequestData = [NSString stringWithFormat:@"jsonRequestData=%@", [@"这里是通过后台获取的数据字典(参照文档里的数据结构)" JSONString]];request.HTTPBody=[jsonRequestData dataUsingEncoding:NSUTF8StringEncoding];[_webView loadRequest: request];
3. WKWebView 发送请求
因为 WKWebView 存在的 bug, 不能直接像 UIWebView一样直接发送 post 参数 (具体参考:http://www.jianshu.com/p/403853b63537)
我使用的是 通过 JavaScript 解决
js 代码如下(假如命名为:JSPOST.html):
<html><head><script>//调用格式: post('URL', {"key": "value"});function post(path, params) {var method = "post";var form = document.createElement("form");form.setAttribute("method", method);form.setAttribute("action", path);var hiddenField = document.createElement("input");hiddenField.setAttribute("type", "hidden");hiddenField.setAttribute("name", "jsonRequestData");hiddenField.setAttribute("value", params);form.appendChild(hiddenField);document.body.appendChild(form);form.submit();}</script></head><body></body>
</html>
OC 实现代码
- (void)viewWillAppear:(BOOL)animated
{[super viewWillAppear:animated];[[CMBWebKeyboard shareInstance] hideKeyboard];// 获取JS所在的路径NSString *path = [[NSBundle mainBundle] pathForResource:@"JSPOST" ofType:@"html"];// 获得html内容NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];// 加载js[self.webView loadHTMLString:html baseURL:[[NSBundle mainBundle] bundleURL]];
}// 加载完成的代理方法
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {// 判断是否需要加载(仅在第一次加载)if (self.needLoadJSPOST) {// 调用使用JS发送POST请求的方法[self postRequestWithJS];// 将Flag置为NO(后面就不需要加载了)self.needLoadJSPOST = NO;}
}// 调用JS发送POST请求
- (void)postRequestWithJS {// 发送POST的参数NSString *postData = [NSString stringWithFormat:@"%@", [@"这里是通过后台获取的数据字典(参照文档里的数据结构)" JSONString]];// 请求的页面地址NSString *urlStr = @"一网通支付接口地址";NSString *jscript = [NSString stringWithFormat:@"post('%@', '%@');", urlStr, postData];// 调用JS代码[self.webView evaluateJavaScript:jscript completionHandler:nil];
}
其他坑网上有了解决方案, 我就不写了.
还有其他的问题欢迎大家交流
iOS 集成一网通支付的坑相关推荐
- iOS开发-集成一网通支付
这两天一直在搞招行的一网通支付,网上的相关资料少之又少.其官方文档也让人只想呵呵.其支付流程: 1)向后台服务器请求支付URL(这里后台返回的是一个表单,通过loadHTMLString方法加载). ...
- php支付宝ios12.1.4支付失败,iOS集成支付宝和遇到的坑
首先导入支付宝SDK 和依赖库 98B035F7-6F66-4770-A8BB-F7E04CFFF4F1.png libc++.tbd libz.tbd CoreMotion.framework CF ...
- iOS 集成通联支付
摘要:sdk部分可登陆http://113.108.182.3:8282/techsp/index.html选择{移动支付支持},[相关资料下载---移动支付V2.8开发包].网站下载相关技术对接文档 ...
- Android平台招商银行“一网通”支付对接采坑记
公司最近的App中需要做支付功能,支付中需要支持微信支付.支付宝支付.一网通支付.本文主要记录在对接Android平台中的"一网通"过程中遇到的坑,如果有类似需求的朋友,可供你参考 ...
- ios浏览器微信支付回调页面_iOS集成H5微信支付实现跳转与回调的解决方案
前言 最近有个需求,不能在iOS客户端内集成支付宝和微信的App支付SDK(为了防苹果审核检测SDK),因此使用H5支付,虽然微信和支付宝的H5支付文档都说不要在App内使用H5支付而是使用App支付 ...
- ios使用支付宝进行支付,注意事项 集成支付宝钱包支付iOS SDK的方法与经验。...
下载 首先,你要想找到这个SDK,都得费点功夫.现在的SDK改名叫移动支付集成开发包了,下载页面在 这里 的 "请点此下载集成开发包" Baidu和Googlep排在前面的支付宝开 ...
- iOS开发支付集成之支付宝支付
项目中要用到支付功能,需要支付宝,微信,银联三大支付,所以打算总结一下,写两篇文章,方便以后的查阅, 大家在做的时候也能稍微参考下,用到的地方避免再次被坑.这是第二篇支付宝集成,第一篇银联支付在这里. ...
- 李洪强iOS开发支付集成之支付宝支付
iOS开发支付集成之支付宝支付 下载支付宝SDK 首先是开发包下载,还是比较难发现的,网上以前文章中的链接都打不开,我找了好久才找到的.最新的地址在这里(注意的是下载出来的SDK包里面并没有传说中的开 ...
- 集成支付宝钱包支付iOS SDK的方法与经验
没想到,支付宝的SDK是我目前用过的所有第三方SDK中最难用的一个了. 下载 首先,你要想找到这个SDK,都得费点功夫.现在的SDK改名叫移动支付集成开发包了,下载页面在 这里 的 "请点此 ...
最新文章
- 扩增子图表解读5火山图:差异OTU数量及变化规律
- ajax返回头部页面,ajax getResponseHeader获取中文响应头
- abap 在table control(表控件) 实现查找功能
- Vue.js-Day03-AM【超级详细:Node.js环境安装、安装淘宝镜像(Win、Mac)、安装Vue脚手架、初始化Vue项目-命令解释(Vscode、命令行窗口)、目录介绍、Vue文件介绍】
- 百度关键词分析工具_【青峰课堂】5分钟了解百度搜索推广的拓词工具—关键词规划师...
- canvas填充和描边介绍
- linux 黑酷命令行背景图片
- 0bug到底碰痛了谁的神经?
- Java基础之IO流
- WS2812B全彩LED驱动
- SAP-MM MRP类型详解
- 电机矢量控制(霍尔位置传感器)
- Java快速对接微信登录
- spark kryo java,在Spark中自定义Kryo序列化输入输出API
- 下载链接在微信中无法打开的解决方案
- 技巧:彻底删除电脑弹窗广告,还你一个干净的桌面!
- Excel的外部数据的引用
- 计算机应用基础excel2007 6.2使用函数和公式 教案,计算机应用基础教案62使用函数和公式.docx...
- 20131012-Actel公司申请License的方法
- UE4后期处理材质:扁平化风格描边