<!DOCTYPE html>
<html>
<head>
<!--meta charset="utf-8"-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
	form  { display: table;      }
	p     { display: table-row;  }
	label { display: table-cell; }
	input { display: table-cell; }
	h1{ color:red;}
	h2{ color:red;}
</style>
<!-- <title>Onenet插件测试页面</title> -->

<!-- <h1>重要提示:</h1>
<h2>请不要直接在本地打开onenettest.html进行测试,这样会导致调用onenethelper.js的接口失败</h2>
<h2>一定要将demo目录下的文件,放置到web服务器中,通过浏览器访问的方式进行测试。</h2>
<h2>各个接口的详细说明,请务必参考《【非密】卫士通安全网关V4.0接口开发手册.pdf》</h2> -->


<!-- (1) 可选 , 针对IE浏览器 申明引用ActiveX 对象(如果业务系统不需要支持IE浏览器,可以不引用ActiveX对象) -->
<object id="AuthClientCtrl" classid="clsid:C966EBD9-49E9-4E9C-B854-270861C58382" width="0" height="0"></object> 
<!-- 可选 , 针对奇安信浏览器 引用plugin 对象 --> 
<object id="plugin" type="application/onenet-plugin" width="0" height="0"></object>
<!-- 可选 , 针对老版本IE浏览器 兼容模式不支持json的情况下,引用json2.js,解决json 解析问题。(如果业务系统不需要支持IE浏览器,可以不引用) -->
<script type="text/javascript" src="json2.js"></script> 
<!-- (2)引入onenethelper浏览器插件的js文件,总共四个文件 -->

<script type="text/javascript" src="onenethelper.webext.js"></script>
<script type="text/javascript" src="onenethelper.np.js"></script> 
<script type="text/javascript" src="onenethelper.ie.js"></script>  
<script type="text/javascript" src="onenethelper.js"></script>   

</head>
 
<body>
<script src="./axios.min.js"></script>
<script>
//(3) 初始化onenethelper插件
onenetHelperInit.Init();

//(4) 判断onenethelper插件是否可用
function IsAddonAvailable()
{
	if(oneNetHelper.IsAddonAvailable())
	{
		form1.T01.value = "true";
	}
	else
	{	
		alert("请先安装插件!")
//(5) 当onenethelper插件不可用时,调用通知接口加载插件
		oneNetHelper.AddonAvailableNotify(AddonAvailableCb);
	}
}

function AddonAvailableCb(ob)
{  
	form1.T01.value=ob.addon;
}


function ClearAddonStatusButton()
{
	form1.T01.value = "";
}

//(6)以下为具体的业务调用。
function GetUserInfoCb(ob)
{
	//console.log('GetUserInfoCb return :' + JSON.stringify(ob));
	form1.T6.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T1.value=ob.authresult;
		form1.T2.value=ob.userid;
	    form1.T3.value=ob.username;
		form1.T4.value=ob.certuserid;
		form1.T5.value=ob.certusername;
		form1.T7.value="成功";
	}
	else
	{
		form1.T7.value=ob.errinfo;
	}	
}

function GetUserInfoClear()
{
	form1.T1.value="";
	form1.T2.value="";
    form1.T3.value="";
	form1.T4.value="";
    form1.T5.value="";
	form1.T6.value="";
	form1.T7.value="";
}

function GetUserInfo()
{
	if(form1.T01.value == "false" || form1.T01.value == 0)
	{
		alert("请先安装插件!")
	}
	oneNetHelper.GetUserInfo(GetUserInfoCb);
}

function GetSignAndTokenCb(ob)
{
	//console.log('GetSignAndTokenCb return:' + JSON.stringify(ob));
	form1.T10.value=ob.ret;
	if(ob.ret == 1)
	{
		console.log(ob.signandtoken,'组合令牌')
		form1.T9.value = ob.signandtoken;//获取组合令牌数据
		form1.T11.value="成功";
		axios({
						method: 'post', //
						url:' http://127.0.0.1:6006/webservice/verifyIdentityTicket ', // 配制api
						data: { // 配制参数
							challenge: form1.T8.value,//随机挑战数
							identityTicket:form1.T9.value,//组合令牌数据
							appServerID:'0'//服务器ID

						},
						headers: {

						}
					}).then(res => {
						if(res.expiresIn==7200) {

						}
					})
	}
	else
	{
		form1.T11.value=ob.errinfo;
	}	
}

