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

ブログ    
ブログ    

推薦する

フェイフェイ・リーのチームは、ゼロサンプル一般化を備えた自己エキスパートクローン技術を提案し、その性能はSOTAを上回った。

[[412771]]それは正しい!またフェイフェイ・リーだよ!フェイフェイ・リーについて最後に報道...

音声アシスタント業界はどこへ向かうのでしょうか?

プログレス・パートナーズの創設者兼シニアマネージングディレクターのニック・マクシェーン氏は、「今後数...

...

...

...

...

AIの限界を理解することがその可能性を実現する鍵となる

人工知能は多くの業界のワークフローを変革しました。デジタル顧客サービスアシスタント、自動運転車、無人...

天才少年が自動運転の「自転車」を製作、ネットユーザー「テスラも見たら泣くだろう」

自転車が「自力で歩ける」ようになるのはいつでしょうか? [[404743]]自転車は劣駆動システムで...

Java 配列から HashMap へのアルゴリズムの説明

1. 配列とは何ですか?どの本にこのような文章があったか忘れましたが、「すべてのデータ構造は配列の進...

...

世界最強のモデルが一夜にして手を変え、GPT-4 の時代は終わりました。クロード3号はGPT-5を上回り、1万語の論文を3秒で読み、理解力は人間に近い。

ボリュームがヤバい、またまたビッグモデルが変わりました。たった今、世界で最も強力な AI モデルが一...

アルゴリズムモデルの自動ハイパーパラメータ最適化手法

ハイパーパラメータとは何ですか?学習モデルには、一般的に 2 種類のパラメータがあります。1 つはデ...

AIは多くの仕事を「置き換える」のでしょうか?

コンピュータが人間の囲碁の名人と対戦していたとき、コンピュータは数年連続で世界チャンピオンに勝つこと...

...

AIの次の目的地:リアルタイムサービス

リアルタイムサービスの波が徐々に私たちの日常生活に浸透するにつれ、コンピューティングインフラストラク...