公众号主体变更后,批量更新openid
/** * 处理公众号转移后的新旧openid id转换 */ public function change_openid(){ //因为每次最多只能从微信接口换取100个openid,当用户量多的时候,通过自动刷新当前页面的方式来节省时间 echo (''); //这个是取出没有更新过的openid用户的列表 $residentsModel= new ResidentsModel(); $list=$residentsModel ->field('id,name,nick_name,openid') ->where('openid','>',0) ->where('is_change_openid','=',0) ->page(1,100) ->order('id','asc')->select(); dump(count($list)); //如果有需要更新的数据,则进行转换 if(count($list)>0){ dump($list[0]['id']); //使用easywechat组件 $app = Factory::officialAccount($this->config); $accessToken = $app->access_token; // EasyWeChat\Core\AccessToken 实例 $token = $accessToken->getToken(); // token 字符串// $token = $accessToken->getToken(true); // 强制重新从微信服务器获取 token. //通过easywechat拿到access_token 当然这个自己手动用官方接口去取也可以 $access_token=$token['access_token'];//dump($access_token);这个是openid接口转换的地址 $url='http://api.weixin.qq.com/cgi-bin/changeopenid?access_token='.$access_token; $openid_list=[]; //通过循环的方式来把需要转换的openid放到索引数组中 foreach($list as $val){ array_push($openid_list,$val['openid']); } //转换接口请求的数据格式 $data=[ 'from_appid'=>'wx0cf328c9fce4f555',//旧公众号的appid 'openid_list'=>$openid_list ]; $res=http_request($url,json_encode($data)); $res=json_decode($res,true); //如果请求成功,则进行数据库的更新 if(isset($res['errcode']) && $res['errcode']==0){ $result_list=$res['result_list']; foreach($result_list as $val){ $data=[ 'openid'=>$val['new_openid'], 'is_change_openid'=>1 ]; $residentsModel->where('openid','=',$val['ori_openid'])->data($data)->update(); } } } }
https://kf.qq.com/faq/1901177NrqMr190117nqYJze.html
这个是微信的官方文档说明。我在开发者文档中没有找到,在qq客服中找到了这个。
内容直接摘录过来留存了
openid转换接口
账号迁移后,粉丝的openid会变化,微信用户关注不同的公众号,对应的openid是不一样的,迁移成功后,粉丝的openid以目标帐号(即新公众号)对应的OpenID为准。但开发者可以通过开发接口转换openid,开发文档可以参考:
提供一个openid转换的API接口,当帐号迁移后,可以通过该接口:
1. 将原帐号粉丝的openid转换为新帐号的openid。
2. 将有授权关系用户的openid转换为新帐号的openid。
3. 将卡券关联用户的openid转换为新帐号的openid。
◆ 原帐号:准备要迁移的帐号,当审核完成且管理员确认后即被回收。
◆ 新帐号:用来接纳粉丝的帐号。新帐号在整个流程中均能正常使用。
一定要按照下面的步骤来操作。
1. 一定要在原帐号被冻结之前,最好是准备提交审核前,获取原帐号的用户列表。如果没有原帐号的用户列表,用不了转换工具。如果原账号被回收,这时候也没办法调用接口获取用户列表。
如何获取用户列表见这里:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140840
2. 转换openid的API接口如下,可在帐号迁移审核完成后开始调用,并最多保留15天。若帐号迁移没完成,调用时无返回结果或报错。帐号迁移15天后,该转换接口将会失效、无法拉取到数据。
◆ URL:http://api.weixin.qq.com/cgi-bin/changeopenid?access_token=xxxxx
此处token为新帐号的token
◆ 请求方式:post
◆ 请求数据:
{
"from_appid":"xxxxxxxx",//此处为原帐号的appid
"openid_list":["oEmYbwN-n24jxvk4Sox81qedINkQ","oEmYbwH9uVd4RKJk7ZZg6S
zL6tTo"]//需要转换的openid,即第1步中拉取的原帐号用户列表,这些必须是旧账号目前关注的才行,否则会出错;一次最多100个,不能多。
}
◆ 输出数据:
{
"errcode": 0,
"errmsg": "ok",
"result_list": [
{
"ori_openid": "oEmYbwN-n24jxvk4Sox81qedINkQ",
"new_openid": "o2FwqwI9xCsVadFah_HtpPfaR-X4",
"err_msg": "ok"
},
{
"ori_openid": "oEmYbwH9uVd4RKJk7ZZg6SzL6tTo",
"err_msg": "ori_openid error"//这个openid目前没有关注旧公众号
}
]
}
◆ 错误码:
63178:from_appid参数错误,和调用的账号并没有迁移关系
Ori_openid error:openid目前没有关注旧公众号。或者是将from_appid搞错了,用成了新帐号的appid。
-
PDF派_免费好用的PDF在线工具
PDF派有几十个强大的PDF在线工具,无限次使用,永久免费,没有注册入口,人人都是VIP!PDF派是CleverPDF品牌专为中国地区用户而建立的网站... 924 0 25-01-14 -
Linux初步学习
在如今知识爆炸、科技迅猛发展的时代,人们对Linux操作系统的使用已不再陌生。中国有数亿网民,不仅在网络上,在各种媒体中及街头巷尾,或... 1132 0 24-05-24 -
隐秘相机_会员修复纯净版
隐秘相机,这款卓越的软件,赋予您悄然捕捉照片与视频的能力。在使用此应用进行拍摄时,周遭之人将全然不觉,让您尽享隐秘与安心。软件... 1073 0 25-06-09 -
专升本重要知识点资料
专升本大学语文文言文25篇.pdf新建 文本文档.bat真题-单词词义的考查.pdf知识点手册 - 高等数学基础知识.pdf英语语法.pdf英语语法知识点... 868 0 24-08-08 -
个人发卡网全开源解密版 集成了码支付和轻云支付接口+安装教程
这款发卡网源码已经集成了码支付和轻云支付接口,并且有4个前台样式模板,当然如果你都不满意,可以自己写样式,毕竟这款发卡平台源码无加... 453 0 21-07-02 -
加班与考勤表 - 企业管理表格
第一节 员工出勤记录表.DOC第七节 员工出勤日报表.DOC第三节 员工考勤记录表(二).DOC第九节 工人加班申请单(一).DOC第二节 员工考... 958 0 24-07-30 -
五洲到家小程序
“五洲到家小程序源码,类似58到家”这是一款与58到家服务模式相仿的小程序源代码,旨在为用户提供类似于58到家的生活服务平台。58到家作为... 1031 0 24-11-04 -
推荐系统实践
推荐在今天互联网的产品和应用中被广泛采用,包括今天大家经常使用的相关搜索、话题推荐、电子商务的各种产品推荐、社交网络上的交友推荐等... 1298 0 24-05-28
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~