function GetSignAndTokenClear()
{
	//form1.T8.value="";
	form1.T9.value="";
    form1.T10.value="";
	form1.T11.value="";
}

function GetSignAndToken()
{
	if(form1.T01.value == "false" || form1.T01.value == 0)
	{
		alert("请先安装插件!")
	}
	if (form1.T8.value == "")
	{
		alert("请输入随机数");
	}
	else
	{
		axios({
                    method: 'post', //
                    url:' http://127.0.0.1:6006/webservice/generatorchallenge', // 配制api
                    data: { // 配制参数

                    },
                    headers: {

                    }
                  }).then(res => {
					if(res.data.code ==0)
					console.log(res.data.msg,'随机挑战数')
                    form1.T8.value = res.data.msg//获取随机挑战数
					oneNetHelper.GetSignAndToken(form1.T8.value, GetSignAndTokenCb);
                  })
		
					
	}
}


function GetUserCertInfoCb(ob)
{
	//console.log('GetUserCertInfoCb  return :' + JSON.stringify(ob));
	form1.T37.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T39.value=ob.DNStringAll;
		form1.T21.value=ob.UserName;
		form1.T22.value=ob.UserID;
	    form1.T23.value=ob.DNCode;
		form1.T24.value=ob.DisName;
		form1.T25.value=ob.UniqueId;
		form1.T26.value=ob.IssuerDisName;
		form1.T27.value=ob.CertSerial;
		form1.T28.value=ob.EMail;
	    form1.T29.value=ob.Org;
		form1.T30.value=ob.OrgUnit;
		form1.T31.value=ob.City;
		form1.T32.value=ob.State;
	    form1.T33.value=ob.Descption;
		form1.T34.value=ob.Version;
		form1.T35.value=ob.BeginTime;
		form1.T36.value=ob.EndTime;
		form1.T38.value="成功";
	}
	else
	{
		form1.T38.value=ob.errinfo;
	}	
}

function GetUserCertInfoClear()
{
	form1.T21.value="";
	form1.T22.value="";
    form1.T23.value="";
	form1.T24.value="";
    form1.T25.value="";
	form1.T26.value="";
	form1.T27.value="";
	form1.T28.value="";
	form1.T29.value="";
    form1.T30.value="";
	form1.T31.value="";
    form1.T32.value="";
	form1.T33.value="";
	form1.T34.value="";
	form1.T35.value="";
	form1.T36.value="";
	form1.T37.value="";
	form1.T38.value="";
	form1.T39.value="";
}

function GetUserCertInfo()
{
	if(form1.T01.value == "false" || form1.T01.value == 0)
	{
		alert("请先安装插件!")
	}
	oneNetHelper.GetUserCertInfo(GetUserCertInfoCb);
}

//获取统一认证Token的应用举例
function GetUASTokenCb(ob)
{
	//console.log('obj:' + JSON.stringify(ob));	
	if(ob.ret == 1)
	{
		form1.S01.value="成功";
		form1.S02.value=ob.token;
		form1.S03.value=ob.expiredate;
	}
	else
	{
		form1.S01.value=ob.errinfo;
	}
}

function GetUASToken()
{
	oneNetHelper.GetUASToken(GetUASTokenCb);		
}

function GetUASTokenClear()
{
	form1.S01.value="";
	form1.S02.value="";
	form1.S03.value="";
}

function SSLUsbKeyLoginCb(ob)
{
	// console.log('SSLUsbKeyLoginCb return :' + JSON.stringify(ob));

	form1.T44.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T45.value="认证成功";
	}
	else
	{
		form1.T45.value=ob.errinfo;
	}	
}
function SSLUsbKeyLoginClear()
{
    form1.T41.value="";
	form1.T42.value="";
    form1.T43.value="";
	form1.T44.value="";
	form1.T45.value="";
}


