Wi-Fi ハードウェア認証プロトコル インターフェイスの説明


Wi-Fi ハードウェア認証プロトコル インターフェイスの説明


概要

主にハードウェア認証プロトコルが使用されます。ポータル タイプのデバイスの方法が変更され、デバイスが WeChat ID を通じて顧客を識別できるようになり、顧客の携帯電話や PC が迅速かつ簡単に Wi-Fi に接続できるようになりました。

#ビジネスロジック

##Wi-Fi に接続されたモバイル端末 ユーザー接続プロセス

お客様は携帯電話の SSID をクリックしてポータル ページを表示し、ページ上の [WeChat Connect Wi-Fi] ボタンをクリックします。公式アカウントのロゴと名前を表示し、「今すぐ接続」ボタンをクリックしてWiFiに接続を開始します。接続が成功したら、接続成功ページにジャンプし、加盟店の公式アカウントをフォローしてください。


モジュールのタイミング図

画像内のテキストがはっきりと見えない場合は、まず「名前を付けて画像を保存」を使用して画像をローカルに保存し、次に拡大します。ビュー。


PC が Wi-Fi に接続されました

ユーザーが Wi-Fi に接続されましたインターネット プロセス

お客様が PC で SSID を選択した後、ブラウザでポータル ページを開くと、ページ上に Wi-Fi QR コードが表示されます。携帯電話の WeChat を使用して QR コードをスキャンし、携帯電話ページの「確認」ボタンをクリックし、PC を Wi-Fi に接続すると、ブラウザのポータル ページが販売者によって設定された Web ページに自動的にジャンプします。


モジュールのタイミング図

画像内のテキストがはっきりと見えない場合は、まず「名前を付けて画像を保存」を使用して画像をローカルに保存し、それから拡大して表示できます。


#モバイル端末導入プロセス

以下の手順に従って機器の変換を完了し、モバイル端末を使用できるようにしてください。デバイスは WeChat を使用して Wi-Fi に接続します。

#最初のステップ: 店舗 Wi-Fi 情報の取得ポータル型機器を変革するための最初のステップappId、shop_id、ssid、secretkey を含むストア Wi-Fi 情報を取得します。店舗のWi-Fi情報を取得するには、

1.

ページ操作で取得する の2つの方法があります。

WeChat パブリック プラットフォームWeChat Wi-Fi プラグインで、[デバイス管理] -> [デバイスの追加] を開きます。 「WeChat経由でインターネットに接続した後に近距離無線サービスを追加する」→「ポータルタイプのデバイス」を追加すると、追加が成功すると、ストアのWi-Fiパラメータ情報を取得できます。

追加されたデバイスについては、[デバイスの詳細] -> [デバイスの変更情報の表示] でストアの Wi-Fi パラメーター情報を取得することもできます。

2. インターフェイスを呼び出して取得します。

呼び出して "ポータル デバイスの追加"インターフェイスを取得します。

#ステップ 2: モバイル ポータル ページを変換する

接続されているデバイスがモバイル デバイスの場合、ポータル ページで次の WeChat JSAPI を参照して、元の Wi-Fi ポータル ページが WeChat を呼び出すことができるようにします:

<script type="text/javascript"    
src="https://wifi.weixin.qq.com/resources/js/wechatticket/wechatutil.js" ></script>

JSAPI を呼び出して WeChat クライアントをトリガーします:

Wechat_GotoRedirect(
appId,      
extend,     
timestamp, 
sign,       
shop_id,   
authUrl,   
mac,      
ssid );

具体的な例:

Wechat_GotoRedirect(
'wx23fb4aaf04b8491e',  
'demoNew',            
'1441768153341',          
'a355c78bad9be9235d2105d28f8e010c',   
'6747662',  
'http://wifi.weixin.qq.com/assistant/wifigw/auth.xhtml?httpCode=200',       
'aa:aa:aa:aa:aa:aa',     
'2099');

パラメータの説明

#パラメータ必要ですか説明appIdはいMerchant WeChat パブリック プラットフォーム アカウントextend is##authUrl は 認証サーバー URL です。WeChat クライアントは、ユーザーの WeChat ID 情報をこれに送信します。 URL と認証リリースの取得macAndroid デバイスの場合は必須ユーザーの携帯電話の MAC アドレス。形式はコロンで区切られ、文字の長さは 17 で、文字は小文字です。例: 00:1f :7a:ad:5c:a8##ssid

