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で実装された顔検出方法

ブログ    
ブログ    

推薦する

Gonex CEO ウェン・メンフェイ氏との独占インタビュー: アプリケーションの分野では、モデル自体よりも意図の認識の方が重要です。

ゲスト | ウェン・メンフェイインタビュー&執筆 | Yun Zhao潮が満ちると、何千もの船が動き...

...

経験からの教訓: 機械学習の問題に適したアルゴリズムを選択するにはどうすればよいでしょうか?

機械学習がますます普及するにつれて、タスクを適切に処理できるアルゴリズムがますます多く登場しています...

ビッグデータなどの最も中核的なキーテクノロジー:32のアルゴリズム

[[181277]]オーストリアの記号計算研究所 (RISC) の Christoph Koutsc...

人工知能が習得する必要がある知識ポイントは何ですか?どんな本を読めばいいでしょうか?非常に詳細なチュートリアル

[[243197]]人工知能とは何ですか?人工知能の定義は、「人工知能」と「知能」の 2 つの部分に...

初心者のための CNN と Keras のクイックガイド

[[201203]] 1. Keras を使用する理由ディープラーニングが大人気の昨今、サードパーテ...

あらゆる角度から監視されることへの不安:AI はプライバシー侵害にどう対抗できるか?

インテリジェント時代では、アルゴリズムと計算能力の継続的な進歩により、AI 技術が急速に発展しました...

新しいディープラーニング プログラムは、ロボット工学の課題をどのように克服できるのでしょうか?

データ サイエンティストがディープラーニングについて話すとき、通常は画像の生成、検出、分類、回帰タス...

...

テクノロジーファイナンスからスマートファイナンスまで、民生銀行の革新的な人工知能の応用をご覧ください

[51CTO.comからのオリジナル記事] 「インターネット+」から「インテリジェンス+」まで、革新...

...

AI イニシアチブを成功させるために必要な 10 のこと

市場で競争上の優位性を獲得する過程で、多くの企業が新興技術の導入に熱心です。しかし、導入を急ぐあまり...

...

...

顔認識はどこにでもあるが、デジタル悪用のリスクに注意

数日前、清華大学法学院のラオ・ドンヤン准教授が、コミュニティに顔認識アクセス制御システムを設置するこ...