最近在做微信公共号开发的时候遇到一些坑,特意记录下来,供大家参详,如果有更好的方法或者解决思路,欢迎提供。

项目背景:

在公众号中有活动页面,引导用户进行平台帐号的绑定操作,之后用户的所有福利均可以在平台中进行查看,于是诞生了绑定账号的需求。

目前有两套帐号体系A和B,都需要帐号绑定,于是绑定的需求就更新为帐号打通与绑定的需求,域名为abc.com和def.com。

遇到的问题:

项目完成后,大家测试。结果B帐号体系的完全正常符合预期,绑定成功。但是A帐号体系则出现有的iphone可以绑定成功,有的iphone绑定失败,安卓手机测试范围不多,没有遇到问题。

排查思路:

遇到这种问题,最先开始的就是在服务端查看打点日志,看看究竟出了什么问题。结果发现绑定失败的请求,并没有到达bind层。一直没有bind的请求。那么也就是绑定页面的前面一步,用户登录的时候出现异常了,由于绑定的页面是在def.com域名下,A帐号体系属于跨域操作,排查就联想到是不是跨域导致的,或者说用户是不是登录成功了。于是我们在有问题的手机上访问了abc.com的页面,发现用户果然并没有登录成功。问题是并不是所有的测试iphone都会出现这种问题。

微信在安卓机器上是基于QQ浏览器的内核。

微信在iphone上是iOS指定的内核,UIWebView实现的:

查看一下ios的微信浏览器的信息如下

第一台:{"appname":"Netscape","appVersion":"5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit\/602.1.50 (KHTML, like Gecko) Mobile\/14A456 MicroMessenger\/6.3.30 NetType\/WIFI Language\/zh_CN","appCodeName":"Mozilla","userAgent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit\/602.1.50 (KHTML, like Gecko) Mobile\/14A456 MicroMessenger\/6.3.30 NetType\/WIFI Language\/zh_CN"}

第二台:{"appname":"Netscape","appVersion":"5.0 (iPhone; CPU iPhone OS 9_3_5 like Mac OS X) AppleWebKit\/601.1.46 (KHTML, like Gecko) Mobile\/13G36 MicroMessenger\/6.3.30 NetType\/WIFI Language\/zh_CN","appCodeName":"Mozilla","userAgent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 9_3_5 like Mac OS X) AppleWebKit\/601.1.46 (KHTML, like Gecko) Mobile\/13G36 MicroMessenger\/6.3.30 NetType\/WIFI Language\/zh_CN"}

有可能是内核做了这种安全的限制,限制了在跨域的情况下种cookie的操作。当然没有文献资料,我是看现象猜测的。于是,我退出了微信,原来绑定成功的iphone也显示绑定失败,并且经过排查与之前的出问题的iphone手机一样。既然在def.com里面不能正常的种cookie,那么在公共号内,我正常访问了abc.com的域名,随便种了一个cookie,然后在访问def.com绑定的页面,可能会覆盖之前的cookie吗?结果出问题的iphone竟然绑定成功。

我们第一种解决方案:在绑定页面,嵌入一个iframe, src就是abc.com的页面,尝试在进入绑定页面,就往abc.com域名下种cookie,结果失败,貌似为了安全,这种限制只能是正常的访问才可以。

第二种方案:建立一个def.com的空页面,作用就是获取微信的code与跳转到abc.com的页面种cookie,然后abc.com的页面再跳转到def.com的绑定页面,方案成功,但是稍微牺牲了用户进入页面的体验。

总结:

经过这次踩坑,对于微信浏览器跨域种cookie有了积累,并且对于微信web开发者工具的不好用有了吐槽。尤其是多帐号体系的打通与绑定有了新的认识。写下来供大家把玩,有好的解决方案也可以留言提供。

待解决:

1、base64位验证码在微信的web开发者工具中不通过验证;

2、有没有不三级跳,可以使用户体验更好并且能够解决问题的方案。

非常感谢下面的这篇文章

http://blog.csdn.net/zhx19920405/article/details/51417250