function SSLUsbKeyLogin()
{
	if (form1.T41.value == ""||form1.T42.value == ""||form1.T43.value == "")
	{
		alert("请输入登录参数");
	}
	else
	{
		oneNetHelper.SSLUsbKeyLogin(form1.T41.value,form1.T42.value,form1.T43.value,SSLUsbKeyLoginCb);
	}
}

function SSLUserPwdLoginCb(ob)
{
	//console.log('SSLUserPwdLoginCb return :' + JSON.stringify(ob));
	form1.T50.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T51.value="认证成功";
	}
	else
	{
		form1.T51.value=ob.errinfo;
	}	
}
function SSLUserPwdLoginClear()
{
	form1.T46.value="";
	form1.T47.value="";
	form1.T48.value="";
	form1.T49.value="";
	form1.T50.value="";
	form1.T51.value="";
}


function SSLUserPwdLogin()
{
	if (form1.T46.value == ""||form1.T47.value == ""||form1.T48.value == ""||form1.T49.value == "")
	{
		alert("请输入登录参数");
	}
	else
	{
		oneNetHelper.SSLUserPwdLogin(form1.T46.value,form1.T47.value,form1.T48.value,form1.T49.value,SSLUserPwdLoginCb);
	}
}

function IPSecUsbKeyLoginCb(ob)
{
	//console.log('obj:' + JSON.stringify(ob));
	form1.T55.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T56.value="认证成功";
	}
	else
	{
		form1.T56.value=ob.errinfo;
	}	
}
function IPSecUsbKeyLoginClear()
{
	form1.T52.value="";
    form1.T53.value="";
	form1.T54.value="";
	form1.T55.value="";
	form1.T56.value="";
}

function IPSecUsbKeyLogin()
{
	if (form1.T52.value == ""||form1.T53.value == ""||form1.T54.value == "")
	{
		alert("请输入登录参数");
	}
	else
	{
		oneNetHelper.IPSecUsbKeyLogin(form1.T52.value,form1.T53.value,form1.T54.value,IPSecUsbKeyLoginCb);
	}
}

function LoginCb(ob)
{
	//console.log('obj:' + JSON.stringify(ob));
	form1.T63.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T64.value="认证成功";
	}
	else
	{
		form1.T64.value=ob.errinfo;
	}	
}
function LoginClear()
{	
	form1.T57.value="";
	form1.T58.value="";
	form1.T59.value="";
	form1.T60.value="";
	form1.T61.value="";
	form1.T62.value="";
	form1.T63.value="";
	form1.T64.value="";
}


function Login()
{
	oneNetHelper.Login(form1.T57.value,form1.T58.value,form1.T59.value,form1.T60.value,form1.T61.value,form1.T62.value,LoginCb);
}


function LogoutCb(ob)
{
	//console.log('obj:' + JSON.stringify(ob));	
	form1.T72.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T73.value="退出成功";
	}
	else
	{
		form1.T73.value=ob.errinfo;
	}
}

function Logout()
{
	if (form1.T71.value == "")
	{
		alert("请输入登出参数");
	}
	else
	{
		oneNetHelper.Logout(form1.T71.value, LogoutCb);
	}
}

function LogoutClear()
{
	form1.T71.value="";
	form1.T72.value="";
	form1.T73.value="";
}

function QuerySecPortalStatusCb(ob)
{
	//console.log('obj:' + JSON.stringify(ob));	
	form1.T83.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T82.value=ob.AuthEvent;
		form1.T84.value="成功";
	}
	else
	{
		form1.T84.value=ob.errinfo;
	}
}

function QuerySecPortalStatus()
{
	if (form1.T81.value == "")
	{
		alert("请输入参数");
	}
	else
	{
		oneNetHelper.QuerySecPortalStatus(form1.T81.value, QuerySecPortalStatusCb);
	}
}

