有同学提问,他们公司的微信小程序,某个业务板块需要调用微信的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万时,可能对应更高限额。升级账号类型也有助于提升配额,例如认证服务号比未认证账号拥有更高基础配额。
以上就是几个常用的处理方法。当然,还有更多的方法可以解决这个问题,如果你也恰巧遇却又不知如何解决,欢迎添加丁老师进行咨询和讨论。
PHP网站,网页打开不正常,显示“DOMDocument::loadHTML():TagheaderinvalidinEntity”错误代码,是怎么回事呢?其实,这是php程序中,使用了newDOMDocument的loadHTML来解...
现在微信支付已经超越支付宝,成为中国最广泛的在线支付方式。作为互联网电子商务服务商,如何开通对接微信支付?如何使用微信支付呢?丁老师整理一篇微信支付常见的问题解答。一、如何开通微信支付?微信支付可以在微信支付官网(https://pay...
在使用PHP开发的程序时,突然遇到错误,查看错误日志发现提示:Arrayandstringoffsetaccesssyntaxwithcurlybracesisnolongersupported,这是怎么回事呢?经过丁老师分析,这句话的...
微信小程序可以实现文档的在线预览及保存本地下载,支持的格式有pdf/doc/xls/ppt等常用文档类型,如图:除了对办公文档进行预览,还可以进行转发、收藏、保存手机本地等其他操作。实现该功能的思路为,先用downloadFile下载文...
微信小程序部分一、完善小程序基本信息1.用管理员账号登录微信小程序(https://mp.weixin.qq.com/);2.左侧菜单选择首页;3.完善小程序的基本信息,包括小程序名称、小程序类目、微信认证、微信备案等。二、小程序开发配置1...
在实际工作中发现,有个编辑器每次保存或者修改后,都会自动在内容顶部和底部增加几行,烦人的很,一直找不到解决办法。后来发现原来是自己代码的问题。解决办法:内容在textarea中,不要换行不要写成:<textarea {content}...
正确的USB连线,其次打开开发者选项、USB调试,这些都是老生常谈,就不说了。在确保以上操作无误后,如果还找不到真机,关闭IDE,然后去adb的目录下,即HBuilderX\plugins\launcher\tools\adbs,把adb....
mui的toast默认是在底部的,并且没有参数设置位置,经过研究发现可以通过修改css的方式设置位置,具体方法如下:1.muitoast设置type为divmui.toast('hello', {type: 'div...