溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

微信小程序中怎樣驗(yàn)證所有者

發(fā)布時(shí)間:2021-01-20 14:32:47 來源:億速云 閱讀:190 作者:小新 欄目:移動開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)微信小程序中怎樣驗(yàn)證所有者,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

<?php
 //這兩個(gè)控制器是我本來就有的這里就不做演示  可以不繼承 這個(gè)控制器用到的東西 不依靠外面的東西
 namespace Apps\Controller;
 use Common\Controller\AppBaseController;
 /**
 * 首頁
 */
define("TOKEN", "");//定義你公眾號自己設(shè)置的token
define("APPID", "");//填寫你微信公眾號的appid 千萬要一致啊
define("APPSECRET", "");//填寫你微信公眾號的appsecret  千萬要記得保存 以后要看的話就只有還原了  保存起來 有益無害
 class WeChatController extends AppBaseController
 {
    //判斷是介入還是用戶  只有第一次介入的時(shí)候才會返回echostr
    function index()
    {
        //這個(gè)echostr呢  只有說驗(yàn)證的時(shí)候才會echo  如果是驗(yàn)證過之后這個(gè)echostr是不存在的字段了
        $echoStr = $_GET["echostr"];
        if ($this->checkSignature()) {
            echo $echoStr;
            //如果你不知道是否驗(yàn)證成功  你可以先echo echostr 然后再寫一個(gè)東西
            exit;
        }
    }//index end
    //驗(yàn)證微信開發(fā)者模式接入是否成功
    private function checkSignature()
    {
        //signature 是微信傳過來的 類似于簽名的東西
        $signature = $_GET["signature"];
        //微信發(fā)過來的東西
        $timestamp = $_GET["timestamp"];
        //微信傳過來的值  什么用我不知道...
        $nonce     = $_GET["nonce"];
        //定義你在微信公眾號開發(fā)者模式里面定義的token
        $token  = "xiaochen";
        //三個(gè)變量 按照字典排序 形成一個(gè)數(shù)組
        $tmpArr = array(
            $token,
            $timestamp,
            $nonce
        );
        // use SORT_STRING rule
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode($tmpArr);
        //哈希加密  在laravel里面是Hash::
        $tmpStr = sha1($tmpStr);
        //按照微信的套路 給你一個(gè)signature沒用是不可能的 這里就用得上了
        if ($tmpStr == $signature) {
            return true;
        } else {
            return false;
        }
    }// checkSignature end
    //構(gòu)建一個(gè)發(fā)送請求的curl方法  微信的東西都是用這個(gè) 直接百度
    function https_request($url, $data = null)
    {
        //這個(gè)方法我不知道是怎么個(gè)意思  我看都是這個(gè)方法 就copy過來了
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }//https_request end
 } //classend

關(guān)于“微信小程序中怎樣驗(yàn)證所有者”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI