WeChat JS-SDK-使用許可署名アルゴリズム

WeChat JS-SDK-使用許可署名アルゴリズム

jsapi_チケット

署名を生成する前に、まず jsapi_ticket を理解する必要があります。jsapi_ticket は、公式アカウントが WeChat JS インターフェースを呼び出すために使用する一時的なチケットです。通常、 jsapi_ticket の有効期間は 7200 秒で、access_token を通じて取得されます。 jsapi_ticket を取得するための API 呼び出しの数は非常に限られているため、jsapi_ticket を頻繁に更新すると API 呼び出しが制限され、ビジネスに影響を及ぼします。開発者は、独自のサービスで jsapi_ticket をグローバルにキャッシュする必要があります

access_token を取得するには、次のドキュメントを参照してください (有効期間は 7200 秒です。開発者は access_token を独自のサービスでグローバルにキャッシュする必要があります)。../15/54ce45d8d30b6bf6758f68d2e95bc627.html

最初の手順で取得した access_token を使用して、http GET メソッドで jsapi_ticket を取得します (有効期間は 7200 秒です。開発者は jsapi_ticket を独自のサービスにグローバルにキャッシュする必要があります)。https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi

次の JSON が正常に返されます。

{
"エラーコード":0,
"エラー":"OK",
「チケット」:"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
"有効期限":7200
}

jsapi_ticket を取得したら、JS-SDK 権限検証用の署名を生成できます。

署名アルゴリズム

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


つまり、署名=sha1(文字列1)です。 例:

非先祖=Wm3WZYTPz0wzccnW

jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg

タイムスタンプ=1414587457

url=http://mp.weixin.qq.com?params=値


ステップ 1. 署名するすべてのパラメータを、フィールド名の ASCII コードで小さい順から大きい順 (辞書順) に並べ替え、URL キーと値のペアの形式 (key1=value1&key2=value2…) を使用して文字列 1 に連結します。

jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW&timestamp=1414587457&url=http://mp.weixin.qq.com?params=value


ステップ 2. sha1 を使用して string1 に署名し、署名を取得します。

0f9de62fce790f9a083d5c99e95740ceb90c27ed

予防

署名に使用される noncestr と timestamp は、wx.config の noncestr と timestamp と同じである必要があります。

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

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

<<:  Jenkins 独自のユーザー データベース暗号化アルゴリズムの簡単な分析

>>:  顔認識に興味がありますか? JavaScriptで実装された顔検出方法

ブログ    
ブログ    

推薦する

...

プログラマーはAIアルゴリズムを使用して3,000匹の新しいポケモンを生成した

「人間は見たことのないものを想像することはできない」ということわざがあります。したがって、ほとんどの...

AIスタートアップ向け優秀開発ツールガイドが人気に、Jupyterの「キラー」も発見される

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

見ないと後悔するよ! 2019年の人工知能業界の25の主要トレンド

[[257459]]著名なベンチャーキャピタル調査機関である CB Insights は、2019 ...

...

モノのインターネットにおける人工知能と機械学習の役割は何ですか?

人工知能 (AI) と機械学習 (ML) をモノのインターネット (IoT) システムに統合すること...

レノボAmu:シーンインテリジェンスの時代に新たな「三大デバイス」を再定義

3月19日、杭州でCSHIA 2019スマートホーム業界開幕式が開催されました。ブランドメーカー、イ...

この病院のAI看護師は、人間の看護師の作業負荷を30%削減するためにオンライン化されました

[[270607]]看護師は医療現場を問わず需要が高いです。米国労働統計局の報告によると、看護師の求...

OpenAI取締役会の爆発的な活動が暴露される!投資家は訴訟の準備をしている、ネットユーザー:GPT-4はあなたよりも人を解雇するのが得意

OpenAIのドラマはまだ終わっておらず、多くのとんでもない行為が暴露されている。アルトマン氏を解雇...

...

...

...

中間レビュー: 2021 年注目のデータサイエンスおよび機械学習スタートアップ 10 社

今日の企業は、競争上の優位性を獲得するために、増え続けるデータを活用し、データ サイエンス、人工知能...

...

アリインデックスシステムの設計と実践

今回の講演者は、アントグループの王高航氏です。講演のテーマは、アントインデックスシステムの設計と実践...