署名計算方法:

sign = MD5(appId + extend + timestamp + shopId + authUrl + mac + ssid + secretkey);

注: ここでのタイムスタンプは、ミリ秒単位の現在のタイムスタンプです。

ステップ 3: インターネット アクセス要求の一時的リリースのサポート

AP/AC が次のことを行っていることを確認してください。はポータル ページにあります。開いた後、ユーザーのインターネット アクセス要求を一時的に解除できます。一時的な解放が成功した場合にのみ、上記の JSAPI を呼び出してユーザー ID 情報と引き換えに WeChat を呼び出し、後続の認証要求が正常に完了し、ネットワークが正常に接続されたことを確認できます。

注: IOS が WeChat を呼び出すとき、ネットワークが利用できない場合、Wi-Fi が切断され、ネットワーク障害が発生するため、AC/AP がインターネット アクセス要求の一時的な解放をサポートしていることを確認してください。

一部の Android デバイスの Web ブラウザでは、WeChat クライアントを自動的に起動できません。FAQ の解決策を参照してください。

ステップ 4: WeChat ID 認証を受け入れて解放する

WeChat クライアントが呼び出されると、自動的にリクエストが送信されます。 authUrl (JSAPI 受信パラメータ) に対してリクエストを開始し、認証に必要なユーザー WeChat ID 情報パラメータ (extend、openId、tid など) を送信します。

WeChat クライアントが authUrl にリクエストを送信する例:

http://www.foo.com/portal/auth.html?extend=xxx&openId=xxx&tid=xxx

パラメータの説明

extend には、開発者が必要とする関連パラメータのコレクションを含めることができます、最終的にはオペレーターの認証 URL に透過的に送信されます。 extend パラメータは英語と数字のみをサポートし、長さは 300 文字を超えてはなりません。
タイムスタンプYesミリ秒単位のタイムスタンプ
signYes リクエスト パラメーターの署名、具体的な計算方法は以下で説明します。
shopId は、 が存在するストアの ID です。 AP デバイスが見つかります。つまり、shop_id
は、のワイヤレス ネットワーク名です。 AP デバイス
ParametersDescription
extend は、上記の WeChat JSAPI を呼び出すときに渡されます。 extend パラメータ
openIdユーザーの WeChat openId
tid はユーザーの暗号化された携帯電話番号です (ネットワーク監督部門による提出にのみ使用されます)

authUrl に対応するバックグラウンド認証サーバーは、これらのパラメーター情報を識別し、AC 認証結果を WeChat クライアントに返すことができる必要があります。WeChat クライアントは、http リターン コードに基づいて、接続が成功したかどうかをユーザーに尋ねます。

http リターン コードが 200 の場合、サービス認証は成功したとみなされ、WeChat クライアントは接続成功ページにジャンプします。ユーザーが「完了」ボタンをクリックすると、マーチャントのホームページにジャンプします。認証サーバーが認証リクエストを転送する必要がある場合は、302 とネクスト ホップ アドレスを返してください。WeChat クライアントは、ネクスト ホップ アドレスへの別のリクエストを開始します。302 ジャンプは 1 回のみサポートされます。200 と 302 以外の場合、または 302 が返されます。回数を超えたコードは認証失敗とみなされ、今度は接続に失敗し、WeChat クライアントは接続失敗ページにジャンプします。

注: WeChat クライアント リクエストの待機時間は 10 秒です。WeChat クライアントがリクエストを送信してから 10 秒以内に、バックグラウンド認証サーバーが AC 認証結果 (http リターン コード) を返すようにしてください。認証URL。 10 秒以上認証結果が返されない場合は、認証失敗とみなされます。

#ステップ 5: QR コードをスキャンしてインターネットに接続します

最初のステップから 4 番目のステップを完了したら、次へ、次の構成を実行して、ポータル デバイスが QR コードをスキャンして Wi-Fi に接続できるようにします。具体的な操作は次のとおりです:

1. ポータル サーバーのジャンプ コンテンツを変更します

認証されていない携帯電話ユーザーがインターネットに接続しようとすると、AC はユーザーの http リクエストをポータル サーバーのポータル ページに転送します。ここで AC はさらに識別する必要があります。http リクエストが WeChat クライアントから送信された場合、 in 2 つの合意されたパラメータ authUrl を入力し、ジャンプ URL に拡張するだけです。

