<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Yii2接入微信公眾平臺(tái)測(cè)試號(hào)

          共 1721字,需瀏覽 4分鐘

           ·

          2022-02-20 09:58

          ????微信公眾平臺(tái)的一些高級(jí)的接口需要認(rèn)證服務(wù)號(hào)才有權(quán)限調(diào)用,方便開發(fā)者熟悉開發(fā)流程和接口,微信官方提供一個(gè)測(cè)試號(hào),測(cè)試號(hào)能體驗(yàn)一些高級(jí)的接口。


          ????對(duì)接公眾號(hào)前,需要準(zhǔn)備一個(gè)可公網(wǎng)訪問的域名和服務(wù)器或者用花生殼映射本地項(xiàng)目:花生殼內(nèi)網(wǎng)穿透本地Web服務(wù)(PHP項(xiàng)目)


          一、申請(qǐng)公眾平臺(tái)的測(cè)試號(hào)


          申請(qǐng)地址,掃碼登錄即可:

          http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login


          dabd2c4104672509833b61792d138da2.webp


          登錄成功后,可以看到測(cè)試號(hào)分配的appID和appsecret


          a65692ff7e8ba04793165619a7acaa13.webp


          頁面往下拉,可以查看可以調(diào)用的測(cè)試接口權(quán)限


          d665274c78f35e814cab9becadb13069.webp


          申請(qǐng)到測(cè)試號(hào),下面就可以正式對(duì)接了,也就是公眾平臺(tái)需要驗(yàn)證開發(fā)者的服務(wù)器地址。


          二、驗(yàn)證開發(fā)者服務(wù)器


          接入公眾平臺(tái),我們只需關(guān)注“接口配置信息”這一欄


          092010edf4ceb0d694610a1e614104bd.webp


          很明顯這里需要需要我們填寫服務(wù)器的驗(yàn)證地址URL和Token,URL指的是微信服務(wù)器會(huì)向填寫的URL發(fā)送Get請(qǐng)求,這個(gè)請(qǐng)求會(huì)帶上一些簽名等參數(shù),當(dāng)我們填寫的URL地址拿到這些Get請(qǐng)求的參數(shù)時(shí)需要校驗(yàn)簽名,Token其實(shí)就是對(duì)接的暗號(hào)。


          編寫代碼,驗(yàn)證微信服務(wù)器發(fā)過來的請(qǐng)求


          我單獨(dú)起了個(gè)wechat的模塊,具體路徑:

          \app\modules\wechat\controllers\WechatController::actionToken()


          簽名算法說明:

          開發(fā)者提交信息后,微信服務(wù)器將發(fā)送GET請(qǐng)求到填寫的服務(wù)器地址URL上,GET請(qǐng)求攜帶參數(shù)如下:


          signature:微信加密簽名,signature結(jié)合了開發(fā)者填寫的token參數(shù)和請(qǐng)求中的timestamp參數(shù)、nonce參數(shù)

          timestamp:時(shí)間戳

          nonce:隨機(jī)數(shù)

          echostr:隨機(jī)字符串


          開發(fā)者通過檢驗(yàn)signature對(duì)請(qǐng)求進(jìn)行校驗(yàn)(下面有校驗(yàn)方式)。若確認(rèn)此次GET請(qǐng)求來自微信服務(wù)器,請(qǐng)?jiān)瓨臃祷豦chostr參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功,否則接入失敗。加密/校驗(yàn)流程如下:


          1)將token、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序

          2)將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密?

          3)開發(fā)者獲得加密后的字符串可與signature對(duì)比,標(biāo)識(shí)該請(qǐng)求來源于微信


          具體說明可閱讀官方文檔:

          https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html


          驗(yàn)證代碼:

              private $token = '7ty34ndReQ';

          public function actionToken()
          {
          // $this->request是我封裝了一層,可以用原生Yii::$app->request->get()替代
          $signature = $this->request->get('signature');
          $timestamp = $this->request->get('timestamp');
          $nonce = $this->request->get('nonce');
          $token = $this->token;// token需要跟公眾平臺(tái)的token保持一致

          $tmpArr = array($token, $timestamp, $nonce);
          sort($tmpArr, SORT_STRING);
          $tmpStr = implode( $tmpArr );
          $tmpStr = sha1( $tmpStr );

          if ($tmpStr == $signature) {
          $echostr = $this->request->get('echostr');
          echo $echostr;
          }
          }


          點(diǎn)擊“接口配置信息”后面的修改,填寫我們項(xiàng)目驗(yàn)證Token和URL


          6acbfa1002f685440840f02e835c8099.webp


          填好點(diǎn)擊提交,如果驗(yàn)證成功,會(huì)顯示綠色的“配置成功”提示


          32c0c7fcb588df22cebb537ca363f5a6.webp


          對(duì)接成功即可調(diào)用微信公眾平臺(tái)的其他接口,不過這只是驗(yàn)證服務(wù)器,調(diào)用接口還需要獲取access_token,具體閱讀微信官方文檔。

          瀏覽 52
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  少妇做爰XXXⅩ性XXX | 亚洲狼人影院 | 久久久久无码国产精品一区 | 国精产品一区一区三区有限是什么 | 哪些网站能看毛片 |