@byzk/usbkey-request-base
v1.0.6
Published
博雅中科usbkey服务跨域解决方案
Downloads
17
Maintainers
Readme
博雅中科Usbkey服务对应的js调用方式,主要解决跨域问题并为集成客户端提供简单可靠的调用方式, 此库为请求解决的基础调用库.
目录
安装
示例
API简介
使用技巧
IE使用示例
其他
安装
浏览器中使用
<script src="http://raw.githack.com/SuLinXin66/bk-usbkey-request-base/master/dist/bk-usbkey-request-base-iife.min.js"></script>
注: 因本库采用es6 Promise对象, 如果要兼容IE系列浏览器请引用如下js来支持Promise对象
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script>
<script src="http://raw.githack.com/SuLinXin66/bk-usbkey-request-base/master/dist/bk-usbkey-request-base-iife-ie.min.js"></script>
npm中使用
npm install --save @byzk/usbkey-request-base
yarn中使用
yarn add @byzk/usbkey-request-base
示例
浏览器中使用示例
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script>
<script src="http://raw.githack.com/SuLinXin66/bk-usbkey-request-base/master/dist/bk-usbkey-request-base-iife-ie.min.js"></script>
<script>
bkUsbkeyReqBase([
{
url: "https://127.0.0.1:8000/api/EPSAPP_Initialize",
data: {
crosFlag: 1
},
nameSign: "test1",
timeOut: 3000
}
]).catch(function (err) {
console.log(err);
});
</script>
CommonJS规范中使用
const bkUsbkeyReqBase = require('@byzk/usbkey-request-base').default;
bkUsbkeyReqBase([
{
url: "https://127.0.0.1:8000/api/EPSAPP_Initialize",
data: {
crosFlag: 1
},
nameSign: "test1",
timeOut: 3000
}
]).then(data=>{
console.log(data);
}).catch(e=>{
console.log("出错了 => ", e.message);
})
ES6规范中使用
import bkUsbkeyReqBase from "@byzk/usbkey-request-base";
bkUsbkeyReqBase([
{
url: "https://127.0.0.1:8000/api/EPSAPP_Initialize",
data: {
crosFlag: 1
},
nameSign: "test1",
timeOut: 3000
}
]).then(data=>{
console.log(data);
}).catch(e=>{
console.log("出错了 => ", e.message);
})
API简介
请求方法
bkUsbkeyReqBase (params: CrossSendData | Array<CrossSendData>, errorJudgeFun?: (jsonData: any, strData: string) => boolean): Promise<CrossResponseMap<CrossResponse>> | null;
方法参数:
params: 请求参数
errorJudgeFun?: 错误判断方法, 传入usbkey响应数据,返回是否有错
方法返回值:
请求结果
发起请求到usbkey本地服务, 请求参数CrossSendData
请参考请求参数, 返回参数CrossResponse
请参考返回参数
请求参数
CrossRequestType
// 请求方式
type CrossRequestType = 'GET' | 'get' | 'POST' | 'post';
CrossSendData
// 请求发送数据
interface CrossSendData {
// 请求地址, 必选
url: string;
// 方法签名, 请求响应之后,从响应结果集中根据nameSign的值进行获取对应结果, 必选
nameSign: string;
// 超时时间, 默认5000(5s), 配置小于或者等于0则永不超时, 可选
timeOut?: number;
// 请求方式, 默认为post, 可选
method?: CrossRequestType;
}
响应参数
CrossResponseMap
// 响应结果集
interface CrossResponseMap<CrossResponse> {
// 集合长度
length: number;
// 集合内操作的方法签名(请求时传入的nameSign): 响应内容
[name: string]: CrossResponse;
}
CrossResponse
// 响应结果
interface CrossResponse {
// 请求时填写的nameSign
name: string;
// 响应的具体内容数据
data: CrossResponseData;
}
CrossResponseData
// 响应的具体数据
interface CrossResponseData {
// 试图将返回结果转换为一个对象, 如果转换失败,此项为 undefined
jsonData: object | undefined
// 响应的原始数据
strData: string | undefined
}
异常
CrossResponseErr
// 当响应处理错误时的错误数据
interface CrossResponseErr {
// 错误编码
code: string | number;
// 消息
message: string;
// 错误的方法签名
errNameSign?: string;
// 错误的Json数据
jsonData?: any;
// 错误的strData
strData?: any;
// 成功的条数
successLength?: number;
// 总共操作的条数
totalOperateLength?: number;
// 错误消息
msg?: string;
}
使用技巧
使用async/await
import bkUsbkeyReqBase from "@byzk/usbkey-request-base";
async function test(){
try {
const getCertResult = await bkUsbkeyReqBase({
url: "http://127.0.0.1/test/getCert",
nameSign: "getCert"
})
const certInfo = getCertResult["getCert"].data.jsonData.result;
const certInfoResult = await bkUsbkeyReqBase([
{
url: "http://127.0.0.1/test/getCertInfoByNo",
nameSign: "certNo",
data: {
certNo: 1
}
},
{
url: "http://127.0.0.1/test/getCertInfoByNo",
nameSign: "certStartTime",
data: {
certNo: 21
}
},
{
url: "http://127.0.0.1/test/getCertInfoByNo",
nameSign: "certEndTime",
data: {
certNo: 22
}
},
])
const certNo = certInfoResult["certNo"].data.jsonData.result;
const certStartTime = certInfoResult["certStartTime"].data.jsonData.result;
const certEndTime = certInfoResult["certEndTime"].data.jsonData.result;
console.log("证书数据 => ", certInfo);
console.log("证书序列号 => ", certNo);
console.log("证书有效期,开始时间 => ", certStartTime);
console.log("证书有效期,结束时间 => ", certEndTime);
} catch(e) {}
}
IE使用示例
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script>
<script type="text/javascript" src="http://raw.githack.com/SuLinXin66/bk-usbkey-request-base/master/dist/bk-usbkey-request-base-iife-ie.min.js"></script>
<script>
window.onload = function(){
bkUsbkeyReqBase({
url: "http://127.0.0.1/test/getCert",
nameSign: "getCert"
})["then"](function(data) {
console.log("getCert response data => ", data)
var certStr = data["getCert"].data.jsonData.result
bkUsbkeyReqBase([
{
url: "http://127.0.0.1/test/getCertInfoByNo",
nameSign: "certNo",
data: {
certNo: 1
}
},
{
url: "http://127.0.0.1/test/getCertInfoByNo",
nameSign: "certStartTime",
data: {
certNo: 21
}
},
{
url: "http://127.0.0.1/test/getCertInfoByNo",
nameSign: "certEndTime",
data: {
certNo: 22
}
}
])["then"](function(data){
// 正常返回
console.log(data);
var certNo = data["certNo"].data.jsonData.result;
var certStartTime = data["certStartTime"].data.jsonData.result;
var certEndTime = data["certEndTime"].data.jsonData.result;
console.log("证书数据 => ", certInfo);
console.log("证书序列号 => ", certNo);
console.log("证书有效期,开始时间 => ", certStartTime);
console.log("证书有效期,结束时间 => ", certEndTime);
})["catch"](function(e){
// 错误信息
console.log("出错了 => ", e.message);
})
})["catch"](function(e){
console.log("发生错误")
})
}
</script>
</head>
<body>
<h1>请打开开发者工具, 查看console结果</h1>
</body>
</html>
其他
API文档