关于微信网页调用js-sdk相关接口注意事项目(一级域名与二级域名互相干扰!!!)
不知道有没有网友遇到过同一个web应用用不同的域名(一级或二级域名)在两个公众号中调用JSSDK相关接口实现功能,
这种做法本来没有问题,问题在于用二级域名(同属一级域名下的二级域名)绑定另一个web应用的ip在上面两个公众号中的其中一个做测试时,
问题就出现了。
我们先理一下jssdk调用的流程,
1、利用appId与appSecret得到access_token;
2、利用access_token得到jsapi_ticket临时票据;
3、通过算法获得随机字符串$nonceStr
4、利用jsapi_ticket=$jsapiTicket &noncestr=$nonceStr ×tamp=$timestamp &url=$url获取$signature签名;
5、jsapi_ticket、url、$timestamp、$nonceStr、$signature、appId共同组合成微信配置参数。
6、配置成功后可调用相关接口。
重点在于配置是否成功,
access_token与jsapi_ticket都时效性两个小时,使用时必须缓存,以免触发频率限制;
问题回来上面说的同一个众号中有两个应用在调用js接口,一个是生产的,已经上线的,一个测试的,专用测试用,两个应用都是主域名下的二级域名,
这时会出现接口调用冲突。!!!!
原因是如果安全域设置了一级域名,那它下面的二级域名同样可以调用js接口,也就是说一级域名与其下面的两级以下的域名统一对应一个公众号,
它们请求生成的access_token与jsapi_ticket具有唯一性,当一个域名请求后,另一个域名下调用时所使用的缓存access_token与jsapi_ticket就会失效,
从而调用失败。
简单来说, 一个公众号只能对应一个域名(包括其下面的二级以上域名),无论多少级域名调用接口,它们access_token与jsapi_ticket 是唯一的;
这真是折磨死人
关于微信网页调用js-sdk相关接口注意事项目(一级域名与二级域名互相干扰!!!)的更多相关文章
- 最新微信公众平台js sdk整合PHP版
由于没有持续关注微信公众平台相关的开发,所以看到这个东西时,都没有耐心看完开发文档,或者不知道重点. 重点在哪呢?重点在示例代码:http://mp.weixin.qq.com/wiki/7/aaa1 ...
- 微信分享调用 -- c#篇
微信分享调用JS -- c#篇 1.前端 1.1 导入微信端的JS 如果你的网址是http,则地址为 http://res.wx.qq.com/open/js/jweixin-1.0.0.js ...
- 如何将h5网页改成微信网页
1.如何将h5网页改成微信网页 1.设置安全域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 备注:登录后可在“开发者中心”查看对 ...
- 手把手实现微信网页授权和微信支付,附源代码(VUE and thinkPHP)
wechat github 手把手实现微信网页授权和微信支付,附源代码(VUE and thinkPHP) 概述 公众号开发是痛苦的,痛苦在好多问题开发者文档是没有提到的,是需要你猜的. 在开发过程中 ...
- 微信小程序必知相关知识
微信小程序必知相关知识 1 请谈谈微信小程序主要目录和文件的作用? project.config.json 项目配置文件,用得最多的就是配置是否开启https校验: App.js 设置一些全局的基础数 ...
- 微信js SDK接口
微信JS-SDK说明文档 http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 一.微信登录功能 在进行微信OAut ...
- .Net微信网页开发之JSSDK使用步骤和配置信息timestamp(时间戳),nonceStr(随机串),signature(签名),access_token(接口调用凭据)的生成获取讲解
前言: 因为接下来会有几篇关于微信JS-SDK功能使用的文章,主要会对微信分享,获取设备信息,获取地理位置,微信扫一扫这几个功能进行讲解.而这几个功能都是围绕着微信JS-SDK实现的,首先使用微信JS ...
- 微信网页授权封装接口——node.js版
Wechat 网页授权 授权url:(请在微信客户端中打开此链接体验) xxx为config.js中的WECHAT_DOMAIN 1.scope为snsapi_base xxx/?route=auth ...
- 调用微信js sdk
场景:需要调用微信获取当前位置的借口. 途径:查看微信 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 .后 ...
随机推荐
- 兼容FF 加入收藏夹和设为首页
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 使用Cloudera部署,管理Hadoop集群
Hadoop系列之(三):使用Cloudera部署,管理Hadoop集群 http://www.cnblogs.com/ee900222/p/hadoop_3.html Hadoop系列之(一):Ha ...
- PADS Logic 常见错误报告内容
1.PCB Decal LED0805 not found in Library pcb封装不在库中. 找到原图中的pcb-save to library 未分配PCB时候,右键Edit part-找 ...
- NoSQL之Redis高级实用命令详解--安全和主从复制
Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim ...
- Myeclipse10中出现Cannot return from outside a function or method错误提示
最近发现myeclipse10中有几处bug 比如: Cannot return from outside a function or method onClick="return chec ...
- [firefox+plug-n-hack]轻松地配置burpsuite代理https流量
http://zone.wooyun.org/content/25982 需要用到firefox的插件plug-n-hack下载https://raw.githubusercontent.com/mo ...
- axure复用-自定义组件,母版(模板)
组件(控件)是用于设计线框图的用户界面元素.在组件(控件)面板中包含有常用的控件库,如按钮.图片.文本框等.从组件面板中拖动一个控件到线框图区域中,就可以添加一个组件.组件可以从一个线框图中被拷贝(C ...
- linux服务之openfiler
架构:b/s 服务器端:封装好的linux系统 客户端:浏览器 相关包:封装好的linux系统 Openfiler imports user and group information from ce ...
- php 生成短URL的算法
function code62($x){ $show=''; while($x>0){ $s=$x % 62; if ($s>35){ ...
- selenium+python自动化之登录案例
一.登录 1.先打开浏览器 2.打开论坛主页:http://www.hordehome.com/ 3.查找元素之前可以先设置元素等待:implicitly_wait() 4.点登录按钮,弹出登录框 5 ...