有同学提问,他们公司的微信小程序,某个业务板块需要调用微信的openid,但是目前访问量巨大,已经突破了微信小程序对openid的最多次数限制,很多用户无法正常开展业务,该怎么办呢?
经过丁老师分析和研究,发现该公司的小程序因访问量巨大,调用openid的频率已经超过了微信小程序的限制,如图:

其实这个问题,不算什么特别复杂的业务问题。只是这个公司的小程序后端开发人员,在对调用openid时没有做出访问量预判,只是简单实现的了业务逻辑,并没有考虑到实际业务中的访问频次及数量需求。
丁老师曾主导开发几个千万级IP的产品,这个问题有很多种方案可以解决。
解决方法一:优化调用逻辑,对openid做数据缓存
同一微信公众号/小程序对单一用户的openid一般是固定的,是不会变的(用户解除绑定、微信AppID变更除外),当业务功能需要使用openid时,没有必要每次都通过微信接口去调用获取,这样会造成太多的资源浪费。完全可以将openid存储起来,存到数据库也好,存到Redis、Memcached也罢,反正就是存起来,不要每次都去读取。
解决方法二:调整调用方法,使用unionId
如果真的是,即使将openid做缓存了,数据量还是巨大,那么可以注册多个公众号、小程序,然后绑定微信开发者平台,使用统一的unionID来代替openid。
解决方法三:清零调用次数
微信提供了openid调用次数的清零接口,每月有10次清零机会。可调用接口https://api.weixin.qq.com/cgi - bin/clear_quota?access_token=ACCESS_TOKEN,请求体为{"appid": "APPID"}来重置调用次数。但如果超过10次清零上限,就会返回错误码48006,提示禁止清零,此时只能等待次月自动重置。
解决方法四:申请提额
临时提额:可在微信公众平台的“接口权限”处,查询临时提额机会,通常每3个月有一次机会,可根据提示申请临时提高调用额度。
永久提额:若业务量持续增长,可通过微信开放平台提交工单申请永久扩容,申请时需提供业务量证明等相关材料。此外,增加粉丝数量也可能会使部分接口配额自动提升,如模板消息、客服消息等接口,粉丝数达到10万/100万/1000万时,可能对应更高限额。升级账号类型也有助于提升配额,例如认证服务号比未认证账号拥有更高基础配额。
以上就是几个常用的处理方法。当然,还有更多的方法可以解决这个问题,如果你也恰巧遇却又不知如何解决,欢迎添加丁老师进行咨询和讨论。
最近有读者来函咨询,dedecms在上传图片时提示“Uploadfiletypenotallow”,怎么也上传不了。丁老师在百度查询了后,发现问题的根本原因是php没有上传权限的原因造成的,一般来说是php的临时上传目录,没有写权限造成...
nginx环境下php缓存问题的解决
支付宝支付提示“暂时无法获取订单信息,请稍候再试”的解决办法
这个时候可以用到live方法
没那么多废话,直接上修改方法public\assets\js\require-table.jspageSize: Config.pagesize || localStorage.getItem("pagesize") |...
mui的toast默认是在底部的,并且没有参数设置位置,经过研究发现可以通过修改css的方式设置位置,具体方法如下:1.muitoast设置type为divmui.toast('hello', {type: 'div...
在fastadmin中,一个页面的非菜单链接,想要点击后打开指定页面,并且菜单自动展开,该怎么实现呢?经过丁老师研究后,发现超级简单,废话不多说,直接上代码:<a class="btn-addtabs" href=...
开源节流,控制生产成本,限制开销,是每个企业和单位都要采取的成本控制和管理措施。其中,人力成本是企业在经营中支出占比较大的一块。以IT信息化部门为例,一个负责企业软件系统运维的IT部门,至少需要配置3个员工,每个员工按照IT工程师3-5年工...