微信公众号开发问题汇总

标签: 微信 分类: Javascript 创建时间:2020-07-10 06:20:52 更新时间:2024-11-15 10:49:44

1.公众号获取到的昵称乱码

微信获取用户信息,通过 https://api.weixin.qq.com/sns/userinfo 获取到的微信昵称出现了乱码,我的昵称是包含中文的。

问题不是出在微信上,是出在sendRedirect页面跳转的时候,在跳转之前,将昵称进行url转码就好了:URLEncoder.encode(weixinName,”UTF-8”)。

2.公众号页面缓存问题

微信公众号开发的H5页面,会有严重的缓存问题,当服务器上的文件更新后,微信公众号访问该网站,其实并没用立即的更新,这个问题去年就有很多人提到过了,但是官方一直没有给予解决,只能通过其他的方式清除公众号的缓存了。
比如IOS中,通过微信我->设置->通用->存储空间->缓存->清理缓存,完成清理,这里要主要,清理的是缓存,而不是聊天记录。

参考文章:
1.微信公众号H5页面缓存问题解决方案! (这里倒是有几个解决方案,修改文件名,修改文件缀)
2.微信公众号页面缓存问题 (这里是微信公众号的讨论页面,有人就是在2020还是说微信团队没有解决相关的问题)
3.微信公众号开发,清除微信内置浏览器缓存 (这篇文章讲了多种方式如何清理微信缓存问题,主要就是借助于微信自带的设置->通用->存储->清理缓存,这里是清理缓存,不是清除聊天记录,两者还是不一样的。)
4.微信浏览器怎么禁止缓存静态页面-通过nginx配置 (通过增加Last-Modified、Cache-Control、if_modified_since、expires、etag等协议头进行缓存的清理)
5.解决微信浏览器缓存站点入口文件(IIS部署Vue项目) (前端vue使用文件版本号,微信公众号菜单链接加上特定版本号、部署到nginx上)

3.40163错误

使用 "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code"; 获取微信授权的时候,出现了40163错误。

4.一个公司只能注册两个公众号

原则上,一个公司只能注册两个公众号,但是也还是有办法突破这个限制的。
1.你自己先注册个邮箱

2.然后用新的邮箱去微信公众平台注册公众号

3.输入企业的时候 选择法人验证,然后填写信息,选择提交

4.提交时候会显示下面界面

5.点击“申请表”,进入申请表填写页面,填写下面这句话(或者根据自己实际情况填写,但是不要有违规的嫌疑):

你好,亲爱的管理员。因为公司业务调整,需要增加公众号用于公司官方微信,注册用来,投放广点通,并已经联系好当地代理,保证不发时事内容,不追热点。只发布公司相关产品。请批复 。

6.提交“申请表”之后,一般第二天就会有邮件发到你当时的注册邮箱里面,到时去邮箱里面留意看下,一般申请一次微信官方会给增加5个名额

【注意事项】
1、登陆后改名称,名称7天内过期。设置头像和介绍。2、最好别发文章,等突破完再发文章。3、需要微信认证的可从后台开通!微信认证目前名称审核严格,比如;祛斑美白,需要上传特种医疗证件。涉及食品类的名称,需要上传食品流通许可证。名称认证我们无法保证所有名称审核通过,这个是审核公司负责审核。

5.页面地址url被转义了

设想这样的场景,我在微信开发者工具中,输入一个后台地址,后台获取到用户的信息之后,要跳转到一个登录页,并携带参数。比如跳到www.bing.com,后面会带有一个sessionid参数。结果在后台使用sendRedirect方法进行跳转,结果就会出现被转义的情况。

1
response.sendRedirect(url+"&sessionId="+sessionId);

但是如果这个url是包含了问号的情况,就可以进行条状,比如www.bing.com?,最后后台拼接的跳转字符串其实是www.bing.com?&sessionId=1,如果不加文化,则拼接的是www.bing.com&sessionId,这不是一个正常的跳转url,就会被转义。

1
window.location.href = 'http://dev.proheng.net/PhRecruitAdmin/loginWX?reqUrl=http://localhost:8080?';

6.argument invalid! data.thing12.value invalid rid

这个问题就是发送模板消息和订阅消息的时候出现了。

【解决方案】
thing12 长度限定在20个字符内。

7.redirect_uri 参数错误

在构建微信认证跳转地址的时候,经常出现这个问题。
(1) 检查uri参数和微信公众号后台配置是否一致。
(2) 检查微信公众号是否配置网页授权域名。

参考文章:
1.微信Redirect_uri参数错误解决方法 因为微信只支持80或者443端口。所以这里要能访问到你服务器上的80或者443端口
2.亲测!微信登录redirect_uri参数错误问题解决记录
3.微信公众号:提示“redirect_uri 参数错误” 这篇文章有用
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。