苹果微信cookie传不到服务器,基于微信公共号开发遇到的cookie问题解决方案小记...相关推荐

  1. 微信怎么传较大视频?微信怎么传特别大的视频?

    微信怎么传较大视频?微信怎么传特别大的视频视频是我们在生活中不可或缺的一部分,随着制作视频的小伙伴越来越多,大家都想把制作好的视频上传到一些平台或传给别人,有时候我们会遇到视频内存过大的问题,今天我给 ...

  2. 微信公共号开发教程java版——请求消息,响应消息及事件消息类的封装(三)

    一:封装请求信息 当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上. 各消息类型的推送XML数据包结构如下: 查看官网详细介绍 文本消息<xml&g ...

  3. 微信公共号开发教程java版——获取用户基本信息(UnionID机制)(七)

    一:UnionID机制说明 官网详细介绍:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839 获取用户基本信息( ...

  4. 苹果微信cookie传不到服务器,cookie解决微信不能存储localStorage的问题

    在开发基于微信的Web页面时,发现有些机型不能存储信息到localStorage中,或者是页面一旦关闭,存储的信息也失效了. 用cookie来替代localStorage,存储一些简单的数据.上网查找 ...

  5. 基于微信企业号的校园服务器,基于微信企业号的校园移动服务.doc

    基于微信企业号的校园移动服务.doc 基于微信企业号的校园移动服务 摘 要 以微信为代表的即时通信软件,打破了时间.空间的限制,集社交.传播和教育等功能为一体,在信息技术的推动下成为新型的教育方式并被 ...

  6. 微信小程序约课_基于微信小程序的瑜伽馆约课系统设计

    李涛 何绍平 龙建宇 江明 韦美雁 摘要:系统前端采用微信小程序开发工具实现,后台采用thinkPHP5进行搭建,并运用Javascript技术进行研发,系统主要实现了约课管理.课表管理.用户管理.商 ...

  7. 工业无线客户端服务器,基于4G工业路由器光伏发电无线远程监控解决方案

    原标题:基于4G工业路由器光伏发电无线远程监控解决方案 一.应用背景 近年来,随着国家"节能减排"."开发利用可再生能源"等号召的提出,以及一系列相关政策和法规 ...

  8. 微信提示已连接到服务器失败,微信提示无法连接到服务器如何解决

    近来发现不少网友对于微信提示无法连接到服务器如何解决这方面的讯息关注的热度颇高的,那么小编今天就针对此微信提示无法连接到服务器如何解决收集了一些相关的讯息 希望小编收集的这些讯息 能帮助到你. 1.更 ...

  9. 搜狗微信为什么搜不到服务器,搜狗微信搜索部分功能下线了?搜狗微信搜索部分功能将被下线详解[图]...

    最近有小伙伴在搜狗搜狗浏览器进行搜索微信公众等关键词都出现了下架的提醒!搜狗微信搜索部分功能下线了?来看看搜狗微信搜索部分功能将被下线具体消息! 搜狗微信搜索部分功能下线了?搜狗微信搜索部分功能将被下 ...

  10. 搜狗微信为什么搜不到服务器,搜狗微信搜索部分功能为什么下线 搜狗微信搜索部分功能将被下线详情介绍...

    搜狗高速浏览器v7.0.6.23715 官方正式版 类型:浏览器类大小:45.0M语言:中文 评分:8.9 标签: 立即下载 最近不少小伙伴在使用搜狗浏览器进行搜索微信公众等关键词的时候都会出现10天 ...

最新文章

  1. 【技术分享总结】—设计模式
  2. 关于VMware Linux 虚拟机忘记root 密码找回
  3. 微信二维码支付快速入门
  4. oracle虚读,oracle基础 - 若虚夜的个人空间 - OSCHINA - 中文开源技术交流社区
  5. Java Micro Framework:您无法忽略的新趋势
  6. java jar包示例_Java包isCompatibleWith()方法与示例
  7. php 构造骚扰短信发送机(仅供学习与参考,请勿用于非法用途)
  8. c语言数组前缀和,关于最大子数组问题
  9. 【整数规划算法】分支定界法及其Python代码实现
  10. 解决allegro 中OUT OF DATE SHAPES问题
  11. android 实现果冻动画效果,Android实现果冻滑动效果的控件
  12. 春节期间,“熊小孩”闯祸要赔偿怎么办?
  13. 运算放大器---转换速率(slew rate)
  14. android sd卡获取不到,解决Android10读取不到/sdcard/、/storage/emulated/0/文件的问题
  15. GIT修改账号密码重新登录和保存密码
  16. 服务器换主板不换系统教程,主板要换,系统不变
  17. 凯光dk4000说明书_《凯光dk4000烟弹》用户正在提问-魔笛moti行业门户网
  18. 超级计算机模拟现实,超级计算机模拟出了地球磁场真实的模样
  19. RabbitMQ问题排解
  20. c语言双向链表尾插法,双向链表 头插法 尾插法

热门文章

  1. 《连线》评出2008年十大最值得关注创业公司
  2. c语言中实型变量的三种类型,在C语言中的实型变量分为两种类型..doc
  3. echarts横向柱形图显示不同类别所占整体百分比
  4. 图解项目绩效考核表实例--绩效考核不用愁
  5. java se 知识点(一)
  6. 计算机画图图形组合教案,绘制简单的图形教案
  7. Air202学习 二 (定时器使用)
  8. 十分钟理解线性代数的本质_十分钟理解线性代数的本质
  9. C#使用NPOI操作Excel
  10. Codeforces1040B Shashlik Cooking