首頁 > php教程 > php手册 > 主體

微信第三方開放平台全網發布驗證

WBOY
發布: 2016-09-24 09:02:49
原創
1702 人瀏覽過

我們的業務是把大量客戶的微信公眾號 透過授權 給微信第三方開放平台的方式,透過第三方開放平台對客戶公眾號介面進行代操作。

其中的微信第三方開放平台在測試階段(未全網發布),能授權的公眾號只能是加入到白名單中的。所以託管大量的公眾號,必須要對其全網發布。

 

而全網發布的時候,微信方會進行模擬公眾號和粉絲微訊號對你的第三方開放平台進行驗證:

laravel下面的部分驗證程式碼如下:

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

 

開始檢測,好緊張:

 

然後結果是:

成功! ! !

 

 

 

 

微信的官方手冊:

網布發布驗證手冊

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318611&token=&lang=zh_CN

第四步:使用授權碼換取公眾號的介面呼叫憑證和授權資訊

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1453779503&token=&lang=zh_CN

發客服訊息:

http://mp.weixin.qq.com/wiki/11/c88c270ae8935291626538f9c64bd123.html

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板