http://www.foo.com/portal/portal.html?authUrl=http%3A%2F%2Fwww.foo.com%2Fportal%2Fauth.html&extend=xxx
ParametersDescription
authUrlつまり、2 番目のステップです。ポータル ページ 入力された authUrl は認証サーバー URL です。WeChat クライアントはユーザーの WeChat ID 情報をこの URL に送信し、認証を取得し、
extend を解放します。上記で呼び出されたWeChat JSAPIの呼び出し時に渡されたextendパラメータがそのまま加盟店ホームページに返されます

2. http リクエストが WeChat クライアントからのものであるかどうかを識別する方法

http パケットのヘッダー構造内の「User-Agent」を解析し、それに含まれるかどうかを判断するだけです。キーワード "micromessenger" (ここでは他の WeChat http リクエストを傍受しないように注意してください。そのため、キーワードを一致させてください。) サンプル コードは次のとおりです:

...
String userAgent = request.getHeader("User-Agent");
if(userAgent.matches(".*micromessenger.*")){
	  response.sendRedirect("http://www.foo.com/portal/portal.html?authUrl=http%3A%2F%2Fwww.foo.com%2Fportal%2Fauth.html&extend=xxx ");			
}
...

WeChat クライアントは、 Portal Server の authUrl はアドレスをジャンプし、パラメータを拡張して接続プロセスの完了を続行します。

3. IOS がポータル ページを自動的にポップアップしないようにする

SSID を切り替えるときに IOS がポータル ページを自動的にポップアップしないようにするには、スニッフィング アドレスを変更してください。 IOS を "http://captive.apple.com/hotspot-detect.html"ホワイトリストに追加します。

4. 素材 QR コードをダウンロード

ポータル サーバーの変換が完了したら、「素材 QR コードを取得する 」を呼び出します。店舗のQRコードをダウンロードして店内に掲示すると、コードを読み取ってWi-Fiに接続できます。


モバイル ポータル ページのサンプル デモ

モバイル ポータル ページを変換するには、サンプル デモを参照してください (JS コードは直接上にあります)ページ (中)

モバイル ブラウザ を使用して次のリンクを開いてください (手動で入力するか、QR コードをスキャンしてリンク アドレスを取得できます):

https://wifi .weixin.qq.com/operator/demoNew.xhtml

WeChat を使用してコードをスキャンする場合は、ボタンをクリックしてください右上隅にある「ブラウザで開く」ページを選択してください。WeChat ブラウザでは直接体験しないでください。


FAQ

1. 一部の Android スマートフォンの Web ブラウザでは、WeChat クライアントを自動的に呼び出すことができません

WeChat for Android バージョン 6.2.5 以降では、手動でクライアントを開いて接続プロセスを続行する機能がすでにサポートされていますが、このプロセスをスムーズに進めるために、開発者は次の点に注意する必要があります。
1.保证微信客户端版本为6.2.5以上的Android版微信;
2.参考示例demo中jsapi的写法,在无法自动跳转微信客户端时弹出提示,让用户手动切换到微信;
3.在portal页面中调用微信jsapi时,需保证AP设备的ssid和手机mac这2个参数真实有效;
4.测试过程请从切换到目标ssid动作开始(例如:原来为3G或4G网络然后手动选择目标ssid,原来为非目标ssid的wifi信号然后手动选择目标ssid,等等)。

2. IOS がポータル ページから WeChat にジャンプした後、電話機がターゲット SSID の下に留まるようにするにはどうすればよいですか?

Wi-Fi が利用可能であることを確認するために、IOS システムはユーザーが SSID を選択した直後にその SSID に切り替えるのではなく、SSID がデフォルトに到達できるかどうかを調べます。パブリック ネットワーク サービスを盗聴できる場合は、実際に ssid への接続が表示されます。ポータルがポップアップするAP環境では、ポータルページをポップアップするために使用され、ポータルページで認証が完了すると、ポータル右上のプロンプトが「キャンセル」から「完了」に変わります。このインターフェースを「完了」状態のままにすると、選択した SSID は切断され、以前の使用可能な接続に戻ります。ただし、このインターフェースを「完了」状態のままにしても、切断されません。

WeChat 認証に合格すると、ポータル インターフェイスが WeChat にジャンプするため、ポータルの右上隅に「完了」ステータスが表示されていることを確認することが前提条件です。開発者は次の点に注意する必要があります:

1.确保弹出portal后,临时放行手机的所有流量;
2.临时放行手机的所有流量后,局部或整体刷新portal页面触发IOS再次进行嗅探;
3.IOS嗅探可以正常触达公网上的预设服务后“取消”变为“完成”;
4.以上动作完成后,再调用跳转微信的JSAPI,继而跳转微信完成认证连接流程。


##PC 側実装プロセスWeChat を使用して接続するには、次の手順に従ってください。 PCのWi-Fiに接続します。

最初のステップ: ストアの Wi-Fi 情報を取得するPC を Wi-Fi に接続する最初のステップ-Fi は、appId、shop_id を含むストア Wi-Fi 情報を取得します。店舗の Wi-Fi 情報を取得するには 2 つの方法があります:

1. ページ操作を取得します

WeChat パブリック プラットフォームで WeChat Wi-Fi を開きます

Fi プラグインは、[デバイス管理] -> [デバイスの追加] で、「インターネットに接続した後の新しい WeChat ベースの近距離無線サービス」 -> 「ポータル タイプ デバイス」を追加します。追加が成功すると、店舗のWi-Fi Fiパラメータ情報を取得できます。

追加したデバイスは、[デバイスの詳細]->[デバイス変更情報の表示]でストア Wi-Fi パラメーター情報を取得することもできます。

2. インターフェイスを通じて取得します。

「Get WiFi ストア リスト」インターフェイスを呼び出して、ストアの ID である shop_id を取得します。デバイスが追加される先。

#ステップ 2: PC ポータル ページを変更する

接続デバイスが PC の場合は、ポータル ページで次の WeChat JSAPI を引用すると、元の Wi-Fi ポータル ページには WeChat を呼び出す機能があります:

<script type="text/javascript"    
src="https://wifi.weixin.qq.com/resources/js/wechatticket/pcauth.js" ></script>

JSAPI を呼び出して QR コードを生成します。具体的なコード例は次のとおりです:

 <script type="text/javascript">
	    JSAPI.auth({
	    	target : document.getElementById('qrcode_zone'),
	        appId : 'wx23fb4aaf04b8491e',
	        shopId : 6747662,
	        extend : 'wechatpc',
	        authUrl : 'http://wximg.qq.com/tmt/wifi-landing-pc/dist/html/index-success.html'
	    });
</script>

パラメータの説明

#パラメータ必要ですか説明ターゲットはいQR コード画像の配置場所appId は、 販売者の WeChat パブリック プラットフォーム アカウントshopId は で、shop_id、デバイスが配置されているストア (WeChat パブリック プラットフォーム ストア) の ID です。 extend はい #extend には、開発者が必要とする関連パラメータ セット 認証サーバー URL です。WeChat クライアントはユーザーの WeChat ID 情報をこの URL に送信し、認証リリースを取得します
を含めることができ、最終的にはオペレータの認証 URL に透過的に送信されます。 extend パラメータは英語と数字のみをサポートし、長さは 300 文字を超えてはなりません。 authUrl


##ステップ 3: PC 側のホワイトリストのリリースをサポート

AP/AC が必要 PC をホワイトリストに登録するポータル ページが jsapi を参照できるようにし、WeChat バックエンドをポーリングして openid と tid を取得できるようにします。

Wi-Fi に接続する WeChat の URL のサポートをホワイトリストに登録してください。URL は:

https://wifi.weixin.qq.com/

で、サポート:

1 です。 :

https://wifi.weixin.qq.com/resources/js/wechatticket/pcauth.js

2. WeChat バックグラウンドをポーリングして、openid と tid を取得します:

https://wifi.weixin.qq.com/cgi-bin/pollpcresult

ステップ 4: インターネット要求を一時的に解放するためのモバイル端末のサポート

モバイル端末の 3 番目のステップを参照してください。実装プロセス モバイル端末でのインターネットアクセス要求の一時解除をサポートします。

#ステップ 5: WeChat ID 認証の受け入れと解放

モバイル端末実装の 4 番目のステップを参照してください。 WeChat の本人確認と解放を受け入れます。

PC ポータル ページのサンプル デモ

PC ポータル ページ (JS コード) を変更するには、サンプル デモを参照してください。ページ内で直接):

https://wifi.weixin.qq.com/operator/demoForPc.xhtml



オフライン認証方法

Wi-Fi 環境では、WeChat バックエンドとの通信のためにユーザー トラフィックを一時的に解放できないため、オフライン認証を使用できます。 WeChat を使用してモバイル デバイスで Wi-Fi に接続するには、次の手順に従ってください。


