ホームページ >バックエンド開発 >PHPチュートリアル >jsapi_ticket を取得するための WeChat 開発のチュートリアルの例

jsapi_ticket を取得するための WeChat 開発のチュートリアルの例

零下一度
零下一度オリジナル
2017-07-20 17:28:232022ブラウズ

jsapi_ticket を取得するための WeChat 開発のチュートリアルの例

1. 取得プロセス

2. access_token を通じて jsapi_ticket を交換します

3. 署名生成ルールは次のとおりです。署名には、noncestr (ランダムな文字列)、有効な jsapi_ticket、timestamp (タイムスタンプ)、url (現在の Web ページの URL、# とそれに続く部分を除く) が含まれます。署名されるすべてのパラメータをフィールド名の ASCII コードに従って小さいものから大きいもの (辞書順) に並べ替えた後、URL のキーと値のペアの形式 (つまり、key1=value1&key2=value2...) を使用してそれらを結合します。文字列 string1。ここで、パラメータ名はすべて小文字であることに注意してください。 string1 に対して sha1 暗号化を実行し、フィールド名とフィールド値には元の値を使用し、URL エスケープは実行しません。

2. 具体的な実装方法

1. access_token

/**
 * [getAccessToken description] 获取access_token
 * @return [type] [description] */private  function getAccessToken() {
    $data = $this->getFile($this->accessTokenFile);    if(time() - $data['time'] > 0){
        $url = "{$this->appID}&secret={$this->appsecret}";
        $re = $this->httpGet($url);
        $access_token = $re['access_token'];        if(isset($access_token)){
            $data['access_token']  = $access_token;
            $data['time'] = time() + 7200;
            $this->setFile($this->accessTokenFile,json_encode($data));
        }
    }else{
        $access_token = $data['access_token'];
    }   return $access_token;
}
を取得する

access_tokenは、複数のリクエストを避けるためにファイルストレージに保存できます。

access_token を介して jsapi_ticket を取得します。有効期間も 7200 秒です。

3. 署名を生成します

/**
 * [getJsapiTicket description] 获取jsapi_ticket
 * @return [type] [description] */private function getJsapiTicket() {
    $access_token = $this->getAccessToken();
    $jsapi_ticket = $this->getFile($this->jsapiTicketFile);    if(time() - $jsapi_ticket['time'] > 0) {
        $url = "{$access_token}&type=jsapi";
        $re = $this->httpGet($url);
        $this->preArr($re);
        $jsapi_ticket = $re['ticket'];        if(isset($jsapi_ticket)){
            $data['jsapi_ticket'] = $jsapi_ticket;
            $data['time'] = time() + 7200;
            $this->setFile($this->jsapiTicketFile, json_encode($data));
        }
    }else{
        $jsapi_ticket = $jsapi_ticket['jsapi_ticket'];
    }   return $jsapi_ticket;
}

署名アルゴリズム、

URL のキーと値のペアの形式を使用します (つまり、key1=value1&key2=value2) ... ) 文字列 string1 に結合します:

sha1 で string1 に署名し、署名を取得します:

注:
1。署名に使用される noncestr とタイムスタンプは、wx.config の nonceStr とタイムスタンプと同じである必要があります。

2. 署名に使用される URL は、JS インターフェースを呼び出すページの完全な URL である必要があります。

3. セキュリティ上の理由から、開発者はサーバー側に署名ロジックを実装する必要があります。

以上がjsapi_ticket を取得するための WeChat 開発のチュートリアルの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。