function QuerySecPortalStatusClear()
{
	form1.T81.value="";
	form1.T82.value="";
	form1.T83.value="";
	form1.T84.value="";
}

function HeartBeatCb(ob)
{
	//console.log('obj:' + JSON.stringify(ob));	
	form1.T92.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T93.value="成功";
	}
	else
	{
		form1.T93.value=ob.errinfo;
	}
}

function HeartBeat()
{
	if (form1.T91.value == "")
	{
		alert("请输入参数");
	}
	else
	{
		oneNetHelper.HeartBeat(form1.T91.value, HeartBeatCb);		//oneNetHelper.HeartBeat(form1.T91.value,null);
	}
}

function HeartBeatClear()
{
	form1.T91.value="";
	form1.T92.value="";
	form1.T93.value="";
}

function ClearAll()
{
	GetUserNameClear();
	GetSignAndTokenClear();
	GetUserCertInfoClear();
	LoginClear();
	LogoutClear();
	QuerySecPortalStatusClear();
	HeartBeatClear();
}

function GetGateWayAddrListCb(ob)
{
	//console.log('obj:' + JSON.stringify(ob));	
	form1.T101.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T102.value="成功";
		form1.T103.value=ob.wbaddrNum;
		if(ob.wbaddrNum > 0)
		{
			form1.T104.value=ob.webserviceList;
			form1.T105.value=ob.webserviceList[0]; 
		}
		
		form1.T106.value=ob.gwaddrNum;
		if(ob.gwaddrNum > 0)
		{
			form1.T107.value=ob.gatewayaddrList;
			form1.T108.value=ob.gatewayaddrList[0]; 
		}
	}
	else
	{
		form1.T102.value=ob.errinfo;
	}
}

function GetGateWayAddrList()
{
	oneNetHelper.GetGateWayAddrList(GetGateWayAddrListCb);		
}

function GetGateWayAddrListClear()
{
	form1.T101.value="";
	form1.T102.value="";
	form1.T103.value="";
	form1.T104.value="";
	form1.T105.value="";
	form1.T106.value="";
	form1.T107.value="";
	form1.T108.value="";
}

function ChangeUKeyPinCb(ob)
{
	//console.log('obj:' + JSON.stringify(ob));	
	form1.T111.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T112.value="成功";
	}
	else
	{
		form1.T112.value=ob.errinfo;
	}
}

function ChangeUKeyPin()
{
	if (form1.T113.value == "" ||form1.T114.value == ""||form1.T115.value == "")
	{
		alert("请输入PIN码");
	}
	else
	{	 
	 if(form1.T114.value == form1.T115.value )
	 {
		oneNetHelper.ChangeUKeyPin(form1.T113.value,form1.T114.value,ChangeUKeyPinCb);
	 }
	 else
	 {
		alert("两次输入的新PIN码不一致");
	 }
	}			
}
function ChangeUKeyPinClear()
{
	form1.T111.value="";
	form1.T112.value="";
	form1.T113.value="";
	form1.T114.value="";
	form1.T115.value="";
}

function JsonActionTestCmdDealCb(ob)
{
	//console.log('obj:' + JSON.stringify(ob));	
	form1.T121.value=ob.ret;
	if(ob.ret == 1)
	{
		form1.T122.value="成功";
		form1.T123.value=ob.value;
	}
	else
	{
		form1.T122.value=ob.errinfo;
	}
}

function JsonActionTestCmdDeal()
{
	oneNetHelper.JsonActionTestCmdDeal(JsonActionTestCmdDealCb);		
}

function JsonActionTestCmdDealClear()
{
	form1.T121.value="";
	form1.T122.value="";
	form1.T123.value="";
}

</script>

