フロントページには、マイクロチャネルへの関数呼び出しを掃引します。。。まず、マイクロチャネル用のブラウザ環境は、組み込みのブラウザは、マイクロチャネルのスイープが一掃それを呼び出すことができます。
まずマイクロチャネルJSを参照する必要があります。<script SRC = "https://res.wx.qq.com/open/js/jweixin-1.2.0.js"> </ SCRIPT>
< ヘッド> < メタのcharset = "UTF-8" /> < タイトル>扫描二维码</ タイトル> < メタ名= "ビューポート" コンテンツ= "幅=デバイス幅、初期スケール= 1、最小スケール= 1、最大規模= 1、ユーザースケーラブル=はい" /> < スクリプトSRC = "〜/ JS / jquery1.7.2.js" > </ スクリプト> < スクリプトSRC =" HTTPS://res.wx。 qq.com/open/js/jweixin-1.2.0.js」> </ スクリプト> </ ヘッド>
マイクロ手紙JSは、JSをロードするとき、我々はwx.config構成を設定する必要があるということです
< スクリプト> $(ドキュメント).ready(関数(){ wx.config({ デバッグ:偽、// すべての通話が着信パラメータを表示するために、クライアントのうち、APIの戻り値を警告します、デバッグモードをオンにしますあなたは、PC側を開くことができますログをパラメータ情報を再生されます、パソコンときにのみ印刷されます。 AppIDを:「ViewBag.AppID @は」、// 公共の固有の識別番号、必要な タイムスタンプ:ViewBag.timestamp @、/ / 必要な、署名タイムスタンプを生成する<%= Html.Encode(ViewDataを[ "タイムスタンプ"])%> nonceStr:' @ ViewBag.nonceStr ' 、// 署名ランダム列生成、必要な 署名:' @ViewBagを。署名"、// 必要な署名 jsApiList:[ ' scanQRCode ' ] // 必要な、JSのみ呼を掃引インターフェイスのリストを使用する必要がある );} }); </ スクリプト>
タイムスタンプについての講演、nonceStr、これら三つのパラメータの署名は、どのように取得します。。
タイムスタンプ:ライン上の現在のタイムスタンプに直接スタンプ。注意:これは、対応するタイムスタンプと署名され、同じ時間で、あなたは再びdatetime.nowかかったタイムスタンプdatetime.now、署名(シグネチャ)を使用することはできません。署名は、エラーが発生します。
nonceStr:自己定義されたアクションの文字列が生成された署名
署名:タイムスタンプを生成するために、一定の規則に従って、マイクロチャネルの署名、nonceStr:マイクロチャネルルール 付録1において、以下の説明では、マイクロチャネル開発以下の文書を参照します。
JS-SDKの使用権の署名アルゴリズム
jsapi_ticket
私たちは、JSインターフェイスのために呼び出すために、一時的な法案のエンタープライズマイクロチャネル番号をjsapi_ticket、署名を生成する前にjsapi_ticketを見なければなりません。通常の状況下で、7200秒間有効jsapi_ticket access_tokenはを介して取得します。API呼び出しの数がjsapi_ticket得るために非常に限られ、頻繁に更新さjsapi_ticket API呼び出しが彼らのビジネスの限られた影響につながる、開発者は、サービスのグローバル・キャッシュ・jsapi_ticketを所有している必要があり。
- access_tokenは、次のドキュメントを参照してください(7200秒間有効で、そのグローバルサービスでキャッシュをaccess_tokenは必要があり、開発者):http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%BB%E5 %8A%A8%E8%B0の %83%E7%94%A8
- 最初のステップは、(jsapi_ticket要求するHTTP GET方法を使用してaccess_tokenは取得するには、開発者が自分のグローバルサービスでjsapi_ticketをキャッシュしなければならない7200秒間有効を):https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket? access_tokenは= ACCESS_TOKE
首尾よく以下のJSONが返されました:
{ "ERRCODE":0、 "ERRMSG": "OK"、 "チケット": "bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA"、 "expires_in":7200 }
jsapi_ticketを取得した後、あなたはJS-SDKが権限を検証し、署名を生成することができます。
署名アルゴリズム
次のように署名生成規則は、次のとおりフィールド参加署名がnoncestr(ランダムな文字列)、有効jsapi_ticket、タイムスタンプ(タイムスタンプ)、URLは、(現在のページのURLを、以降#を含みません)。すべてのパラメータは、昇順(辞書式)ASCIIコードフィールド名、ログインする後のURLの形式を使用して、値の対(すなわち、KEY1 =値1&KEY2 =値2 ...)は、文字列文字列1にアセンブル。すべてのパラメータ名は小文字であることに留意されたいです。文字列1を作るためにSHA1の暗号化、フィールド名とフィールド値は元の値を採用している、いないURLを脱出しました。
その署名= SHA1(文字列1)。例
noncestr = Wm3WZYTPz0wzccnW jsapi_ticket = sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-SL-HhTdfl2fzFy1AOcHKP7qg タイムスタンプ= 1414587457 URL = http://mp.weixin.qq.com
ステップ1.文字列1列は、鍵スプライシングのURLの形式を使用して(すなわち、... KEY1 =値1&KEY2 =値2)の後に昇順(辞書)内のすべてのASCIIコードのフィールド名のパラメータを締結します。
jsapi_ticket = sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-SL-HhTdfl2fzFy1AOcHKP7qg&noncestr = Wm3WZYTPz0wzccnW&タイムスタンプ= 1414587457&URL = http://mp.weixin.qq.com
ステップ2 SHA1サインstring1が、署名を取得します:
0f9de62fce790f9a083d5c99e95740ceb90c27ed
注意事項
- noncestr署名とタイムスタンプがnonceStrとタイムスタンプで同じwx.configでなければなりません。
- URLはJSインターフェイスページを呼び出すために、完全なURLで署名する必要があります。
- セキュリティ上の理由から、開発者はサーバー側のロジックの署名を実装する必要があります。
MVCのためのテストフレームワークは、私自身のHTMLを置きます:
@ { ViewBag.Title = "WxTest"。 } <!DOCTYPE HTML > < HTML LANG = "EN" > < 頭> < メタ文字コード= "UTF-8" /> < タイトル>扫描二维码</ タイトル> < メタ名= "ビューポート" コンテンツ= "幅=、デバイスに幅、初期規模= 1、最小規模= 1、最大規模= 1、ユーザースケーラブル=はい」 /> < スクリプトSRC = "〜/ JS / jquery1.7.2.js" > </ スクリプト> = "https://res.wx.qq.com/open/js/jweixin-1.2.0.js" > </ スクリプト> </ ヘッド> < 身体> < INPUTのタイプ= "ボタン" クラス= "テスト" 値= "マイクロスイープ文字" /> </ ボディ> </ HTML > < スクリプト> $(ドキュメント).ready(関数(){ wx.config({ デバッグ:falseに、// デバッグモードをオンにし、すべてのコールAPIの戻り値は、ログをパラメータ情報を再生されます、ときにのみ、PC印刷されます、クライアントが入ってくるパラメータを参照して、出てきた、あなたはPC側を開くことができます警告します。 APPID:" @ ViewBag.AppID' // 必要な公衆識別番号一意 のタイムスタンプ:ViewBag.timestamp @、@ 必要な、署名タイムスタンプを生成する<%= Html.Encode(ViewDataを[ "タイムスタンプ"])%> nonceStr:' @ViewBag .nonceStrは「// 必要な、署名のランダムな文字列を生成 署名:」@のViewBag.signature 「// 必要な署名 jsApiList:[ 」scanQRCode " ] // 必要を、ここでしか、インターフェースのJSのリストを使用する必要がありますコールする必要性を掃引 )}; $(" .TEST " )。(クリック機能(){ したUAを = Navigator.userAgent.toLowerCase(); VAR isWeixin = ua.indexOf(' micromessenger ' )==! - 1。; IF (!IsWeixin){ アラート(' マイクロチャネルとオープン接続、掃引使用するために' )と、 } wx.scanQRCode({ needResult:1 、// デフォルトは、マイクロチャネルによりスキャン結果を処理し、直接リターンスキャン結果を0 ScanType:「QRコード」、] // もしスキャン二次元コードを指定することができるが、一次元コードです、両方が持っているデフォルトの 成功を:関数(RES){ // スキャンコードは、指定されたページへの二次元コードジャンプ成功した(res.resultStrスキャンコードが結果に対して返さ) // LOCATION.HREF = res.resultStrと、 VAR スキャン= res.resultStr; アラート(SCAN ); }、 エラー:関数(RES){ IF (res.errMsg.indexOf(' function_not_exist ' )> 0 ){ アラート(' 現在のバージョンが低すぎると、アップグレードしてください' ); } } );} }); }); </ スクリプト>
決定ブラウザ環境:
navigator.userAgent.toLowerCase UA = VAR()
!= VAR isWeixin ua.indexOf( 'micromessenger')== -1;
IF(!isWeixin){
アラート( 'マイクロチャネルとオープン接続、掃引使用するために' );
}
携帯電話のマイクロ文字で開いた後:
エフェクトを使用してコードをスキャンし、効果をクリックします。
飼料は、2次元コードを生成します。
スキャン後:
それに情報を取得するためにOK次元コードは、ジャンプページ、またはビジネスロジックである、あなたはそれをカスタマイズすることができます