ホームページ  >  記事  >  ウェブフロントエンド  >  WeChat js が署名を取得 Signature_html/css_WEB-ITnose

WeChat js が署名を取得 Signature_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:48:211490ブラウズ

サーバー側:

1 WeChat js accessToken を取得します

注: access_token は公式アカウントのグローバルに固有のチケットであり、公式アカウントは各インターフェイスを呼び出すときに access_token を使用する必要があります。
開発者はそれを適切に保存する必要があります。 access_token ストレージ用に少なくとも 512 文字のスペースを予約する必要があります。
access_token の有効期間は現在 2 時間であり、定期的に更新する必要があります。
取得を繰り返すと、最後の access_token が無効になります。

access_token の現在の有効期間は、返されたexpire_in を通じて伝えられます。これは現在 7200 秒以内の値です。
中央制御サーバーは、この有効時間に従って、事前に新しい access_token を更新する必要があります。

取得方法:
1) 公式アカウントは AppID と AppSecret を使用してこのインターフェイスを呼び出し、access_token を取得します。
AppID と AppSecret は、WeChat パブリック プラットフォームの公式 Web サイトの開発者センター ページから取得できます
(開発者になっている必要があり、アカウントに異常がない必要があります)

2) .http リクエスト メソッド:
GET: https ://api.weixin .qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
3) .Return 指示: 通常の状況では、WeChat は次の JSON データ パケットを公開アカウントに返します:
{"access_token":"ACCESS_TOKEN ","expires_in":7200}

4) 取得した accessToken 値をキャッシュに置き、保存時間は 7200 秒未満です

2 jsapi_ticket を取得します


注: jsapi_ticket は一時的なものですWeChat JS インターフェイスを呼び出すためにパブリック アカウントによって使用されるチケット。
通常の状況では、jsapi_ticket の有効期間は 7200 秒で、access_token を通じて取得されます。

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

3) 戻り手順: 次の JSON が正常に返されます:

{
"errcode":0,
"errmsg":"ok",
"ticket " :"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
"expires_in":7200
}
4) 取得した jsapi_ticket 値をキャッシュに置き、保存時間は 7,200 秒未満です

3 署名を生成します


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

2) string1 に sha1 で署名し、取得します。署名: f4d90daf4b3bca3078ab155816175ba34c443a7b

Apache の commons-codec ツールキットを使用します。DigestUtils クラスには、直接呼び出すことができる SHA 暗号化メソッドがあります...


3) wx.config インターフェイスに必要なすべてのパラメータ値をキャッシュに入れます。署名、ノンセスト、タイムスタンプ)、時間は 7200 秒未満です。

注:

1) 署名に使用される noncestr およびタイムスタンプは、wx.config の nonceStr およびタイムスタンプと同じである必要があります。
2) 署名に使用される URL は、JS インターフェースを呼び出すページの完全な URL である必要があります。

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


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