モジュールのタイミング図

画像内のテキストがはっきりと見えない場合は、まず画像を保存してください。として画像をローカルに保存し、拡大して表示します



#

ステップ 1: 店舗 Wi-Fi 情報の取得

「モバイル端末導入プロセス」を参照してください。最初のステップは、店舗のWi-Fi情報を取得することです。


#ステップ 2: モバイル ポータル ページを変換する #元の Wi-Fi ポータル ページで WeChat クライアントを呼び出す機能があるように、ポータル ページで WeChat をオフラインで呼び出すためのリンクを引用します。リンクの形式は次のとおりです:
 function callWechatBrowser(){
	var appId = getParam('appId');
	var shopId = getParam('shopId');
	var authUrl = getParam('authUrl');
	var extend = getParam('extend');
	var timestamp = getParam('timestamp');
	var sign = getParam('sign');
	var weixinUrl = 'weixin://connectToFreeWifi/?apKey=_p33beta&appId='+appId+'&shopId='+shopId+'&authUrl='+authUrl+'&extend='+extend+'&timestamp='+timestamp+'&sign='+sign;	
	window.location=weixinUrl;
}

パラメータの説明

#パラメータ必要ですか説明appIdはい販売者の WeChat パブリック プラットフォーム アカウントshopId は 、shop_id、デバイスが置かれている店舗の ID です。 (WeChat パブリック プラットフォーム ストア)authUrl は 認証サーバー URL です。WeChat クライアントは、ユーザーの WeChat ID 情報をこのサーバーに送信します。 URLを取得して認証解除を行います。 ##extendextend で、開発者が必要とする関連パラメータ セット
authUrl の値は、次のように URL エンコードされます。 http://192.168.1.1/auth.html?t=abc&s=123
を含めることができ、最終的にはオペレータの認証 URL に透過的に送信されます。 extend パラメータは英語と数字のみをサポートし、長さは 300 文字を超えてはなりません。
タイムスタンプYesミリ秒単位のタイムスタンプ
signYes リクエスト パラメーターの署名。具体的な計算方法については、以下の説明を参照してください。


署名計算方法:

sign = MD5(appId + extend + timestamp + shop_id + authUrl + mac + ssid + secretkey);

注: ここでのタイムスタンプは、ミリ秒単位の現在のタイムスタンプです。 authUrl は、署名時のエンコードされていない URL 形式です。例: http://192.168.1.1/auth.html?t=abc&s=123


ステップ 3: WeChat ID 認証のサポートのリリース

通話後に WeChat クライアントがブロックされるが行われると、認証リクエストが authUrl に対して自動的に開始され、extend パラメータが送信されます。ユーザーの WeChat ID (tid パラメータ) は販売者のホームページを通じて渡されるため、開発者は販売者のホームページのバックグラウンドで取得することに注意する必要があります。 authUrl にリクエストを送信する WeChat クライアントの例:

http://www.foo.com/portal/auth.html?extend=xxx

パラメータの説明

ParametersDescription
extend は、WeChat JSAPI を呼び出すときに extend パラメータの上に渡されます。ここでは、そのままマーチャントのホームページに返されます。

authUrl に対応するバックグラウンド認証サーバーは、これらのパラメータ情報を識別して、AC 認証結果をマーチャントに返すことができる必要があります。 WeChat クライアント WeChat クライアントは、http 戻りコードに基づいて、接続が成功したかどうかをユーザーに確認します。

http リターン コードが 200 の場合、サービス認証は成功したとみなされ、WeChat クライアントは接続成功ページにジャンプします。ユーザーが「完了」ボタンをクリックすると、マーチャントのホームページにジャンプします。認証サーバーが認証リクエストを転送する必要がある場合は、302 とネクスト ホップ アドレスを返してください。WeChat クライアントは、ネクスト ホップ アドレスへの別のリクエストを開始します。302 ジャンプは 1 回のみサポートされます。200 と 302 以外の場合、または 302 が返されます。回数を超えたコードは認証失敗とみなされ、今度は接続に失敗し、WeChat クライアントは接続失敗ページにジャンプします。

注: WeChat クライアント リクエストの待機時間は 10 秒です。WeChat クライアントがリクエストを送信してから 10 秒以内に、バックグラウンド認証サーバーが AC 認証結果 (http リターン コード) を返すようにしてください。認証URL。 10 秒以上認証結果が返されない場合は、認証失敗とみなされます。