<form method="POST" action="--WEBBOT-SELF--" name="form1">
  <!-- <p><label>OnenetHelper测试页面</label> </p> -->
  <br/>
  <p>
  	<label/><input type="button" value="获取插件状态" name="获取插件状态" OnClick = "IsAddonAvailable()">
	<label/><input type="button" value="清空插件状态" name="B01" OnClick = "ClearAddonStatusButton()">
  </p>
  <p>
  	<label>安装结果:</label><input type="text" name="T01" value="0" size="80">
  </p>
   <p><label/><br/></p>
  <p/>
  
  <p>  
  	<label/><input type="button" value="获取用户信息" name="获取用户信息" OnClick="return GetUserInfo()">
  	<label/><input type="button" value="清空用户信息" name="B1" OnClick = "return GetUserInfoClear()">
  </p>
  <p><label>认证结果:</label> <input type="text" name="T1" size="80"></p>
  <p><label>用户ID:</label> <input type="text" name="T2" size="80"></p>
  <p><label>用户名:</label> <input type="text" name="T3" size="80"></p>
  <p><label>证书用户ID:</label> <input type="text" name="T4" size="80"></p>
  <p><label>证书用户名:</label><input type="text" name="T5" size="80"></p>
  <p><label>调用结果:</label><input type="text" name="T6" size="80"></p>
  <p><label>错误信息:</label><input type="text" name="T7" size="80"></p>
  <br/>
  
  <p>
  	<label/><input type="button" value="获取令牌和签名值" name="获取令牌签名值" OnClick = "return GetSignAndToken()">
  	<label/><input type="button" value="清空令牌签名值" name="B4" OnClick = "return GetSignAndTokenClear()">
  </p>
  <p><label>随机数:</label><input type="text" name="T8" size="80" value="asfsadfsadfsadfasfsadf"></p>
  <p><label>令牌和签名值:</label><textarea        style="OVERFLOW:hidden" type="text" name="T9" rows="6" cols="80" ></textarea></p>
  <p><label>调用结果:</label><input type="text" name="T10" size="80"></p>
  <p><label>错误信息:</label><input type="text" name="T11" size="80"></p>
  <br/>
  <br/>
  <p>
  	<label/><input type="button" value="获取证书信息" name="获取证书信息" OnClick = "return GetUserCertInfo()">
  	<label/><input type="button" value="清空证书信息" name="B4" OnClick = "return GetUserCertInfoClear()">
  </p>
  <p><label>DNStringAll</label> <input type="text" name="T39" size="120"></p>
  <p><label>UserName:</label> <input type="text" name="T21" size="80"></p>
  <p><label>UserID:</label> <input type="text" name="T22" size="80"></p>
  <p><label>DNCode:</label> <input type="text" name="T23" size="80"></p> 
  <p><label>DisName:</label> <input type="text" name="T24" size="80"></p>  
  <p><label>UniqueId:</label> <input type="text" name="T25" size="80"></p>  
  <p><label>IssuerDisName</label><input type="text" name="T26" size="80"></p>
  <p><label>CertSerial</label><input type="text" name="T27" size="80"></p>
  <p><label>EMail</label><input type="text" name="T28" size="80"></p>
  <p><label>Org</label><input type="text" name="T29" size="80"></p>
  <p><label>OrgUnit</label><input type="text" name="T30" size="80"></p>
  <p><label>City</label><input type="text" name="T31" size="80"></p>
  <p><label>State</label><input type="text" name="T32" size="80"></p>
  <p><label>Descption</label><input type="text" name="T33" size="80"></p>  
  <p><label>Version</label><input type="text" name="T34" size="80"></p>
  <p><label>BeginTime</label><input type="text" name="T35" size="80"></p>
  <p><label>EndTime</label><input type="text" name="T36" size="80"></p>
  <p><label>调用结果:</label><input type="text" name="T37" size="80"></p>
  <p><label>错误信息:</label><input type="text" name="T38" size="80"></p>
  <br/>
  <br/>
  
   <p>
  	<label/><input type="button" value="获取统一认证Token" name="获取统一认证Token" OnClick = "GetUASToken()">
	<label/><input type="button" value="清空统一认证Token" name="C01" OnClick = "GetUASTokenClear()">
  </p>
  <p><label>调用结果:</label><input type="text" name="S01" value="0" size="80"></p>
  <p><label>Token值:</label> <input type="text" name="S02" size="80"></p>
  <p><label>Token有效时间:</label> <input type="text" name="S03" size="80"></p>
  </p>
   <p><label/><br/></p>
   
  <p>
  	<label/><input type="button" value="SSL USBKEY登录" name="SSL USBKEY登录" OnClick = "return SSLUsbKeyLogin()">
  	<label/><input type="button" value="清空SSL USBKEY登录" name="B5" OnClick = "return SSLUsbKeyLoginClear()">
  </p>
  <p><label>appToken:  </label><input type="text" name="T41" size="80" value="561BB220-58D4-4B7F-935D-E8113D80CC47"></p>
  <p><label>服务器ID:    </label><input type="text" name="T42" size="80" value="0"></p>
  <p><label>UsbKeyPIN码:</label><input type="text" name="T43" size="80" value="11111111"></p>
  <p><label>调用结果:</label><input type="text" name="T44" size="80"></p>
  <p><label>错误信息:</label><input type="text" name="T45" size="80"></p>
    <br/>
  <br/>
   <p>
  	<label/><input type="button" value="SSL用户名口令登录" name="SSL用户名口令登录" OnClick = "return SSLUserPwdLogin()">
  	<label/><input type="button" value="清空SSL用户名口令登录" name="B5" OnClick = "return SSLUserPwdLoginClear()">
  </p>
  <p><label>appToken:  </label><input type="text" name="T46" size="80" value="561BB220-58D4-4B7F-935D-E8113D80CC47"></p>
  <p><label>服务器ID:    </label><input type="text" name="T47" size="80" value="0"></p>
  <p><label>用户名:  </label><input type="text" name="T48" size="80" value="testsx1"></p>
  <p><label>密  码:  </label><input type="text" name="T49" size="80" value="11111111Aa"></p>
  <p><label>调用结果:</label><input type="text" name="T50" size="80"></p>
  <p><label>错误信息:</label><input type="text" name="T51" size="80"></p>
    <br/>
  <br/>
   <p>
  	<label/><input type="button" value="IPSec USBKEY登录" name="IPSec USBKEY登录" OnClick = "return IPSecUsbKeyLogin()">
  	<label/><input type="button" value="清空IPSec USBKEY登录" name="B5" OnClick = "return IPSecUsbKeyLoginClear()">
  </p>
  <p><label>appToken:  </label><input type="text" name="T52" size="80" value="561BB220-58D4-4B7F-935D-E8113D80CC47"></p>
  <p><label>服务器ID:    </label><input type="text" name="T53" size="80" value="0"></p>
  <p><label>UsbKeyPIN码:</label><input type="text" name="T54" size="80" value="11111111"></p>
  <p><label>调用结果:</label><input type="text" name="T55" size="80"></p>
  <p><label>错误信息:</label><input type="text" name="T56" size="80"></p>
  <br/>
  <br/>
  <p>
  	<label/><input type="button" value="登录" name="登录" OnClick = "return Login()">
  	<label/><input type="button" value="清空登录" name="B5" OnClick = "return LoginClear()">
  </p>
  <p><label>appToken:  </label><input type="text" name="T57" size="80" value="561BB220-58D4-4B7F-935D-E8113D80CC47"></p>
  <p><label>用户名:  </label><input type="text" name="T58" size="80" value="testsx1"></p>
  <p><label>密码:    </label><input type="text" name="T59" size="80" value="11111111Aa"></p>
  <p><label>认证方式:</label><input type="text" name="T60" size="80" value="2"></p>
  <p><label>协议类型:</label><input type="text" name="T61" size="80" value="1"></p>
  <p><label>服务器ID:</label><input type="text" name="T62" size="80" value="0"></p>
  <p><label>调用结果:</label><input type="text" name="T63" size="80"></p>
  <p><label>错误信息:</label><input type="text" name="T64" size="80"></p>
  <br/>
  <br/>
  <p>
  	<label/><input type="button" value="退出登录" name="退出" OnClick = "return Logout()">
  	<label/><input type="button" value="清空退出" name="B6" OnClick = "return LogoutClear()">
  </p>
  <p><label>appToken:  </label><input type="text" name="T71" size="80" value="561BB220-58D4-4B7F-935D-E8113D80CC47"></p>
  <p><label>调用结果:</label><input type="text" name="T72" size="80"></p>
  <p><label>错误信息:</label><input type="text" name="T73" size="80"></p>
  
  <br/>
  <br/>
     <p>
  	<label/><input type="button" value="查询SecPortal状态" name="查询状态" OnClick = "return QuerySecPortalStatus()">
  	<label/><input type="button" value="清空查询状态" name="B6" OnClick = "return QuerySecPortalStatusClear()">
  </p>
  <p><label>appToken:  </label><input type="text" name="T81" size="80" value="561BB220-58D4-4B7F-935D-E8113D80CC47"></p>
  <p><label>状态值:</label><input type="text" name="T82" size="80"></p>
  <p><label>调用结果:</label><input type="text" name="T83" size="80"></p>
  <p><label>错误信息:</label><input type="text" name="T84" size="80"></p>
  
  <br/>
  <br/>
  <p>
  	<label/><input type="button" value="发送心跳" name="心跳" OnClick = "return HeartBeat()">
  	<label/><input type="button" value="清空心跳" name="B6" OnClick = "return HeartBeatClear()">
  </p>
  <p><label>appToken:  </label><input type="text" name="T91" size="80" value="561BB220-58D4-4B7F-935D-E8113D80CC47"></p>
  <p><label>调用结果:</label><input type="text" name="T92" size="80"></p>
  <p><label>错误信息:</label><input type="text" name="T93" size="80"></p>

  <br/>
  <br/>
  <p>
  	<label/><input type="button" value="获取SSL网关地址列表" name="获取SSL网关地址列表" OnClick = "return GetGateWayAddrList()">
  	<label/><input type="button" value="清空获取SSL网关地址列表" name="B6" OnClick = "return GetGateWayAddrListClear()">
  </p>
  <p><label>内网口地址个数:  </label><input type="text" name="T103" size="80"></p>
  <p><label>内网口地址数组:  </label><input type="text" name="T104" size="80"></p>   
  <p><label>第一个内网口地址:</label><input type="text" name="T105" size="80"></p> 
  <p><label>外网口地址个数:  </label><input type="text" name="T106" size="80"></p>
  <p><label>外网口地址数组:  </label><input type="text" name="T107" size="80"></p>   
  <p><label>第一个外网口地址:</label><input type="text" name="T108" size="80"></p> 
  <p><label>调用结果:  </label><input type="text" name="T101" size="80"></p>
  <p><label>错误信息:  </label><input type="text" name="T102" size="80"></p>   
  
  <br/>
  <br/>
  <p>
  	<label/><input type="button" value="修改UKPIN码" name="修改UKPIN码" OnClick = "return ChangeUKeyPin()">
  	<label/><input type="button" value="清空修改UKPIN码" name="B6" OnClick = "return ChangeUKeyPinClear()">
  </p>
  <p><label>旧口令:    </label><input type="text" name="T113" size="80"></p>
  <p><label>新口令:    </label><input type="text" name="T114" size="80"></p>   
  <p><label>确认新口令:</label><input type="text" name="T115" size="80"></p> 
  <p><label>调用结果:  </label><input type="text" name="T111" size="80"></p>
  <p><label>错误信息:  </label><input type="text" name="T112" size="80"></p>     
  
  <br/>
  <br/>
  <p>
  	<label/><input type="button" value="Action命令处理" name="Action命令处理" OnClick = "return JsonActionTestCmdDeal()">
  	<label/><input type="button" value="清空命令处理" name="B6" OnClick = "return JsonActionTestCmdDealClear()">
  </p>
  <p><label>测试返回:  </label><input type="text" name="T123" size="80"></p>
  <p><label>调用结果:  </label><input type="text" name="T121" size="80"></p>
  <p><label>错误信息:  </label><input type="text" name="T122" size="80"></p> 
  
</form>
</body>
</html>