Wi-Fi 하드웨어 인증 프로토콜 인터페이스 설명


Wi-Fi 하드웨어 인증 프로토콜 인터페이스 설명


개요# 🎜🎜#

하드웨어 인증 프로토콜은 주로 포털형 장치의 인증 방식을 수정하는 데 사용되며, 장치에서 고객에게 WeChat 신원을 식별할 수 있도록 하여 고객의 휴대폰과 PC를 빠르고 쉽게 연결할 수 있도록 합니다. Wi-Fi에.

비즈니스 로직

모바일 Wi-Fi 연결

사용자 연결 프로세스

고객이 모바일에서 ssid를 클릭한 후 전화 포털 페이지를 호출하고, 페이지에서 "WeChat Connect Wi-Fi" 버튼을 클릭하여 연결 페이지로 들어가고, 공식 계정 로고와 이름을 표시하고, 연결 후 "지금 연결" 버튼을 클릭하여 WiFi 연결을 시작합니다. 성공하면 연결 성공 페이지로 이동하고 Merchant 공식 계정을 팔로우하세요.


모듈 타이밍 다이어그램

그림의 텍스트가 선명하게 보이지 않으면 먼저 "다른 이름으로 그림 저장"을 통해 그림을 로컬에 저장한 다음 확대하여 볼 수 있습니다.


Wi-Fi에 연결된 PC

사용자 연결 프로세스

고객이 PC에서 SSID를 선택한 후 브라우저에서 포털 페이지를 열고 Wi-Fi 2D 페이지 코드에 표시가 표시됩니다. 휴대폰에서 WeChat을 사용하여 QR 코드를 스캔하고 휴대폰 페이지에서 "확인" 버튼을 클릭한 후 PC를 Wi-Fi에 연결하면 브라우저의 포털 페이지가 판매자가 구성한 웹 페이지로 자동으로 이동합니다.


모듈 타이밍 다이어그램

사진 속 텍스트가 선명하게 보이지 않으면 먼저 "다른 이름으로 이미지 저장"을 통해 사진을 로컬 컴퓨터에 저장한 후 확대해서 볼 수 있습니다. #ㅋㅋㅋ 아래 단계에 따라 장치 수정을 완료하고 모바일 장치에서 WeChat을 사용하여 Wi-Fi에 연결할 수 있도록 허용하세요.


1단계: 매장 Wi-Fi 정보 가져오기

포털 장비 변환의 첫 번째 단계는 appId, shop_id, ssid 및 secretkey를 포함한 매장 Wi-Fi 정보를 얻는 것입니다. 매장 Wi-Fi 정보를 얻는 방법은 두 가지가 있습니다:

1 페이지 작업을 통해 얻음

WeChat 공개 플랫폼WeChat Wi-Fi 플러그인에서 [기기 관리]->[기기 추가]를 열고 "인터넷에 연결하는 WeChat 방법 추가 + 근거리 서비스 이후 인터넷 연결'->'포털형 장치'를 성공적으로 추가한 후 매장 Wi-Fi 매개변수 정보를 얻을 수 있습니다.

추가된 장치는 [장치 세부정보]->[장치 수정 정보 보기]에서 매장 Wi-Fi 매개변수 정보를 얻을 수도 있습니다.

2. 획득하려면 인터페이스를 호출하고

획득하려면 "포털 장치 추가"인터페이스를 호출하세요.

2단계: 모바일 포털 페이지 변환

연결된 장치가 모바일 장치인 경우 포털 페이지에서 다음 WeChat JSAPI를 인용하여 원래 Wi-Fi 포털 페이지에서 WeChat Abilities를 호출할 수 있도록 합니다. :

<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');

매개변수 설명

