遠位コールマイクロチャネルを掃引

       フロントページには、マイクロチャネルへの関数呼び出しを掃引します。まず、マイクロチャネル用のブラウザ環境は、組み込みのブラウザは、マイクロチャネルのスイープが一掃それを呼び出すことができます。

       まずマイクロチャネル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を所有している必要があり

  1. 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
  2. 最初のステップは、(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

注意事項

  1. noncestr署名とタイムスタンプがnonceStrとタイムスタンプで同じwx.configでなければなりません。
  2. URLはJSインターフェイスページを呼び出すために、完全なURLで署名する必要があります。
  3. セキュリティ上の理由から、開発者はサーバー側のロジックの署名を実装する必要があります。

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次元コードは、ジャンプページ、またはビジネスロジックである、あなたはそれをカスタマイズすることができます

 

おすすめ

転載: www.cnblogs.com/cr-cool/p/10959974.html