ホームページ  >  記事  >  バックエンド開発  >  PHP で WeChat JS-SDK 署名を実装する方法

PHP で WeChat JS-SDK 署名を実装する方法

WBOY
WBOYオリジナル
2023-05-13 12:40:361499ブラウズ

WeChat の人気と発展に伴い、WeChat パブリック アカウントは、多くの企業や個人がマーケティングや宣伝を行うための好ましいプラットフォームになりました。 WeChat JS-SDK は、WeChat パブリック アカウントの開発に不可欠な部分です。これは、モーメントへの共有、WeChat 支払いの呼び出しなど、よりインタラクティブで興味深い機能を実装するのに役立ちます。この記事では、開発時に誰もがこの機能を簡単に使用できるように、PHP で WeChat JS-SDK 署名を実装する方法を紹介します。

1. WeChat JS-SDK の紹介

WeChat JS-SDK は WeChat 公式アカウントが提供する開発ツールで、公式アカウント上で WeChat のさまざまな機能を利用することができます。 WeChat JS-SDK を通じて、Web ページで WeChat の API インターフェイスを呼び出して、WeChat の共​​有、支払い、QR コードのスキャン、ダウンロードなどの機能を実現し、ユーザーに優れたユーザー エクスペリエンスをもたらします。

2. WeChat JS-SDK 署名の原則

WeChat JS-SDK を使用する前に、WeChat が提供するインターフェイスを呼び出して署名する必要があります。 WeChat JS-SDK 署名の原理は、事前に取得した access_token と jsapi_ticket に基づいて、現在リクエストされている URL が暗号化され、署名が生成されます。フロントエンド ページに JS ファイルを導入した後、wx.config を通じて検証します。JS ファイルは自動的にバックエンドに署名検証を要求します。検証が成功すると、次のステップに進むことができます。

3. WeChat JS-SDK 署名の手順

  1. access_token と jsapi_ticket の取得

WeChat JS-SDK 署名を使用する前に、access_token と jsapi_ticket を取得する必要があります。 jsapi_ticket jsapi_ticket これら 2 つのパラメータ。このうち、access_token は、WeChat パブリック プラットフォームが各インターフェイスを呼び出すときに使用する唯一の資格情報であり、jsapi_ticket は、js-sdk で WeChat JS インターフェイスを呼び出すために使用される一時チケットです。次の方法で取得できます:

(1) access_token

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid =". $appid."&secret=".$appsecret;
$res = json_decode(file_get_contents($url));
$access_token = $res->access_token;

(2 ) jsapi_ticket

$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=".$access_token;
$res = json_decode(file_get_contents ($url ));
$ticket = $res->ticket;

  1. noncestr と timestamp を生成

noncestr と timestamp はランダムに生成された文字列と時刻です。スタンプ。次のコードを使用して取得できます:

$nonceStr = createNonceStr();
$timeStamp = time();

//ランダムな文字列を生成します
function createNonceStr($ length = 16){

$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$str = "";
for ($i = 0; $i < $length; $i++) {
    $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
}
return $str;

}

  1. パラメータを並べ替えて文字列を結合します

すべてのパラメータを ASCII コードに従って小さいものから大きいものまで並べ替えます。次に、それらを文字列に接続します。次の例に示すように、署名アルゴリズムの要件に従ってスプライシングに注意してください:

string1 = "jsapi_ticket=" . $ticket . "&noncestr=" . $nonceStr . "×tamp=" . $ timeStamp . "&url =" . $url;

  1. 結合された文字列を SHA1 で暗号化します

結合された文字列を SHA1 で暗号化して署名を生成します。これらのパラメータは、まとめてフロントエンドに返されます。次の例に示すように:

$signature = sha1($string1);

$data = array(

"appId" => $appid,
"nonceStr" => $nonceStr,
"timestamp" => $timeStamp,
"url" => $url,
"signature" => $signature,
"jsApiList" => array(
    "onMenuShareTimeline",
    "onMenuShareAppMessage",
    "onMenuShareQQ",
    "onMenuShareWeibo",
    "hideMenuItems",
    "showMenuItems",
    "chooseWXPay"
)

);

$signPackage = json_encode ($data);

  1. フロントエンド ページに JS ファイルを導入して確認します

WeChat が提供する JS ファイルをフロントエンドに導入します検証に成功すると、WeChat JS-SDK が提供する機能を使用できるようになります。

4. 結論

この記事では、PHP で WeChat JS-SDK 署名を実装する方法を紹介します。 WeChat JS-SDK を使用する場合は、実際のニーズに基づいて関連する構成と呼び出しを行う必要もあります。この記事が、WeChat パブリック アカウントをマーケティング プロモーションに効果的に使用するのに役立つことを願っています。

以上がPHP で WeChat JS-SDK 署名を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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