매장 아이디 AP 장치가 있습니다. 즉, shop_id 인증 서버 URL입니다. WeChat 클라이언트는 사용자의 WeChat 신원 정보를 이 URL에 제출하고 인증을 획득한 후사용자의 휴대폰 mac 주소, 형식은 콜론으로 구분되고 문자 길이는 17자이며 문자는 소문자입니다. 예: 00:1f:7a:ad:5c:a8AP 장치
매개변수 가 필수인가요? 설명
appId 판매자 WeChat 공개 플랫폼 계정
extend extend 포함 가능 관련 매개변수 모음 넣기 개발자에게 필요한 , 이는 결국 운영자의 인증 URL로 투명하게 전송됩니다. 확장 매개변수는 영어와 숫자만 지원하며 길이는 300자를 초과할 수 없습니다.ㅋㅋㅋ
authUrl
mac Android 기기 필요
ssid
의 무선 네트워크 이름입니다.

서명 계산 방법:

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

참고: 여기의 타임스탬프는 밀리초 단위의 현재 타임스탬프입니다.

3단계: 인터넷 액세스 요청 임시 해제 지원

포털 페이지가 열린 후 AP/AC가 사용자의 인터넷 액세스 요청을 일시적으로 해제할 수 있는지 확인하세요. 임시 릴리스가 성공한 경우에만 위에서 언급한 JSAPI를 호출하여 WeChat을 호출하고 사용자 신원 정보를 교환하여 후속 인증 요청이 성공적으로 완료되고 네트워크가 성공적으로 연결되었는지 확인할 수 있습니다.

참고: IOS에서 WeChat을 호출할 때 네트워크를 사용할 수 없으면 Wi-Fi가 끊어져 네트워크 연결이 실패하므로 AC/AP가 인터넷 액세스 요청의 임시 해제를 지원하는지 확인하세요.

일부 Android 기기의 웹 브라우저에서는 WeChat 클라이언트를 자동으로 시작할 수 없습니다. FAQ의 해결 방법을 참조하세요.

4단계: WeChat 신원 인증 승인 및 해제

WeChat 클라이언트가 호출된 후 자동으로 authUrl(JSAPI의 수신 매개변수)에 대한 요청을 시작하고 사용자에 필요한 WeChat 신원 정보 매개변수를 제출합니다. 확장, openId, tid를 포함한 인증.

authUrl에 요청을 보내는 WeChat 클라이언트의 예:

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

매개변수 설명

매개변수 설명
extend는 위 WeChat JSAPI 호출 시 전달된 확장 매개변수로, 그대로 가맹점 홈페이지로 반환됩니다.
openId사용자의 WeChat openId
tid는 암호화된 사용자 휴대폰 번호입니다(네트워크 감독 부서의 파일링에만 사용됨)

authUrl에 해당하는 백그라운드 인증 서버는 이러한 매개변수 정보를 식별하고 AC 인증 결과를 WeChat 클라이언트에 반환할 수 있어야 합니다. WeChat 클라이언트는 http 반환 코드를 기반으로 사용자에게 연결 성공 여부를 묻는 메시지를 표시합니다.

http 반환 코드가 200이면 서비스 인증에 성공한 것으로 간주됩니다. 사용자가 "완료" 버튼을 클릭하면 판매자 홈페이지로 이동합니다. 인증 서버는 인증 요청을 전송해야 합니다. 302와 다음 홉 주소를 반환하세요. WeChat 클라이언트는 다음 홉 주소로 다른 요청을 시작하며 302 점프는 200 및 302 또는 302 반환이 아닌 경우에만 한 번만 지원됩니다. 코드가 횟수를 초과하면 인증 실패로 간주되며, 이 연결은 네트워크에 실패하고 WeChat 클라이언트는 연결 실패 페이지로 이동합니다.

참고: WeChat 클라이언트 요청 대기 시간은 10초입니다. WeChat 클라이언트가 authUrl에 요청을 보낸 후 10초 이내에 백그라운드 인증 서버가 AC 인증 결과, 즉 http 반환 코드를 반환하는지 확인하세요. 10초 이상 인증 결과를 반환하지 않으면 인증 실패로 간주됩니다.

5단계: QR 코드를 스캔하여 인터넷에 연결

1~4단계를 완료한 후 다음 구성을 수행하여 포털 장치에서 QR 코드를 스캔하여 Wi-Fi에 연결할 수 있도록 합니다. 구체적인 작업은 다음과 같습니다.

