文档章节

IOS9 微信支付报 prepayid 获取失败 ErrorDomainSSL, -9802

Jack088
 Jack088
发布于 2015/10/09 10:35
字数 540
阅读 3723
收藏 1

微信支付或访问一些网站时报错:

SDKSample[669:19724] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

原因是 :

IOS9 中将 http 请求改成了 HTTPS(加密) 的方式

解决:

在项目的info.plist 文件里加上如下节点:

技术分享

NSAppTransportSecurity - NSAllowsArbitraryLoads

这个子节点的意思是:是否允许任性的加载? 设为 YES 的话就将禁用了 AppTransportSecurity 转而使用用户自定义的设置。

当 APP 内发起 webView 加载 https 的网页,则需要在 info.plist 中配置如下,如果网站引用的比较多应该是需要针对每个网站进行配置。

技术分享

参考:

iOS 9 and OSX 10.11 require TLSv1.2 SSL for all hosts you plan to request data from unless you specify exception domains in your app's Info.plist file.

The syntax for the Info.plist configuration looks like this:

<key>NSAppTransportSecurity</key>
<dict>
 <key>NSExceptionDomains</key>
 <dict>
   <key>yourserver.com</key>
   <dict>
     <!--Include to allow subdomains-->
     <key>NSIncludesSubdomains</key>
     <true/>
     <!--Include to allow insecure HTTP requests-->
     <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
     <true/>
     <!--Include to specify minimum TLS version-->
     <key>NSTemporaryExceptionMinimumTLSVersion</key>
     <string>TLSv1.1</string>
   </dict>
 </dict>
</dict>

If your application (a third-party web browser, for instance) needs to connect to arbitrary hosts, you can configure it like this:

<key>NSAppTransportSecurity</key>
<dict>
   <!--Connect to anything (this is probably BAD)-->
   <key>NSAllowsArbitraryLoads</key>
   <true/>
</dict>

If you're having to do this, it's probably best to update your servers to use TLSv1.2 and SSL, if they're not already doing so. This should be considered a temporary workaround.

//[WXApi sendReq:req] 不跳转微信支付

可以尝试用 [WXApi safeSendReq:req]; 跳转微信支付,导致不跳转的原因可能是因为项目开发过程中,之前应用了微信的shareSDK(没有支付功能),现在和微信支付的SDK冲突了。

解决:可以删除原来的 shareSDK 重新引入 支付的SDK。

//onResp:(BaseResp*)resp 不执行

原因:微信支付的SDK没有代理,所以,你想获取支付后的结果的返回信息,需要去 AppDelegate 里,添加如下代码,添加微信的代理:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{   

 return  [WXApi handleOpenURL:url delegate:self];

//或者把回调方法写到其他单独的类里面 

// WXPay *wxpay=[[WXPay alloc]init];

//    return  [WXApi handleOpenURL:url delegate:wxpay];  

}

然后,再实现这个方法:

-(void) onResp:(BaseResp*)resp


ps:

http://stackoverflow.com/questions/30739473/nsurlsession-nsurlconnection-http-load-failed-on-ios-9

© 著作权归作者所有

上一篇: IOS9 适配
Jack088
粉丝 45
博文 550
码字总数 90026
作品 0
扬州
程序员
私信 提问
微信支付开发的一些问题,获取到prepayId之后仍然无法H5调起支付的问题

微信支付需要我们在商户平台设置一个key的值,用来签名的关键数值 根据微信签名的规则,所有提交到服务器的参数,需要使用key1=value1&key2=value2&.... 的这种形式拼接成一个stringA,然后s...

zxcholmes
2016/09/22
2.4K
0
android集成微信支付(全是坑)

android集成微信支付(全是坑) 一. 微信开发步骤: 1.注册registerApp 2.获取token 3.获取prepayid 4.调用sendReq 二. 服务端签名,安卓客户端具体操作如下: 1.把Constants.java,MD5.java...

新年
2016/01/04
745
0
微信支付集成步骤

1,申请微信支付的功能,获取到开发需要的参数 2,iOS端集成微信支付 2.1项目设置APPID 在URL Scheme中设置 2.2 导入sdk,配置项目,注册APPID 2.2.1 导入demo中的sdk, 2.2.2 还需要倒入dem...

云飞扬v5
2016/09/13
59
0
iOS微信支付接入以及工具类封装

在刚刚结束的一个项目中用到了微信支付,从接入微信支付到工具类的封装,在本文中做个积累,方便日后使用。1.开始接入微信支付的准备工作 首先你需要去微信开放平台注册账号,在这里要吐槽一下...

储小白
2018/07/06
0
0
微信支付之app支付

1、app支付和H5支付是在两个平台 app支付是在微信开放平台,H5支付是在微信公众平台,因此appid和appsercret 不一样 所需要的商户key是一样的 2、获取预支付订单 app获取预支付订单比h5支付少...

扎西多顿
2016/04/05
336
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
226
9
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
2
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
2
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部