无标题小说,微信第三方平台授权绑定

我们的作业是把多量客户的微信公众号 通过授权
给微信第三方开放平台的艺术,通过第三方开放平台对客户公众号接口举办代操作。

咱们的作业是把多量客户的微信公众号 通过授权
给微信第三方开放平台的主意,通过第三方开放平台对客户公众号接口举行代操作。

先来感受一下微信公众平台二维码授权功用
https://a86.cn/weixin3rd/index.jsp

里头的微信第三方开放平台在测试阶段(未全网公布),能授权的万众号只好是进入到白名单中的。所以托管大批量的公众号,必须求对其全网发表。

里头的微信第三方开放平台在测试阶段(未全网揭橥),能授权的众生号只可以是加盟到白名单中的。所以托管多量的公众号,必要求对其全网公布。

                                                                     微信开放平台

–近年来在做微信第三方,刚初步的时候不是很清楚,但是自己渐渐商讨就懂了,

简单易行的付出一个第三方暂时分一键授权和全网发表吧

本小说写一下一键授权

1.登记一个开放平台时候填写资料

澳门葡京备用网址 1

 授权发起页域名:就是您代码所处空间的域名

授权测试公众号列表:是你全网发布成功以前 要测试所采用的公众号,

授权事件接收url:
用于吸纳微信推送的component_verify_ticket(那几个那些关键)

群众号音信证实:那么些是自己随便填写,只要和后台代码一样就行

万众号消息加解密key:那个是后台所须求的参数, 加解密新闻的时候用

民众信息与事件接收url: 那个三番五次就相当于微信用户通过那些屡次三番可以给第三方传送音讯

民众号支付域名;就是公众号代码所处空间的域名

2.开端准备授权代码

2.1  在率先步的填充资料的时候提到要填写 
授权事件接收url,由此那么些地方,微信会每十秒钟就会像这么些延续发送component_verify_ticket,指出通过艺术开展封存(代码如下,我放相片,直接粘代码太乱了)

澳门葡京备用网址 2

澳门葡京备用网址 3

地点用到的 WXBizMsgCrypt pc = new WXBizMsgCrypt  ,那个是微信给的
加解密所要求的类

还动用到一个util类,重假使把xml格式的数量解析为map 格式数据

接下来就是 save()方法,对component_verify_ticket举办封存,

到最终要求要给微信回复一个success字段,

一、目的

无标题小说,微信第三方平台授权绑定。落到实处集团的微信公众号可以急速无误且零配置的与天狗微信服务端进行绑定,节省运营人员的维系费用。

 

 

二、微信开放平台开通流程

  1. 透过开发者资质申明
  2. 创办第三方平台(应用)
  3. 测试第三方平台
  4. 报名全网公布

而全网公布的时候,微信方会开展效仿公众号和粉丝微信号对你的第三方开放平台举办认证:

而全网发表的时候,微信方会开展效仿公众号和粉丝微信号对你的第三方开放平台举行认证:

三、技术流程

群众号一键登录授权给第三方平台方的技艺流程

澳门葡京备用网址 4

公众号一键授权流程图

laravel上面的有的验证代码如下:

laravel上边的片段验证代码如下:

上面对授权流程进行详尽介绍:

