if(staticContextPath){
var path = contextPath;
var runtimePath = runtimePath;
}else{
var pathName = document.location.pathname;
var index = pathName.substr(1).indexOf("/");
var contextPath = pathName.substr(0, index + 1);
//配置runtime的项目路径
var runtimePath = "/obpm";
//这里配置项目路径
var myContextPath = "";
if (myContextPath) {
contextPath = myContextPath;
}
var path = contextPath;
}
var Api = {
loginWithCiphertext2: function (data) {
return $.ajax({
url: path + "/runtime/login/loginWithCiphertext2",
type: 'post',
async: false,
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(data)
})
},
checkin: function (data) {
return $.ajax({
url: path + "/runtime/login/checkin",
type: 'post',
async: false,
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(data)
})
},
accountsSignInxx: function (data) {//国产密码--旧版本
return $.ajax({
url: path + "/v2/accounts/sign-in",
type: 'post',
async: false,
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(data)
})
},
accountsSignIn: function (data) {//国产密码--新版本v3
return $.ajax({
url: contextPathV3 + "/identity/sign-in",
type: 'post',
async: false,
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(data)
})
},
signin: function (data) {
return $.ajax({
url: path + "/runtime/login/signin",
type: 'post',
async: false,
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(data)
})
},
autoLogin :function(){
return $.ajax({
url: path + "/runtime/login/autologin",
type: 'post',
async: false,
dataType: 'json',
contentType: 'application/json'
})
},
getDomainList : function () {
return $.ajax({
// url: path +"/runtime/login/getDomainList",
url:`/obpm/api/runtime/login/getDomainList`,
type: 'post',
async: false,
dataType: 'json',
contentType: 'application/json'
})
},
changeCheckcodeImg : function () {
return $.ajax({
url: path +"/runtime/login/changeCheckcodeImg",
type: 'post',
async: false,
dataType: 'json',
contentType: 'application/json'
})
},
getMultiLangWordList : function (data) {
return $.ajax({
url: path + "/runtime/login/getMultiLangWordList",
type: 'post',
async: false,
dataType: 'json',
data: JSON.stringify(data),
contentType: 'application/json'
})
}
};
function GetQueryString(name) {
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);//search,查询?后面的参数,并匹配正则
if(r!=null)return unescape(r[2]); return null;
}
function QueryString(){
var query = window.location.search.substring();
if(query.indexOf("?")>=0){
if(query.split("?")[1].indexOf("kms")>=0){
return "kms";
}else if(query.split("?")[1].indexOf("good")>=0){
return "good";
}else if(query.split("?")[1].indexOf("vue")>=0){
return "vue";
}
}
return (undefined);
}
function getExplorer() {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
//判断是否IE<11浏览器
var isIE11 = userAgent.indexOf('Mozilla/5.0') > -1 ;
if (!isIE11) {
return "noIE11";
}
}
var timeoutNum;
function getTimeOutNum(){
var $container = $('.indexLogin')
var telephone = $container.find("#telephone").val();
var domainName = $container.find("#domainList").val();
if(!telephone){
//alert("请填写手机号")
$container.find(".error-tip").text("请填写手机号");
$container.find(".error-tip").show();
$('.errorMsg').text("请填写手机号");
$('#errorCon').show();
return;
}
$.ajax({
url: path + "/runtime/login/smsauth?telephone="+telephone+"&domainName="+domainName,
type:"get",
dataType:"json",
async:false,
success: function(data){
if(data.resultCode == 1){
$("#sendCode").attr("disabled",true).css("pointer-events","none");
timeoutNum = data.timeout;
getNewTimeoutNum(1);
}else{
//alert(data.msg)
$container.find(".error-tip").text(data.msg);
$container.find(".error-tip").show();
$('.errorMsg').text(data.msg);
$('#errorCon').show();
}
}
});
}
var interval;
function getNewTimeoutNum(i){
//定时器每秒减1
if(interval) clearInterval(interval);
interval = setInterval(function(){
timeoutNum = timeoutNum -i;
console.log(timeoutNum);
if (timeoutNum == 0) {
document.getElementById("sendCode").innerHTML = "重发短信";
$("#sendCode").attr("disabled",false).css("pointer-events","auto");
clearInterval(interval)
} else {
document.getElementById("sendCode").innerHTML = " "+timeoutNum+" 秒后重发";
}
console.log("timeoutNum="+timeoutNum)
}, 1000);
}
//重发短信
function sendCode(){
getTimeOutNum();
}
function decorator() {
var debug = GetQueryString("debug");
var path;
var explorer = getExplorer();
if (explorer != null && explorer.toString().length > 0){
if (debug != null){
window.location.href = path + "/portal/share/security/login.jsp?debug=true"
} else {
window.location.href = path + "/portal/share/security/login.jsp"
}
}
var Login = {
config: {},
container: null,
init : function (container) {
Login.container = container;
Login._renderView();
},
_renderView : function () {
var $container = $(Login.container);
//判断自动登陆
// Api.autoLogin().done(function (response) {
// result = response;
// if (result.resultCode == 1){
// window.location.href = path + result.url;
// }
// });
// Api.getMultiLangWordList({"language": "CN"}).done(function(response) {
// console.log("初始化多语言");
// });
//获取企业域
Api.getDomainList().done(function(response) {
$('.hunan-login-button').on('click', function(e) {
window.open('https://65.25.0.56:9042/v3/identity/ca/login', '_self')
});
document.addEventListener("keydown", function(event) {
if (event.key === 'k' || event.key === 'K') {
$('.hunnan-login-box').hide()
if(result.homeTemplateBoradType=='rtpayTemplate'){//rt环境
$('.login-box').hide()
$('.login-rtbox').show()
}else{
if(!(location.origin.indexOf('bktang')>-1 || location.origin.indexOf('beitikeji')>-1 || location.origin.indexOf('localhost')>-1)) {
$('.logintips').show()
}
$('.login-box').show()
$('.login-rtbox').hide()
}
}
});
// $(".bg").append('
')
result = response;
if(result.resultCode == 0) {
alert(result.msg);
} else {
var ipos,ListStr1,ListStr2;
result= result.result;
// var list = result.domainList;
// 判断免费付费版本
localStorage.removeItem('homeTemplateBoradType')
if(location.origin.indexOf('bktang')>-1 || location.origin.indexOf('beitikeji')>-1 || location.origin.indexOf('localhost')>-1){
localStorage.setItem('homeTemplateBoradType','bktTemplate')
}else{
localStorage.setItem('homeTemplateBoradType',result.homeTemplateBoradType||'')
}
if(result.homeTemplateBoradType=='rtpayTemplate'){//rt环境
$('.hunnan-login-box').hide()
$('.login-box').hide()
$('.login-rtbox').show()
}else{
if(location.origin.indexOf('65.26.107.123')>-1){//湖南保安服务监管信息系统
$('.hunnan-login-box').show()
$('.logintips').hide()
$('.login-box').hide()
$('.login-rtbox').hide()
}else{
$('.hunnan-login-box').hide()
if(!(location.origin.indexOf('bktang')>-1 || location.origin.indexOf('beitikeji')>-1 || location.origin.indexOf('localhost')>-1)) {
$('.logintips').show()
}
$('.login-box').show()
$('.login-rtbox').hide()
}
}
//判断是否上传了背景图片
if(result.loginBackground){
var url = result.loginBackground;
$(".bg").append('
')
}
//判断是否上传logo
if(location.origin.indexOf('nxba.qiye.baibaodun.com.cn')>-1){//宁夏保安服务监管信息系统
$(".login-logo").append('
')
}else if(location.origin.indexOf('bjba.qiye.baibaodun.com.cn')>-1){//北京保安服务监管信息系统
$(".login-logo").append('
')
}else if(location.origin.indexOf('hnba.qiye.baibaodun.com.cn')>-1){//湖南保安服务监管信息系统
$(".login-logo").append('
')
}else if(location.origin.indexOf('bktang')>-1){//百课堂
$(".login-logo").append('
')
}else if(location.origin.indexOf('beitikeji')>-1 || location.origin.indexOf('localhost')>-1){//北体科技
$(".login-logo").append('
')
}
else if(result.loginLogo){
var loginLogo = result.loginLogo;
$(".login-logo").append('
')
}
// 页面标题
if(location.origin.indexOf('nxba.qiye.baibaodun.com.cn')>-1){//宁夏保安服务监管信息系统
document.title='宁夏保安服务监管信息系统'
}else if(location.origin.indexOf('bjba.qiye.baibaodun.com.cn')>-1){//北京保安服务监管信息系统
document.title='北京保安服务监管信息系统'
}else if(location.origin.indexOf('hnba.qiye.baibaodun.com.cn')>-1){//湖南保安服务监管信息系统
document.title='湖南保安服务监管信息系统'
}else if(location.origin.indexOf('bktang')>-1){//百课堂
document.title='百课堂信息系统'
}else if(location.origin.indexOf('beitikeji')>-1 || location.origin.indexOf('localhost')>-1){//北体科技
document.title='北体科技信息系统'
}
else if(result.loginTitle){
document.title = result.loginTitle;
}
// 是否显示注册按钮
if(result.isRegister == 1){
$(".natural").css("display", "block");
}else{
$(".natural").css("display", "none");
}
// 注册按钮名称
if(result.registerTitle){
$(".natural").text(result.registerTitle)
}
// 注册链接
if(result.registerUrl){
$(".natural").attr("href",result.registerUrl)
}
// 判断是否是监管端
if(result.isSupervise==undefined||result.isSupervise=="0"||result.isSupervise==""){
$("#record").css("display", "inline-block")
$("#rec-browser").css("display", "none")
localStorage.setItem("__network__",true)//外网
}else{
$("#record").css("display", "none")
$("#rec-browser").css("display", "inline-block")
localStorage.setItem("__network__",false)//监管内网
}
if (result.areaCode=="shanxi"){
$("#gg").css("display", "none");
}
if (result.areaCode=="gansu"){
$("#gg").css("display", "none");
}else {
$("#gg2").css("display", "none");
}
// var $ul = $("#domain");
// if(list.length>1){
// var isShowWX = false;
// var isShowDD = false;
// var dingdingDefault = false;
// for(var i=0;iinput[name=defaultDDType]').val(ListStr2);
// $('.login-fill>input[name=defaultDDName]').val(ListStr1);
// dingdingDefault = true;
// }
// }else if(ListStr2 == 3){
// isShowWX = true;
// isShowDD = true;
// if(!dingdingDefault){
// $('.login-fill>input[name=defaultDDType]').val(ListStr2);
// $('.login-fill>input[name=defaultDDName]').val(ListStr1);
// dingdingDefault = true;
// }
// }
// if(ListStr2 != 0){
// var $li = $(''+ListStr1+'');
// $ul.append($li);
// }
// }
// //判断是否超过11个企业域,超过定高度,出现滚动条,li高度32
// var ulHeight = list.length*32;
// if(ulHeight>250){
// $ul.css("height","250px");
// }
// $('.login-fill>input[name=isShowWX]').val(isShowWX);
// $('.login-fill>input[name=isShowDD]').val(isShowDD);
// if(!isShowWX && !isShowDD){
// $('.wx').hide();
// $('.wx_hui').show();
// $('.dd').hide();
// $('.dd_hui').show();
// }else if(isShowWX && isShowDD){
// $('.wx').show();
// $('.wx_hui').hide();
// $('.dd').show();
// $('.dd_hui').hide();
// }else if(isShowDD){
// $('.wx').hide();
// $('.wx_hui').show();
// $('.dd').show();
// $('.dd_hui').hide();
// }else if(isShowWX){
// $('.wx').show();
// $('.wx_hui').hide();
// $('.dd').hide();
// $('.dd_hui').show();
// }
// $(".login-form-group").hide();
// $(".domainLi").show();
// } else {
// ipos = list[0].indexOf("@");
// ListStr1=list[0].substring(0,ipos); //取前部分
// ListStr2=list[0].substring(ipos,list[0].length).replace(/[^0-9]/ig,"");//取后部分
// $("#configType").val(ListStr2);
// $("#domainList").val(ListStr1);
// if(ListStr2==0){
// $('.wx').hide();
// $('.wx_hui').show();
// $('.dd').hide();
// $('.dd_hui').show();
// }else if(ListStr2==1){
// $('.wx').show();
// $('.wx_hui').hide();
// $('.dd').hide();
// $('.dd_hui').show();
// }else if(ListStr2==2){
// $('.wx').hide();
// $('.wx_hui').show();
// $('.dd').show();
// $('.dd_hui').hide();
// }else{
// $('.wx').show();
// $('.wx_hui').hide();
// $('.dd').show();
// $('.dd_hui').hide();
// }
// }
}
});
this._bindEvent();
},
_bindEvent : function() {
var $container = $(this.container);
var that = this;
//登录
_loginIn = function (){
var userName,pwd,oldpwd;
processPassword();
if(localStorage.getItem('homeTemplateBoradType')=='rtpayTemplate'){
userName = $container.find("#userNameRT").val().trim();
pwd = $container.find("#pwdhiddenRT").val().trim();
oldpwd = $container.find("#pwdRT").val().trim();
}else{
userName = $container.find("#userName").val().trim();
pwd = $container.find("#pwdhidden").val().trim();
oldpwd = $container.find("#pwd").val().trim();
}
//勾选了下次自动登录存储进缓存
// if($("#remember").is(":checked")){
// var obj = {
// userName : userName,
// userPwd : oldpwd,
// }
// if(!localStorage.getItem("userMessage")){
// obj.newTime = new Date().getTime();
// }else{
// obj.newTime = JSON.parse(localStorage.getItem("userMessage"))[0].newTime;
// }
// var arr = [];
// arr.push(obj)
// localStorage.setItem("userMessage",JSON.stringify(arr));
// }else{
// localStorage.removeItem("userMessage");
// }
var isPC = true;
if(window.pathName && window.pathName.indexOf("mobilelogin.html")>=0){
isPC = false;
}
// var remember = $container.find("#remember").prop('checked') ? "1" : "0";
// var debug = GetQueryString("debug") != null ? GetQueryString("debug") : "false";
// var domainName = $container.find("#domainList").val();
// var checkcode = $container.find("#checkcode").val();
// var language = $container.find(".select-head-cont").attr("data-lang");
var loginIn = $container.find(".btnOk");
// 国产密码登录
Api.accountsSignIn({
userName : userName,
password : pwd,
}).done(function (response) {
sessionStorage.clear()//清除接口缓存-用户信息,应用信息,应用所属的菜单信息
localStorage.removeItem("token")
localStorage.removeItem("accessToken")
localStorage.removeItem("domainList")
localStorage.setItem("userName",userName)//保存userName,用户vue项目修改密码要用
console.log(response)
var result = response;
if(result.data&&result.data.token){
var token=result.data.token
localStorage.setItem("token",token)
}
if (result.data?.updatePasswordType == 1 || result.data?.updatePasswordType == 2) {
localStorage.setItem('updatePasswordType', result.data.updatePasswordType);
localStorage.setItem('updatePasswordMsg', result.data.updatePasswordMsg);
}
if(result.status != 200) {//新版本修改,旧版本result.code!=1
if(result.code == "1000429" ){
$(".login-error").text(result.message);
$(".login-error").show();
$(".error-tip").hide()
}else{
$(".error-tip").text(result.message);
$(".error-tip").show();
$(".login-error").hide()
}
$(".rt-error-tip").text(err.responseJSON.message);
$(".rt-error-tip").show();
$('.errorMsg').text(result.message);
$('#errorCon').show();
// if(result.checkCodeImg){
// $container.find(".verification").show();
// $(".login-fill").css("height","470px");
// $container.find(".code img").attr("src",result.checkCodeImg)
// }
}else{
if(location.pathname.indexOf('mobilelogin.html')>-1){//移动端进入,来源移动端
localStorage.setItem('FromPCMobile',1)
}
window.location.href = "/static/signon/dispatcher.html?v="+ Date.now(); //登录页登录---跳转中转页面判断--前端pc端或移动端
}
}).fail(function (err){
if(err.responseJSON.code == "1000429" ){
$(".login-error").text(err.responseJSON.message);
$(".login-error").show();
$(".error-tip").hide()
}else{
$(".error-tip").text(err.responseJSON.message);
$(".error-tip").show();
$(".login-error").hide()
}
$(".rt-error-tip").text(err.responseJSON.message);
$(".rt-error-tip").show();
$('.errorMsg').text(err.responseJSON.message);
$('#errorCon').show();
})
};
$container.on('click', '.btnOk', function(e) {
console.log('-----------------------')
var areaCode= result.areaCode;
if(areaCode =='shanxi'){
kpilogin();
}
if(areaCode =='gansu'){
gansukpilogin();
}
else {
_loginIn();
}
});
$(document).keydown(function(e){
if(e.keyCode == "13"){
if(localStorage.getItem('homeTemplateBoradType')=='rtpayTemplate'){
$container.find("#pwdRT").blur();
}else{
$container.find("#pwd").blur();
}
console.log("登录认证");
var areaCode= result.areaCode;
if(areaCode =='shanxi'){
kpilogin();
}
if(areaCode =='gansu'){
console.log("甘肃登录认证");
gansukpilogin();
}
else {
_loginIn();
}
}
});
function gansukpilogin() {
// 如果未安装插件,则提示安装。
var initParam="<\?xml version=\"1.0\" encoding=\"utf-8\"\?>";
$.ajax({
url: contextPathV3 + "/identity/gansu/pki/login",
type: "post",
cache: false,
data: {username: $container.find("#userName").val().trim()},
dataType: "json",
async: "false",
success: function (result) {
var data=result.data;
if (data=="login"){
_loginIn();
}else if (result.successful == true || result.successful == "true") {
if (data.QRCodeAuth == "false") {
console.log("T+A认证——————gansu");
original = data.original;
console.log("T+A认证——————gansu:——————"+original);
doDataProcess(initParam);
} else {
console.log("二维码认证");
qrCodeAuth = data.QRCodeAuth;
/*generateQRCode();*/
document.getElementById("qr_div").style.display = "";
}
} else {
//弹出登陆出错提示
toastr.options = {
"debug": false,
"progressBar": false,
"positionClass": "toast-top-center",
"onclick": null,
"showDuration": "400",
"hideDuration": "1000",
"timeOut": "3000",
"extendedTimeOut": "1000",
"showEasing": "swing",
"hideEasing": "linear",
"showMethod": "fadeIn",
"hideMethod": "fadeOut"
};
toastr.clear();
toastr.warning(result.msg);
}
},
error: function (e) {
alert(e.responseText);
}
});
}
function kpilogin() {
// 如果未安装插件,则提示安装。
var initParam="<\?xml version=\"1.0\" encoding=\"utf-8\"\?>";
$.ajax({
url: contextPathV3 + "/identity/shanxi/pki/login",
type: "post",
cache: false,
data: {username: $container.find("#userName").val().trim()},
dataType: "json",
async: "false",
success: function (result) {
var data=result.data;
if (data=="login"){
_loginIn();
}else if (result.successful == true || result.successful == "true") {
if (data.QRCodeAuth == "false") {
console.log("T+A认证");
original = data.original;
doDataProcess(initParam);
} else {
console.log("二维码认证");
qrCodeAuth = data.QRCodeAuth;
/*generateQRCode();*/
document.getElementById("qr_div").style.display = "";
}
} else {
//弹出登陆出错提示
toastr.options = {
"debug": false,
"progressBar": false,
"positionClass": "toast-top-center",
"onclick": null,
"showDuration": "400",
"hideDuration": "1000",
"timeOut": "3000",
"extendedTimeOut": "1000",
"showEasing": "swing",
"hideEasing": "linear",
"showMethod": "fadeIn",
"hideMethod": "fadeOut"
};
toastr.clear();
toastr.warning(result.msg);
}
},
error: function (e) {
alert(e.responseText);
}
});
}
// 签名结果
var signResult;
// 根据原文和证书产生认证数据包
function doDataProcess(initParam){
// 证书版本者主题
var signSubject = ""; //document.getElementById("rootCADN").value;
// 验证认证原文是否为空
if(original == ""){
alert("认证原文不能为空!");
return false;
}else{
console.log("yyy"+original);
// VCTK初始化参数,数据可从网关系统:认证管理->Key类型管理中导出
//var initParam = "<\?xml version=\"1.0\" encoding=\"gb2312\"\?>";
// 调用网关工具脚本中的detachSignStr方法进行签名,返回签名结果
// 参数说明:initParam:vctk控件初始化参数,authContent:认证原文,signSubject:证书版本者主题
signResult = detachSignStr(initParam,original,signSubject);
if(signResult){
// 页面提交,请求后台认证
// document.forms['certAuth'].submit();
//console.log('certAuth',document.forms['certAuth']);
$.ajax({
url:contextPathV3 +"/identity/jitGWAuth",
type:"post",
dataType:"json",
data:{
authMode:'cert',
original:original,
signed_data:signResult
},
success:function (data) {
console.log('jitGWAuth.ret:',data);
//判断kpi是否通过,通过则进行登录
if (data.successful) {
console.log('jitGWAuth.ret.data:',data.data);
//登录
// _loginIn();
sessionStorage.clear()//清除接口缓存-用户信息,应用信息,应用所属的菜单信息
localStorage.removeItem("token")
localStorage.removeItem("accessToken")
localStorage.removeItem("domainList")
// localStorage.setItem("userName",userName)//保存userName,用户vue项目修改密码要用
if(data.data){
console.log('jitGWAuth.ret.success ----------------');
// localStorage.setItem("token", data.data);
// if(location.pathname.indexOf('mobilelogin.html')>-1){//移动端进入,来源移动端
// localStorage.setItem('FromPCMobile',1)
// }
// window.location.href = "/static/signon/dispatcher.html?v="+ Date.now(); //登录页登录---跳转中转页面判断--前端pc端或移动端
window.location.href = "/static/signon/bjca.html?token="+ data.data; //登录页登录---跳转中转页面判断--前端pc端或移动端
}else{
$(".error-tip").text(result.message);
$(".error-tip").show();
$(".rt-error-tip").text(err.responseJSON.message);
$(".rt-error-tip").show();
$('.errorMsg').text(result.message);
$('#errorCon').show();
}
} else {
//弹出登陆出错提示
toastr.options = {
"debug": false,
"progressBar": false,
"positionClass": "toast-top-center",
"onclick": null,
"showDuration": "400",
"hideDuration": "1000",
"timeOut": "3000",
"extendedTimeOut": "1000",
"showEasing": "swing",
"hideEasing": "linear",
"showMethod": "fadeIn",
"hideMethod": "fadeOut"
};
toastr.clear();
toastr.warning(data.msg);
}
},
error: function () {
//关闭加载进度条
parent.layer.close(loadIndex);
hideWaiting('login-waiting');
toastrError('请求发生错误!');
}
});
}else{
return false;
}
}
}
// 根据原文和证书产生认证数据包
// 参数说明:initParam:vctk控件初始化参数
// 参数说明:authContent:认证原文
// 参数说明:signSubject:证书版发者主题
function detachSignStr(initParam,authContent,signSubject){
// 验证认证原文不能为空
if(authContent == ""){
alert("认证原文不能为空!");
return false;
}else{
try{
JIT_GW_ExtInterface.GetVersion();
}catch(e){
alert("未安装控件,请进行安装控件");
window.location.href = "kpi/static/template/PNXClient.exe";
return false;
}
JIT_GW_ExtInterface.ClearFilter();
// 初始化vctk控件
JIT_GW_ExtInterface.Initialize("",initParam);
// 控制证书为一个时,不弹出证书选择框
JIT_GW_ExtInterface.SetChooseSingleCert(1);
console.log("hhhhpppp"+authContent);
// 生成签名信息
var sign_Result = JIT_GW_ExtInterface.P7SignString(authContent,true,true);
console.log("hhhh"+sign_Result);
if(JIT_GW_ExtInterface.GetLastError() !=0){
if (JIT_GW_ExtInterface.GetLastError() == 3758096386
|| JIT_GW_ExtInterface.GetLastError() == 2148532334){
alert("用户取消操作");
return;
}else if (JIT_GW_ExtInterface.GetLastError() == -536870815
|| JIT_GW_ExtInterface.GetLastError() == 3758096481) {
alert("没有找到有效的证书,如果使用的是KEY,请确认已经插入key");
return;
}else{
alert(JIT_GW_ExtInterface.GetLastErrorMessage());
return;
}
}
// 返回签名结果
return sign_Result;
}
}
var JIT_GW_ExtInterface = function(){
var currentSessionWSURL = "";
var useActioveX = false;
var useNPPlugin = false;
/**
* simple polyfill Object.assign for IE <= 11
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
* @param {Object} target - target options
* @param {Object} options - new options
*/
var extendOptions = function (target, options) {
if (typeof Object.assign === 'function') {
Object.assign(target, options)
} else {
// for IE < 11
for (var key in options) {
target[key] = options[key]
}
}
}
var options = {};
var checkSessionWSURL = function ()
{
if( currentSessionWSURL=="" )
{
if ("https:" == document.location.protocol)
{
currentSessionWSURL = SendAndWaitMessage("https://127.0.0.1:10087/", "QueryService");
}
else
{
currentSessionWSURL = SendAndWaitMessage("http://127.0.0.1:10086/", "QueryService");
}
}
}
// 是否是IE
var isUseActioveX = function ()
{
if (!!window.ActiveXObject || "ActiveXObject" in window)
{
//try
//{
// var ax = new ActiveXObject("PNXClient.PNXDataTrans");
// useActioveX = true;
//}
//catch(e)
//{
// useActioveX = false;
//}
useActioveX = true;
}
else
{
useActioveX = false;
}
}
// 是否使用NPPlugin
var isUseNPPlugin = function()
{
checkSessionWSURL();
if ("{\"value\":\"\"}" == currentSessionWSURL)
{
useNPPlugin = true;
}
else
{
useNPPlugin = false;
}
}
var addActioveX = function(){
document.write("");
}
var addNPPlugin = function(){
document.write("");
}
var SendAndWaitMessageEx = function (operatorCmd, sendMsg)
{
checkSessionWSURL();
var strSendMsg = operatorCmd + ":" + sendMsg;
return SendAndWaitMessage(currentSessionWSURL, strSendMsg);
}
var SendAndWaitMessage = function (wsurl, sendMsg)
{
var ResultMsg = "{\"value\":\"\"}";
if( ResultMsg == wsurl )
{
return ;
}
try{
var globalXmlHttpRequest = new XMLHttpRequest();
globalXmlHttpRequest.open("POST", wsurl, false);
globalXmlHttpRequest.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
globalXmlHttpRequest.send(sendMsg);
ResultMsg = globalXmlHttpRequest.responseText;
}catch(e){
currentSessionWSURL = "";
if (options.onError) {
options.onError.call(undefined, e);
}
}
return ResultMsg;
}
return {
Config: function(extendOption) {
if (extendOption && typeof extendOption === 'object') {
extendOptions(options, extendOption)
}
},
Init: function()
{
isUseActioveX();
if (useActioveX) {
addActioveX();
}
else
{
isUseNPPlugin();
if (useNPPlugin){
addNPPlugin();
}
}
},
// 功能:返回客户端的版本 HRESULT GetClientVersion([out,retval] BSTR* bstrClientVersion);
GetClientVersion: function()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetClientVersion();
}
else
{
var result = JSON.parse(SendAndWaitMessageEx("GetClientVersion", ""));
return result.value;
}
},
// 功能:下载客户端程序并安装 HRESULT SetupClient([in] BSTR strURL, [in] BSTR strHashValue, [in] BOOL bSync, [in] BOOL bOnlySSO, [out,retval] LONG* lRetVal);
SetupClient: function (bstrURL, bstrHashValue, bSync, bOnlySSO)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.SetupClient(bstrURL, bstrHashValue, bSync, bOnlySSO);
}
else
{
var jsonstr = {"strURL":bstrURL,"strHashValue":bstrHashValue,"bSync":bSync,"bOnlySSO":bOnlySSO};
var result = JSON.parse(SendAndWaitMessageEx("SetupClient", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:获取硬件指纹信息 HRESULT GetFinger([in] ULONG dwSign, [in] BSTR strGateWayIP, [out,retval] BSTR* bstrFinger);
GetFinger: function (dwSign, strGateWayIP)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetFinger(dwSign, strGateWayIP);
}
else
{
var jsonstr = {"dwSign":dwSign, "strGateWayIP":strGateWayIP};
var result = JSON.parse(SendAndWaitMessageEx("GetFinger", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:设置转发策略和代填策略 HRESULT SetPolicy([in] BSTR strProxyPolicy, [in] BSTR strSSOPolicy, [in] BSTR strGatewayAddress, [out,retval] LONG* lRetVal);
SetPolicy:function (strProxyPolicy, strSSOPolicy, strGatewayAddress)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.SetPolicy(strProxyPolicy, strSSOPolicy, strGatewayAddress);
}
else
{
var jsonstr = {"strProxyPolicy":strProxyPolicy, "strSSOPolicy":strSSOPolicy, "strGatewayAddress":strGatewayAddress};
var result = JSON.parse(SendAndWaitMessageEx("SetPolicy", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:启动认证信息模块 HRESULT GetAuthToken([in] BSTR strFileName,[in] BSTR strXmlData,[out,retval] BSTR* bstrInfo);
GetAuthToken: function (strFileName, strXmlData)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetAuthToken(strFileName, strXmlData);
}
else
{
var jsonstr = {"strFileName":strFileName, "strXmlData":strXmlData};
var result = JSON.parse(SendAndWaitMessageEx("GetAuthToken", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:打开BS应用 HRESULT NavigateURL([in] BSTR strUrl, [out,retval] LONG* lRetVal);
NavigateURL: function (strUrl)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.NavigateURL(strUrl);
}
else
{
var jsonstr = {"strUrl":strUrl};
var result = JSON.parse(SendAndWaitMessageEx("NavigateURL", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:打开CS应用 HRESULT ExecuteCS([in] BSTR strGatewayAddress, [in] BSTR strAppFlag, [in] BSTR strAppPath, [out,retval] LONG* lRetVal);
ExecuteCS: function (strGatewayAddress, strAppFlag, strAppPath)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.ExecuteCS(strGatewayAddress, strAppFlag, strAppPath);
}
else
{
var jsonstr = {"strGatewayAddress":strGatewayAddress, "strAppFlag":strAppFlag, "strAppPath":strAppPath};
var result = JSON.parse(SendAndWaitMessageEx("ExecuteCS", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:设置自动更新策略 HRESULT SetUpdatePolicy([in] BSTR strGatewayAddress, [in] SHORT nGatewayPort, [in] BSTR strUserToken, [in] ULONG ulUpdateDelay, [out, retval] LONG* lRetVal);
SetUpdatePolicy: function (strGatewayAddress, nGatewayPort, strUserToken, updatedelay)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.SetUpdatePolicy(strGatewayAddress, nGatewayPort, strUserToken, updatedelay);
}
else
{
var jsonstr = {"strGatewayAddress":strGatewayAddress, "nGatewayPort":nGatewayPort, "strUserToken":strUserToken, "ulUpdateDelay":updatedelay};
var result = JSON.parse(SendAndWaitMessageEx("SetUpdatePolicy", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:获取客户端IP HRESULT GetClientIP([in] BSTR strGatewayIP, [out, retval] BSTR* RetVal);
GetClientIP: function (strGatewayIP)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetClientIP(strGatewayIP);
}
else
{
var jsonstr = {"strGatewayIP":strGatewayIP};
var result = JSON.parse(SendAndWaitMessageEx("GetClientIP", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:登出网关 HRESULT GWLogout([in] BSTR strServerIP, [out, retval] LONG* lRetVal);
GWLogout: function (strServerIP)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GWLogout(strServerIP);
}
else
{
var jsonstr = {"strServerIP":strServerIP};
var result = JSON.parse(SendAndWaitMessageEx("GWLogout", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:运行安装包: 0 非静默安装,1 静默安装,2 同步安装,4 异步安装 HRESULT RunSetup([in] LONG lRunType, [in] BOOL bIsOnlySSO, [out, retval] LONG* lRetVal);
RunSetup: function (lRunType, bIsOnlySSO)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.RunSetup(lRunType, bIsOnlySSO);
}
else
{
var jsonstr = {"lRunType":lRunType, "bIsOnlySSO":bIsOnlySSO};
var result = JSON.parse(SendAndWaitMessageEx("RunSetup", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:获取下载进度 HRESULT GetDownloadProgress([out, retval] LONG* lRetVal);
GetDownloadProgress: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetDownloadProgress();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("GetDownloadProgress", jsonstr));
return result.value;
}
},
// 功能:是否安装完成 HRESULT IsInstallComplete([out, retval] BOOL* lRetVal);
IsInstallComplete: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.IsInstallComplete();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("IsInstallComplete", jsonstr));
return result.value;
}
},
// 功能:初始化签包对象 HRESULT Initialize([in] BSTR strAlgType, [in] BSTR strAuxParam, [out,retval] LONG* Result);
Initialize: function (strAlgType, strAuxParam)
{
if(useActioveX|| useNPPlugin )
{
return PNXGWClient.Initialize(strAlgType, strAuxParam);
}
else
{
var jsonstr = { "strAlgType":strAlgType, "strAuxParam":strAuxParam };
var result = JSON.parse(SendAndWaitMessageEx("Initialize", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:设置摘要算法 HRESULT SetDigestAlg([in] BSTR strDigestAlg, [out,retval] LONG* Result);
SetDigestAlg: function (strDigestAlg)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.SetDigestAlg(strDigestAlg);
}
else
{
var jsonstr = {"strDigestAlg":strDigestAlg};
var result = JSON.parse(SendAndWaitMessageEx("SetDigestAlg", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:设置单证书是否弹出对话框 HRESULT SetChooseSingleCert([in] ULONG isChoose, [out,retval] LONG* Result);
SetChooseSingleCert: function (isChoose)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.SetChooseSingleCert(isChoose);
}
else
{
var jsonstr = {"isChoose":isChoose};
var result = JSON.parse(SendAndWaitMessageEx("SetChooseSingleCert", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:添加证书过滤条件 HRESULT AddFilter([in] ULONG ulType, [in] BSTR strValue, [out,retval] LONG* Result);
AddFilter: function (ulType, strValue)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.AddFilter(ulType, strValue);
}
else
{
var jsonstr = {"ulType":ulType, "strValue":strValue};
var result = JSON.parse(SendAndWaitMessageEx("AddFilter", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:清除所有过滤条件 HRESULT ClearFilter([out,retval] LONG* Result);
ClearFilter: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.ClearFilter();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("ClearFilter", jsonstr));
return result.value;
}
},
// 功能:P1签名 HRESULT P1Sign([in] BSTR strValueBase64, [out,retval] BSTR* Result);
P1Sign: function (strValueBase64)
{
if(useActioveX|| useNPPlugin )
{
return PNXGWClient.P1Sign(strValueBase64);
}
else
{
var jsonstr = {"strValueBase64":strValueBase64};
var result = JSON.parse(SendAndWaitMessageEx("P1Sign", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:P1签名字符串 HRESULT P1SignString([in] BSTR strValue, [out,retval] BSTR* Result);
P1SignString: function (strValue)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.P1SignString(strValue);
}
else
{
var jsonstr = {"strValue":strValue};
var result = JSON.parse(SendAndWaitMessageEx("P1SignString", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:P7签名 HRESULT P7Sign([in] BSTR strValueBase64,[in] VARIANT_BOOL isDetach,[in] VARIANT_BOOL isIncludeCert, [out,retval] BSTR* Result);
P7Sign: function (strValueBase64, isDetach, isIncludeCert)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.P7Sign(strValueBase64, isDetach, isIncludeCert);
}
else
{
var jsonstr = {"strValueBase64":strValueBase64, "isDetach":isDetach, "isIncludeCert":isIncludeCert};
var result = JSON.parse(SendAndWaitMessageEx("P7Sign", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:P7签名字符串 HRESULT P7SignString([in] BSTR strValue,[in] VARIANT_BOOL isDetach,[in] VARIANT_BOOL isIncludeCert, [out,retval] BSTR* Result);
P7SignString: function (strValue, isDetach, isIncludeCert)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.P7SignString(strValue, isDetach, isIncludeCert);
}
else
{
var jsonstr = {"strValue":strValue, "isDetach":isDetach, "isIncludeCert":isIncludeCert};
var result = JSON.parse(SendAndWaitMessageEx("P7SignString", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:释放签名对象 HRESULT Finalize([out,retval] LONG* Result);
Finalize: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.Finalize();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("Finalize", jsonstr));
return result.value;
}
},
// 功能:获取签名版本 HRESULT GetSignVersion([out,retval] BSTR* Result);
GetSignVersion: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetSignVersion();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("GetSignVersion", jsonstr));
return result.value;
}
},
// 功能:获取签名证书 HRESULT GetSignCert([out,retval] BSTR* RetCert);
GetSignCert: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetSignCert();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("GetSignCert", jsonstr));
return result.value;
}
},
// 功能:获取错误码 HRESULT GetLastError([out,retval] ULONG* RetLong);
GetLastError: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetLastError();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("GetLastError", jsonstr));
return result.value;
}
},
// 功能:获取错误信息 HRESULT GetLastErrorMessage([out,retval] BSTR* RetStr);
GetLastErrorMessage: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetLastErrorMessage();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("GetLastErrorMessage", jsonstr));
return result.value;
}
},
// 功能:销毁认证对象 HRESULT DestoryAuth([out,retval] LONG* lRetVal);
DestoryAuth: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.DestoryAuth();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("DestoryAuth", jsonstr));
return result.value;
}
},
// 功能:获取证书类型 HRESULT GetSignCertType([out,retval] BSTR* RetCertType);
GetSignCertType: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetSignCertType();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("GetSignCertType", jsonstr));
return result.value;
}
},
// 功能:获取签名摘要算法 HRESULT GetSignHash([out,retval] BSTR* RetSignHash);
GetSignHash: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetSignHash();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("GetSignHash", jsonstr));
return result.value;
}
},
// 功能:使能调用序列 HRESULT CallQueueEnable([in] BOOL bCallQueueEnable, [in] BOOL bHeadInfoEnable, [out,retval] LONG* lRetVal);
CallQueueEnable: function (bCallQueueEnable, bHeadInfoEnable)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.CallQueueEnable(bCallQueueEnable, bHeadInfoEnable);
}
else
{
var jsonstr = {"bCallQueueEnable":bCallQueueEnable, "bHeadInfoEnable":bHeadInfoEnable};
var result = JSON.parse(SendAndWaitMessageEx("CallQueueEnable", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:清空调用序列结果 HRESULT CallQueueClear([out,retval] LONG* lRetVal);
CallQueueClear: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.CallQueueClear();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("CallQueueClear", jsonstr));
return result.value;
}
},
// 功能:获取调用序列结果 HRESULT CallQueueGet([out,retval] BSTR* bstrRetVal);
CallQueueGet: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.CallQueueGet();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("CallQueueGet", jsonstr));
return result.value;
}
},
// 功能:客户端安全策略检查 HRESULT DoClientSecurityCheck([in] BSTR strGatewayAddress, [in] SHORT usGatewayPort, [in] BSTR strSecurityPolicys, [out,retval] BOOL* RetVal);
DoClientSecurityCheck: function (strGatewayAddress, usGatewayPort, strSecurityPolicys)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.DoClientSecurityCheck(strGatewayAddress, usGatewayPort, strSecurityPolicys);
}
else
{
var jsonstr = {"strGatewayAddress":strGatewayAddress, "usGatewayPort":usGatewayPort, "strSecurityPolicys":strSecurityPolicys};
var result = JSON.parse(SendAndWaitMessageEx("DoClientSecurityCheck", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:获取通讯协议版本 HRESULT GetProtocolVersion([out,retval] BSTR* strProtocolVersion);
GetProtocolVersion: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetProtocolVersion();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("GetProtocolVersion", jsonstr));
return result.value;
}
},
// 功能:修改Key的Pin码 HRESULT ChangePinCode([in] BSTR strCertSn, [in] LONG lPinCodeType, [in] BSTR strCurPinCode, [in] BSTR strNewPinCode, [out,retval] LONG *pRet);
ChangePinCode: function (strCertSn, lPinCodeType, strCurPinCode, strNewPinCode)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.ChangePinCode(strCertSn, lPinCodeType, strCurPinCode, strNewPinCode);
}
else
{
var jsonstr = {"strCertSn":strCertSn, "lPinCodeType":lPinCodeType, "strCurPinCode":strCurPinCode, "strNewPinCode":strNewPinCode};
var result = JSON.parse(SendAndWaitMessageEx("ChangePinCode", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:等待策略设置完毕 HRESULT WaitSetPolicyFinish([in] BSTR strGatewayAddress, [out,retval] LONG* lRetVal);
WaitSetPolicyFinish: function (strGatewayAddress)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.WaitSetPolicyFinish(strGatewayAddress);
}
else
{
var jsonstr = {"strGatewayAddress":strGatewayAddress};
var result = JSON.parse(SendAndWaitMessageEx("WaitSetPolicyFinish", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:获取会话Token HRESULT GetSessionToken([in] BSTR strGatewayAddress, [out,retval] BSTR* bstrToken);
GetSessionToken: function (strGatewayAddress)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetSessionToken(strGatewayAddress);
}
else
{
var jsonstr = {"strGatewayAddress":strGatewayAddress};
var result = JSON.parse(SendAndWaitMessageEx("GetSessionToken", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:获取控件版本 HRESULT GetVersion([out,retval] BSTR* bstrRetVal);
GetVersion: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetVersion();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("GetVersion", jsonstr));
return result.value;
}
},
// 功能:设置语言资源 HRESULT SetLanguage([in] BSTR strLanguage, [out,retval] LONG* Result);
SetLanguage: function (strLanguage)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.SetLanguage(strLanguage);
}
else
{
var jsonstr = {"strLanguage":strLanguage};
var result = JSON.parse(SendAndWaitMessageEx("SetLanguage", JSON.stringify(jsonstr)));
return result.value;
}
},
// 功能:获取用户属性 HRESULT GetAttribute([in] BSTR strGatewayAddress, [in] BSTR strAppFlag, [in] BSTR strAttributeName, [out, retval] BSTR* attributevalue);
GetAttribute: function (strGatewayAddress, strAppFlag, strAttributeName)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetAttribute(strGatewayAddress, strAppFlag, strAttributeName);
}
else
{
var jsonstr = {"strGatewayAddress":strGatewayAddress, "strAppFlag":strAppFlag, "strAttributeName":strAttributeName};
var result = JSON.parse(SendAndWaitMessageEx("GetAttribute", JSON.stringify(jsonstr)));
return result.value;
}
},
//功能:获取签名加密PIN码 HRESULT GetPinCode([out,retval] BSTR* Result);
GetPinCode: function ()
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.GetPinCode();
}
else
{
var jsonstr = "";
var result = JSON.parse(SendAndWaitMessageEx("GetPinCode", JSON.stringify(jsonstr)));
return result.value;
}
},
//功能:设置强制弹出PIN码框 HRESULT SetForcePinDialog([in] ULONG isForcePinDialog, [out,retval] LONG* Result);
SetForcePinDialog: function (isForcePinDialog)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.SetForcePinDialog(isForcePinDialog);
}
else
{
var jsonstr = {"isForcePinDialog":isForcePinDialog};
var result = JSON.parse(SendAndWaitMessageEx("SetForcePinDialog", JSON.stringify(jsonstr)));
return result.value;
}
},
//功能:返回报文认证属性 HRESULT MessageAuth([in] BSTR bstrGatewayAddress, [in] BSTR bstrAttributeName, [in] BSTR bstrAppID,[out,retval] BSTR* bstrAttributeValue);
MessageAuth: function (bstrGatewayAddress, bstrAttributeName, bstrAppID)
{
if( useActioveX || useNPPlugin )
{
return PNXGWClient.MessageAuth(bstrGatewayAddress, bstrAttributeName, bstrAppID);
}
else
{
var jsonstr = {"bstrGatewayAddress":bstrGatewayAddress, "bstrAttributeName":bstrAttributeName, "bstrAppID":bstrAppID};
var result = JSON.parse(SendAndWaitMessageEx("MessageAuth", JSON.stringify(jsonstr)));
return result.value;
}
}
}
}();
(function(){
if (window.location.hostname === '92.1.44.14' //陕西内网
|| window.location.hostname === '95.1.123.227' //甘肃内网
|| window.location.hostname === '10.213.12.225' //甘肃政务网
|| window.location.hostname === '113.246.57.21' //湖南政务网
) {
JIT_GW_ExtInterface.Init();
}
})();
// $container.find("#domain li").click(function () {
// var word = $(this).text();
// var value = $(this).val();
// if(!$(".weixinLogin").is(":hidden")){
// $(".weixinLogin").find("#domainList").val(word);
// $(".weixinLogin").find("#configType").val(value);
// $(".weixinLogin").find("#domain").hide();
// $(".weixinLogin").find("#domainList").next().next().addClass("del-tran");
// //$(this).parent().parent().find(".mu-text-field-label").addClass("del-tran");
// }else if(!$(".dingdingLogin").is(":hidden")){
// $(".dingdingLogin").find("#domainList").val(word);
// $(".dingdingLogin").find("#configType").val(value);
// $(".dingdingLogin").find("#domain").hide();
// $(".dingdingLogin").find("#domainList").next().next().addClass("del-tran");
// //$(this).parent().parent().find(".mu-text-field-label").addClass("del-tran");
// }else{
// $(".indexLogin").find("#domainList").val(word);
// $(".indexLogin").find("#configType").val(value);
// $(".indexLogin").find("#domain").hide();
// $(".indexLogin").find("#domainList").next().next().addClass("del-tran");
// }
// if(value==0){
// $('.wx').hide();
// $('.wx_hui').show();
// $('.dd').hide();
// $('.dd_hui').show();
// }else if(value==1){
// $('.wx').show();
// $('.wx_hui').hide();
// $('.dd').hide();
// $('.dd_hui').show();
// }else if(value==2){
// $('.wx').hide();
// $('.wx_hui').show();
// $('.dd').show();
// $('.dd_hui').hide();
// }else{
// $('.wx').show();
// $('.wx_hui').hide();
// $('.dd').show();
// $('.dd_hui').hide();
// }
// if(!$(".weixinLogin").is(":hidden")) $('.wx').click();
// });
//改变验证码
// $container.on("click", ".code", function () {
// Api.changeCheckcodeImg().done(function(response) {
// var result = response.checkcode;
// $container.find(".code img").attr("src",result)
// })
// });
}
}
return {
init: Login.init
}
}
/**
* 加密密码
* @returns
*/
// function processPassword(){
// var b = new Base64();
// var pw = document.getElementById('pwd');
// if(!pw.value){
// return;
// }
// var obj = {
// pwd : pw.value
// }
// var newPw = JSON.parse(JSON.stringify(obj)).pwd
// var str = b.encode(newPw);
// if(str.length>2){
// var lp = str.substr(0,2);
// var rp = str.substr(2,str.length);
// document.getElementById('pwdhidden').value = rp+lp;
// }
// }
/**
* 加密密码
* @returns
*/
var PUBLIC_KEY="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+TWzUflAOqz7cFOCe06IECO3Jq6kV5rPrVhhUbKHc5xqUr2ruW69UXCz3EOjFXhWf/Ubr2ysDexxV8lLP5kP9buk3Bvz+caepRR5K5DlBh8oF11AwlcGTSVetMrzm4nyDHVCq2pF7NeF/J/sFZr+tlU/xnI6blq+ZTlIIVubRkmsUttFQamX3L9ACUukaanHv9AFrTwPtzCb1wSULJCEgo32UKK2pBh5I0XxL8JoBP/PuBDSsVp/sysh9bPdptPGRE5DgqTQAk+rz25+1xTtlWyIIhpMCHpJXlIdDqVq8x9d3NsLGpVH7FYXiLiPil07h/KkPAM3pnUQUTQ7SI6YmQIDAQAB"
function processPassword(){
var pw;
if(localStorage.getItem('homeTemplateBoradType')=='rtpayTemplate'){
pw = document.getElementById('pwdRT');
}else{
pw = document.getElementById('pwd');
}
if(!pw.value){
return;
}
var obj = {
pwd : pw.value
}
var newPw = JSON.parse(JSON.stringify(obj)).pwd
var encrypt = new JSEncrypt();
encrypt.setPublicKey(PUBLIC_KEY);
var encrypted = encrypt.encrypt(newPw);
console.log(encrypted)
if(localStorage.getItem('homeTemplateBoradType')=='rtpayTemplate'){
document.getElementById('pwdhiddenRT').value=encrypted
}else{
document.getElementById('pwdhidden').value=encrypted
}
}
function Base64() {
// private property
_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
// public method for encoding
this.encode = function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = _utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
_keyStr.charAt(enc3) + _keyStr.charAt(enc4);
}
return output;
}
// public method for decoding
this.decode = function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = _keyStr.indexOf(input.charAt(i++));
enc2 = _keyStr.indexOf(input.charAt(i++));
enc3 = _keyStr.indexOf(input.charAt(i++));
enc4 = _keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = _utf8_decode(output);
return output;
}
// private method for UTF-8 encoding
_utf8_encode = function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
// private method for UTF-8 decoding
_utf8_decode = function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while ( i < utftext.length ) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
} else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}