1. 포털 서버 점프 콘텐츠 수정

인증되지 않은 휴대폰 사용자가 인터넷에 연결을 시도하면 AC는 사용자의 http 요청을 포털 서버의 포털 페이지로 전달합니다. 여기서 AC는 http 요청이 WeChat 클라이언트에서 오는지 추가로 식별해야 합니다. 그런 다음 합의된 두 매개변수 authUrl을 가져와서 점프 URL을 확장하면 됩니다.

http://www.foo.com/portal/portal.html?authUrl=http%3A%2F%2Fwww.foo.com%2Fportal%2Fauth.html&extend=xxx
2단계 포털 페이지에 입력된 authUrl은 인증 서버 URL입니다. WeChat 클라이언트는 사용자의 WeChat 신원 정보를 이 URL에 제출하고 인증 해제를 받습니다#🎜 🎜 #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 클라이언트는 authUrl을 구문 분석하고 Portal Server 점프 주소의 매개 변수를 확장한 후 연결 프로세스를 계속 완료합니다.

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. 장치가 WeChat 클라이언트를 자동으로 호출할 수 없습니다.

Android 버전의 WeChat 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에 연결하는 첫 번째 단계는 appId, shop_id를 포함한 매장 Wi-Fi 정보를 얻는 것입니다. 매장 Wi-Fi 정보를 얻는 방법은 두 가지가 있습니다.

1. 페이지 조작을 통해 얻습니다.

WeChat 공개 플랫폼의 [기기 관리]->[에서 WeChat Wi-Fi 플러그인을 엽니다. 장치 추가] 에 "인터넷 연결 + 근거리 서비스 연결을 위한 WeChat 방법 추가" -> "포털형 장치"를 추가하면 매장 Wi-Fi 매개변수 정보를 얻을 수 있습니다.

추가된 장치는 [장치 세부 정보]->[장치 수정 정보 보기]에서 매장 Wi-Fi 매개 변수 정보를 얻을 수도 있습니다.

2. 인터페이스를 통해 shop_id를 얻습니다.

기기가 추가될 스토어의 ID인 "WiFi 스토어 목록 가져오기"인터페이스를 호출합니다.

2단계: PC 포털 페이지 수정

연결된 기기가 PC인 경우 원본 Wi-Fi 포털 페이지에서 WeChat을 호출할 수 있도록 포털 페이지에서 다음 WeChat JSAPI를 인용하세요. 기능:

<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>

매개변수 설명

ParametersDescription
authUrl# 🎜 🎜#
은 위의 WeChat JSAPI 호출 시 전달된 확장 매개변수입니다. 여기서는 그대로 가맹점 홈페이지로 반환됩니다.
매개변수 가 필수인가요? 설명
target QR 코드 이미지 배치 위치
appId 판매자입니다. WeChat 공개 플랫폼 계정
shopId 즉, shop_id는 기기가 위치한 스토어(WeChat 퍼블릭 플랫폼 스토어)의 ID
extendextend에는 개발자에게 필요한 관련 매개변수 모음이 포함될 수 있습니다, 이는 결국 운영자의 인증 URL로 투명하게 전송됩니다. 확장 매개변수는 영어와 숫자만 지원하며 길이는 300자를 초과할 수 없습니다.
authUrl 인증 서버 URL입니다. WeChat 클라이언트는 사용자의 WeChat 신원 정보를 이 URL에 제출하고 인증을 받고 해제됩니다


3단계: PC에서 화이트리스트 릴리스 지원

AP/AC는 jsapi를 참조하는 포털 페이지, WeChat 배경 폴링 및 openid 및 tid 획득을 지원하기 위해 PC에서 릴리스를 화이트리스트에 추가해야 합니다.

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단계: 모바일 측에서 인터넷 액세스 요청의 임시 해제 지원

모바일 측에서 인터넷 액세스 요청의 임시 해제를 지원하려면 모바일 측 구현 프로세스의 세 번째 단계를 참조하세요. .

5단계: WeChat 신원 인증 승인 및 해제