1、用户进入第三方平台(天狗)微信管理连串
澳门葡京备用网址 ,诚如而言,用户需求先进入第三方平台方网站,如:http://store.51tiangou.com
2、第三方平台(天狗)方拿走预授权码
预授权码是第三方平台(天狗)方完毕授权托管的必不可少音信,预授权码可由此调用开放平台接口获取
3、发布后修改和遮住现网
其三方平台方能够在团结的网站首页中放置微信公众号登录授权的入口,率领民众号运营者进入第三方平台授权页。网址为:https://mp.weixin.qq.com/cgi-bin/componentloginpage?component\_appid=xxxx&pre\_auth\_code=xxxxx&redirect\_uri=xxxx
该网址中第三方平台方需求提供第三方平台方的appid预授权码pre_auth_code回调URI
4、用户确认并允许登录授权给第三方平台方
用户进入第三方平台授权页后,须求认可并允许将团结的万众号登录授权给第三方平台方,已毕授权流程。
5、授权后回调URI,得到授权码和过期时间
授权流程落成后,会进来回调URI,并在URL参数中回到授权码和过期时间(redirect_url?auth_code=xxx&expires_in=600)
6、利用授权码调用公众号或小程序的相干API
在得到授权码后,第三方平台方能够动用授权码换取授权公众号或小程序的接口调用凭据(authorizer_access_token,也简称为令牌),再通过该接口调用凭据,根据公众号开发者文档或小程序支付文档的讲明,去调用公众号或小程序相关API

 1      if($app_id == 'wx570bc396a51b8ff8'){
 2             if($MsgType == 'text'){//普通文本验证
 3                 $repType = "text";
 4                 $content = $this->getRecMsg_Content();
 5                 if($content == 'TESTCOMPONENT_MSG_TYPE_TEXT'){
 6                     $repCont = 'TESTCOMPONENT_MSG_TYPE_TEXT_callback';
 7                 }else{//API验证
 8                     $repCont =  explode(":",$content)[1];//接受微信放发来的query_auth_code
 9                     $msgcontent = ["content"=>$repCont.'_from_api'];
10                      //获取access_token
11                     $Client = new Client(['base_uri' => 'https://api.weixin.qq.com/cgi-bin/component/api_query_auth']);
12                     $client_result = $Client->post('?component_access_token=此时有效的第三方开放平台access_token',['json' => ['component_appid'=>'你的component_appid', 'authorization_code'=>$repCont], "proxy" => "如有需要填写代理ip"])->getBody();
13                     $access_token = json_decode($client_result,true)['authorization_info']['authorizer_access_token'];
14                     //发客服消息
15                     App::make('weixin.cp')->setAuthorizerToken($access_token)->sendKeFuMsg($this->getFromUserName(),'text',$msgcontent);
16                     $repCont = $repCont.'_from_api';
17                 }
18             }elseif($MsgType == 'event'){//事件验证
19                 $repType = "text";
20                 $repCont = $MsgEvent."from_callback";
21             }

         //返回给微信xml
22             $weixin_mp = App::make('weixin.mp');
23             $weixin_mp->on($repType, function() use($repType,$repCont) {
24                 return App::make('weixin.mp')->makeMessage($repType ,$repCont);
25             });
26             $response = $weixin_mp->trigger($repType);
27             return $response;
28         }
 1      if($app_id == 'wx570bc396a51b8ff8'){
 2             if($MsgType == 'text'){//普通文本验证
 3                 $repType = "text";
 4                 $content = $this->getRecMsg_Content();
 5                 if($content == 'TESTCOMPONENT_MSG_TYPE_TEXT'){
 6                     $repCont = 'TESTCOMPONENT_MSG_TYPE_TEXT_callback';
 7                 }else{//API验证
 8                     $repCont =  explode(":",$content)[1];//接受微信放发来的query_auth_code
 9                     $msgcontent = ["content"=>$repCont.'_from_api'];
10                      //获取access_token
11                     $Client = new Client(['base_uri' => 'https://api.weixin.qq.com/cgi-bin/component/api_query_auth']);
12                     $client_result = $Client->post('?component_access_token=此时有效的第三方开放平台access_token',['json' => ['component_appid'=>'你的component_appid', 'authorization_code'=>$repCont], "proxy" => "如有需要填写代理ip"])->getBody();
13                     $access_token = json_decode($client_result,true)['authorization_info']['authorizer_access_token'];
14                     //发客服消息
15                     App::make('weixin.cp')->setAuthorizerToken($access_token)->sendKeFuMsg($this->getFromUserName(),'text',$msgcontent);
16                     $repCont = $repCont.'_from_api';
17                 }
18             }elseif($MsgType == 'event'){//事件验证
19                 $repType = "text";
20                 $repCont = $MsgEvent."from_callback";
21             }

         //返回给微信xml
22             $weixin_mp = App::make('weixin.mp');
23             $weixin_mp->on($repType, function() use($repType,$repCont) {
24                 return App::make('weixin.mp')->makeMessage($repType ,$repCont);
25             });
26             $response = $weixin_mp->trigger($repType);
27             return $response;
28         }

四、开发点概述

  • 微信支付平台appid、appsecret、token等配置新闻等保存、获取
  • 微信心跳监测component_verify_ticket的解析、存储
  • 用户授权成功后,公众账号新闻的积存,与公司的绑定
  • 已授权公众号授权码、accessToken、refreshAccessToken的存储,定时刷新
  • 已授权公众号风云和音信的拍卖

 

 

五、对现有系统流程的熏陶

  • 微信公众号要求进行账号信息的补给完善,例如店铺的绑定
  • 其三方平台(天狗)与三菱号间的数额交互全体亟需展开加密处理

开头检测,好紧张:

开端检测,好紧张:

六、踩坑

  • 亟待将微信官方提供的aes.jar安装到私服
  • 每10分钟微信会向登记开发平台时填写的url发送一个verifyTicket(心跳监测),想要解密该ticket不仅需求得到微信传过来的参数,还需求将request再度解析为BufferedReader才可以获取到内部的xml数据。
  • 内需替换掉jre/lib/security目录里面的2个jar,否则不可能进行不易解密微信数据
  • 转移的授权二维码必须在本网站内才可以正确的被围观使用,否则会报
  • 授权后的民众号消息一定好妥善保存,一旦丢失还索要开展再一次授权

澳门葡京备用网址 5

image.png

尚未全网发表的第三方平台,须要添加公众号ID(gh_xxxxx之类的)到测试帐号里才方可添加,否则需求提请全网揭橥,不然就会报上边图中的错误

澳门葡京备用网址 6

澳门葡京备用网址 7

 

 

然后结果是:

下一场结果是:

澳门葡京备用网址 8

澳门葡京备用网址 9

成功!!!

成功!!!

 

 

 

 

 

 

 

 

微信的官方手册:

微信的合法手册:

网布发表表明手册

网布公布表明手册

第四步:使用授权码换取群众号的接口调用凭据和授权音讯

第四步:使用授权码换取群众号的接口调用凭据和授权音信

发客服音讯:

发客服音讯:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website