WeChat 신원 인증 및 해제를 승인하려면 모바일 구현 프로세스의 네 번째 단계를 참조하세요.

PC 포털 페이지 예제 데모

PC 포털 페이지를 수정하려면 예제 데모를 참조하세요(JS 코드는 페이지에 직접 있음):

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


# 🎜🎜#

오프라인 인증 방법

Wi-Fi 환경에서는 일시적으로 사용자 트래픽을 해제할 수 없습니다. WeChat 백엔드에서는 오프라인 인증을 사용할 수 있습니다. WeChat을 사용하여 모바일 장치에서 Wi-Fi에 연결하려면 아래 단계를 따르십시오.


모듈 타이밍 다이어그램

그림의 텍스트가 선명하게 보이려면 먼저 "다른 이름으로 이미지 저장"을 통해 이미지를 로컬에 저장한 다음 확대하여 볼 수 있습니다


#🎜 🎜#

1단계: 매장 Wi-Fi 정보 가져오기

제발 매장의 Wi-Fi 정보를 얻으려면 모바일 구현 프로세스 1단계를 참조하세요.


2단계: 움직임 변화 포털 페이지

포털 페이지에서 오프라인으로 WeChat을 호출하는 링크를 인용하여 원래 Wi-Fi 포털 페이지에서 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, 여기서 기기는 Store ID입니다(WeChat 공개 플랫폼 스토어 )
authUrl 인증 서버 URL입니다. WeChat 클라이언트는 사용자의 WeChat 신원 정보를 이 URL에 제출하고 인증을 획득합니다. authUrl의 값은 다음과 같이 Url로 인코딩됩니다. 내부에 개발자가 필요로 하는 관련 매개변수 세트를 넣으면 최종적으로 운영자의 인증 URL로 투명하게 전송됩니다. 확장 매개변수는 영어와 숫자만 지원하며 길이는 300자를 초과할 수 없습니다.
timestamp 밀리초를 사용하는 타임스탬프입니다.
sign 요청 매개변수 서명입니다. 구체적인 계산 방법은 아래에 설명되어 있습니다


서명 계산 방법:

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 신원 인증 릴리스 지원# 🎜🎜 #WeChat 클라이언트가 호출된 후 자동으로 authUrl에 대한 인증 요청을 시작하고 확장 매개변수를 제출합니다. 사용자의 WeChat 신원(tid 매개변수)은 판매자 홈페이지를 통해 전달됩니다. 개발자는 판매자 홈페이지의 백그라운드에서 이를 획득하는 데 주의해야 합니다. authUrl에 요청을 보내는 WeChat 클라이언트의 예:

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

매개변수 설명

http 반환 코드가 200이면 서비스 인증에 성공한 것으로 간주됩니다. 사용자가 "완료" 버튼을 클릭하면 판매자 홈페이지로 이동합니다. 인증 서버는 인증 요청을 전송해야 합니다. 302와 다음 홉 주소를 반환하세요. WeChat 클라이언트는 다음 홉 주소로 다른 요청을 시작하며 302 점프는 200 및 302 또는 302 반환이 아닌 경우에만 한 번만 지원됩니다. 코드가 횟수를 초과하면 인증 실패로 간주되며, 이 연결은 네트워크에 실패하고 WeChat 클라이언트는 연결 실패 페이지로 이동합니다.
매개변수 설명
extend는 위 WeChat JSAPI 호출 시 전달된 확장 매개변수로, authUrl에 해당하는 백그라운드 인증 서버가 그대로 반환됩니다. 이러한 매개변수 정보를 식별하고 AC 인증 결과를 WeChat 클라이언트에 반환합니다. WeChat 클라이언트는 http 반환 코드를 기반으로 연결 성공 여부를 사용자에게 묻습니다.
참고: WeChat 클라이언트 요청 대기 시간은 10초입니다. WeChat 클라이언트가 authUrl에 요청을 보낸 후 10초 이내에 백그라운드 인증 서버가 AC 인증 결과, 즉 http 반환 코드를 반환하는지 확인하세요. 10초 이상 인증 결과를 반환하지 않으면 인증 실패로 간주됩니다.