Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

WJBleAPI.js 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. "use strict";
  2. var _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
  3. return typeof e
  4. } : function(e) {
  5. return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" :
  6. typeof e
  7. },
  8. _WJService = require("./WJService.js"),
  9. _WJService2 = _interopRequireDefault(_WJService),
  10. _WJDataEncode = require("./WJDataEncode.js"),
  11. _WJDataEncode2 = _interopRequireDefault(_WJDataEncode),
  12. _WJDataInteract = require("./WJDataInteract.js"),
  13. _WJDataInteract2 = _interopRequireDefault(_WJDataInteract),
  14. _WJUtils = require("./WJUtils.js"),
  15. _WJUtils2 = _interopRequireDefault(_WJUtils),
  16. _WJDataAnalysis = require("./WJDataAnalysis.js"),
  17. _WJDataAnalysis2 = _interopRequireDefault(_WJDataAnalysis);
  18. function _interopRequireDefault(e) {
  19. return e && e.__esModule ? e : {
  20. default: e
  21. }
  22. }
  23. var connectedDeviceId, TAG_FUNCTION = "function",
  24. SDK_VERSION = "WJ_BLESDK_ZFB_SD_V1.0.1_20230112";
  25. function connectDevice(t) {
  26. _WJService2.default.reallyConnect(function(e) {
  27. console.log("连接结果:", e.err_msg), (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(e)
  28. })
  29. }
  30. function connectDevice2(e, t) {
  31. _WJService2.default._connectDevice(e, function(e) {
  32. console.log("连接结果:", e.err_msg), (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(e)
  33. })
  34. }
  35. function disconnectDevice(e, t) {
  36. _WJService2.default.reallyDisConnect(e, function(e) {
  37. console.log("断开结果:", e.err_msg), (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(e)
  38. })
  39. }
  40. function authOBU(e, t, a, d) {
  41. var i, s = {},
  42. n = e.length;
  43. n == t && 8 == a.length ? (t = "c5" + _WJUtils2.default.byte2hexStr(4 + parseInt(n / 2)) + e + a, n = _WJUtils2
  44. .default.getCMD_TYPE(), i = {}, e = "", 0 == n ? e = "84" : 1 == n && (e = "A2"), i = _WJDataEncode2.default
  45. .encode(t, "", e), _WJDataInteract2.default._StartSendData(i.serviceData.dataEncode, function(e) {
  46. 0 == e.serviceCode ? (i = _WJDataAnalysis2.default.analysisAuthOBU(e.serviceData.dataBuff), s.code =
  47. i.serviceCode, s.err_msg = i.serviceInfo, s.data = i.serviceData.dataBuff) : s = e, (
  48. void 0 === d ? "undefined" : _typeof(d)) == TAG_FUNCTION && d(s)
  49. })) : (s.serviceCode = -1, s.serviceInfo = "paramater is error!", (void 0 === d ? "undefined" : _typeof(
  50. d)) == TAG_FUNCTION && d(s))
  51. }
  52. function getActState(t) {
  53. var a, d = {},
  54. e = "",
  55. i = _WJUtils2.default.getCMD_TYPE();
  56. 0 == i ? e = "810100C6" : 1 == i && (e = "A501CB"), a = _WJDataEncode2.default.encode(e), _WJDataInteract2.default
  57. ._StartSendData(a.serviceData.dataEncode, function(e) {
  58. 0 == e.serviceCode ? (a = _WJDataAnalysis2.default.analysisGetActState(e.serviceData.dataBuff), d.code =
  59. a.serviceCode, d.err_msg = a.serviceInfo, d.data = a.serviceData.dataBuff) : d = e, (void 0 ===
  60. t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  61. })
  62. }
  63. function lightAct(e, t, a) {
  64. var d, i = {},
  65. s = "",
  66. n = "",
  67. o = _WJUtils2.default.getCMD_TYPE();
  68. 1 == e || 0 == e && 0 < t ? (t = _WJUtils2.default.byte2hexStr(t), n = 0 == e ? "C1" : "C2", d = {}, 0 == o ? s =
  69. "870200" + n + t : 1 == o && (s = "A2"), d = _WJDataEncode2.default.encode(s), _WJDataInteract2.default
  70. ._StartSendData(d.serviceData.dataEncode, function(e) {
  71. 0 == e.serviceCode ? (d = _WJDataAnalysis2.default.analysisLightAct(e.serviceData.dataBuff), i
  72. .code = d.serviceCode, i.err_msg = d.serviceInfo, i.data = d.serviceData.dataBuff) : i = e,
  73. (void 0 === a ? "undefined" : _typeof(a)) == TAG_FUNCTION && a(i)
  74. })) : (i.serviceCode = -1, i.serviceInfo = "paramater is error", (void 0 === a ? "undefined" : _typeof(
  75. a)) == TAG_FUNCTION && a(i))
  76. }
  77. function upNewPipe(e, t) {
  78. var a, d = {},
  79. i = "",
  80. s = _WJUtils2.default.getCMD_TYPE(); - 1 < e ? (e = _WJUtils2.default.byte2hexStr(e), a = {}, 0 == s ? i =
  81. "810200C7" + e : 1 == s && (i = "A2"), a = _WJDataEncode2.default.encode(i), _WJDataInteract2.default
  82. ._StartSendData(a.serviceData.dataEncode, function(e) {
  83. 0 == e.serviceCode ? (a = _WJDataAnalysis2.default.analysisUpNewPipe(e.serviceData.dataBuff), d
  84. .code = a.serviceCode, d.err_msg = a.serviceInfo, d.data = a.serviceData.dataBuff) : d = e,
  85. (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  86. })) : (d.serviceCode = -1, d.serviceInfo = "paramater is error", (void 0 === t ? "undefined" : _typeof(
  87. t)) == TAG_FUNCTION && t(d))
  88. }
  89. function transCmd(e, t, a, d) {
  90. var i, s = {};
  91. "10" == t || "20" == t || "30" == t || "00" == t ? (i = {}, i = _WJDataEncode2.default.encode(e, t, a),
  92. _WJDataInteract2.default._StartSendData(i.serviceData.dataEncode, function(e) {
  93. 0 == e.serviceCode ? (_WJUtils2.default.showLog("APDU透传指令成功"), s.code = 0, s.err_msg =
  94. "transcmd success", s.data = e.serviceData.dataBuff) : (s.err_msg = e.serviceInfo, s.code =
  95. e.serviceCode), (void 0 === d ? "undefined" : _typeof(d)) == TAG_FUNCTION && d(s)
  96. })) : (s.code = -1, s.msg = "cmdtype参数错误!", (void 0 === d ? "undefined" : _typeof(d)) == TAG_FUNCTION && d(
  97. s))
  98. }
  99. function initIC(t) {
  100. var a, d = {},
  101. e = "",
  102. i = _WJUtils2.default.getCMD_TYPE();
  103. 0 == i ? e = "80" : 1 == i && (e = "A9"), a = _WJDataEncode2.default.encode(e), _WJDataInteract2.default
  104. ._StartSendData(a.serviceData.dataEncode, function(e) {
  105. 0 == e.serviceCode ? (a = _WJDataAnalysis2.default.analysisinitIC(e.serviceData.dataBuff), d.code = a
  106. .serviceCode, d.err_msg = a.serviceInfo, d.data = a.serviceData.dataBuff) : (d.code = e
  107. .serviceCode, d.err_msg = e.serviceInfo), (void 0 === t ? "undefined" : _typeof(t)) ==
  108. TAG_FUNCTION && t(d)
  109. })
  110. }
  111. function getDeviceInfo(e, t) {
  112. var a, d = {},
  113. i = "",
  114. s = _WJUtils2.default.getCMD_TYPE();
  115. 0 == s ? i = "810100" + e : 1 == s && (i = "A501" + e), a = _WJDataEncode2.default.encode(i), _WJDataInteract2
  116. .default._StartSendData(a.serviceData.dataEncode, function(e) {
  117. 0 == e.serviceCode ? (_WJUtils2.default.showLog("获取设备信息成功"), a = _WJDataAnalysis2.default
  118. .analysisDeviceInfo(e.serviceData.dataBuff), d.err_msg = "获取设备信息成功", d.code = a.serviceCode, d
  119. .data = a.serviceData) : (d.code = e.serviceCode, d.err_msg = e.serviceInfo), (void 0 === t ?
  120. "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  121. })
  122. }
  123. function selectDir(t, e, a) {
  124. var d, i, s, n, o = {};
  125. 4 == t.length && "10" == e || "20" == e || "00" == e ? (i = "010700A4000002" + t, e = e, s = "", 1 == _WJUtils2
  126. .default.getTRANSFER_TYPE() && (i = _WJUtils2.default.TPDU2APDU(i)), 0 == (n = _WJUtils2.default
  127. .getCMD_TYPE()) ? s = "82" : 1 == n && (s = "AC"), this.transCmd(i, e, s, function(e) {
  128. 0 == e.code ? (console.log(e.data), _WJUtils2.default.showLog("transCmd success", e.data), d =
  129. _WJDataAnalysis2.default._analysisIs9000(e.data), console.log(d), o.code = d.serviceCode,
  130. 0 == d.serviceCode ? (_WJUtils2.default.showLog("进 " + t + " 目录成功"), o.err_msg = "进" + t +
  131. "目录成功") : (_WJUtils2.default.showLog("进 " + t + " 目录失败"), o.err_msg = "进" + t + "目录失败")
  132. ) : o = e, (void 0 === a ? "undefined" : _typeof(a)) == TAG_FUNCTION && a(o)
  133. })) : (o.code = -1, o.err_msg = "参数长度有误", (void 0 === a ? "undefined" : _typeof(a)) == TAG_FUNCTION && a(o))
  134. }
  135. function getCardInfo(t) {
  136. var a, d = {},
  137. e = "010500B095002B0205805C000204",
  138. i = "",
  139. s = "",
  140. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), _WJUtils2.default
  141. .getCMD_TYPE());
  142. 0 == n ? (i = "10", s = "82") : 1 == n && (i = "00", s = "A3"), this.transCmd(e, i, s, function(e) {
  143. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  144. .analysisCardInfo(e.data), d.code = a.serviceCode, d.err_msg = "获取卡片信息成功", d.data = a
  145. .serviceData) : d = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  146. })
  147. }
  148. function readCardOwnerRecord(t) {
  149. var a, d = {},
  150. e = "010500B0960037",
  151. i = "",
  152. s = "",
  153. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), _WJUtils2.default
  154. .getCMD_TYPE());
  155. 0 == n ? (i = "10", s = "82") : 1 == n && (i = "00", s = "A3"), this.transCmd(e, i, s, function(e) {
  156. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  157. .analysisCardOwnerRecord(e.data), d.code = a.serviceCode, d.err_msg = "获取持卡人信息成功", d.data = a
  158. .serviceData) : d = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  159. })
  160. }
  161. function readCardTransactionRecord(e, t) {
  162. var a, d = {},
  163. e = "010500B2" + _WJUtils2.default.byte2hexStr(e) + "C400",
  164. i = "",
  165. s = "",
  166. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), _WJUtils2.default
  167. .getCMD_TYPE());
  168. 0 == n ? (i = "10", s = "82") : 1 == n && (i = "00", s = "A3"), this.transCmd(e, i, s, function(e) {
  169. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  170. .analysisCardTransactionRecord(e.data), d.code = a.serviceCode, d.err_msg = "获取交易记录信息成功", d
  171. .data = a.serviceData) : d = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(
  172. d)
  173. })
  174. }
  175. function authPIN(e, t) {
  176. var a, d, i, s, n = {};
  177. e.length % 2 == 0 && 6 <= e.length && e.length <= 12 ? (d = _WJUtils2.default.byte2hexStr(parseInt(e.length / 2)),
  178. d = "01" + _WJUtils2.default.byte2hexStr(5 + parseInt(e.length / 2)) + "00200000" + d + e, i = e = "", 1 ==
  179. _WJUtils2.default.getTRANSFER_TYPE() && (d = _WJUtils2.default.TPDU2APDU(d)), 0 == (s = _WJUtils2.default
  180. .getCMD_TYPE()) ? (e = "10", i = "82") : 1 == s && (e = "00", i = "A3"), this.transCmd(d, e, i,
  181. function(e) {
  182. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  183. ._analysisIs9000(e.data), n.code = a.serviceCode, 0 == n.code ? (_WJUtils2.default.showLog(
  184. "PIN认证成功"), n.err_msg = "PIN认证成功") : (_WJUtils2.default.showLog("PIN认证失败"), n.err_msg =
  185. "PIN认证失败")) : n = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(n)
  186. })) : (n.code = -1, n.err_msg = "参数长度有误", (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION &&
  187. t(n))
  188. }
  189. function initLoadCreadit(e, t, a, d, i, s) {
  190. var n, o, r = {};
  191. null != e && null != t && null != a && null != d && null != i ? 12 == a.length && 2 == d.length && 2 == i.length ? (
  192. e = new ArrayBuffer(4), (o = new DataView(e)).setInt8(0, t >> 24 & 255), o.setInt8(1, t >> 16 & 255), o
  193. .setInt8(2, t >> 8 & 255), o.setInt8(3, t >> 0 & 255), o = "0110805000" + d + "0B" + i + _WJUtils2.default
  194. .byteArray2hexStr(e) + a, d = t = "", 1 == _WJUtils2.default.getTRANSFER_TYPE() && (o = _WJUtils2.default
  195. .TPDU2APDU(o)), 0 == (i = _WJUtils2.default.getCMD_TYPE()) ? (t = "10", d = "82") : 1 == i && (t = "00",
  196. d = "A3"), this.transCmd(o, t, d, function(e) {
  197. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), n = _WJDataAnalysis2.default
  198. .analysisInitInfo(e.data), r.code = n.serviceCode, r.err_msg = "圈存初始化成功", r.data = n
  199. .serviceData) : r = e, (void 0 === s ? "undefined" : _typeof(s)) == TAG_FUNCTION && s(r)
  200. })) : (r.code = -2, r.err_msg = "参数长度有误!", (void 0 === s ? "undefined" : _typeof(s)) == TAG_FUNCTION && s(
  201. r)) : (r.code = -1, r.err_msg = "参数有空!", (void 0 === s ? "undefined" : _typeof(s)) == TAG_FUNCTION && s(r))
  202. }
  203. function loadCreadit(e, t) {
  204. var a, d, i, s, n = {};
  205. null != e && 22 == e.length ? (e = "0111805200000B" + e + "04", i = d = "", 1 == _WJUtils2.default
  206. .getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), 0 == (s = _WJUtils2.default.getCMD_TYPE()) ? (
  207. d = "10", i = "82") : 1 == s && (d = "00", i = "A3"), this.transCmd(e, d, i, function(e) {
  208. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  209. .analysisLoadCreadit(e.data), n.code = a.serviceCode, n.err_msg = "圈存成功", n.data = a
  210. .serviceData) : n = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(n)
  211. })) : (n.code = -1, n.err_msg = "获取圈存指令失败:参数null或长度有误", (void 0 === t ? "undefined" : _typeof(t)) ==
  212. TAG_FUNCTION && t(n))
  213. }
  214. function getObuSysInfo(t) {
  215. var a, d = {},
  216. e = "010500B081001B",
  217. i = "",
  218. s = "",
  219. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), _WJUtils2.default
  220. .getCMD_TYPE());
  221. 0 == n ? (i = "20", s = "82") : 1 == n && (i = "00", s = "AC"), this.transCmd(e, i, s, function(e) {
  222. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  223. .analysisgetObuSysInfo(e.data), d.code = a.serviceCode, d.err_msg = "获取系统信息成功", d.data = a
  224. .serviceData) : d = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  225. })
  226. }
  227. function getRand(e, t) {
  228. var a, d = {},
  229. i = "01050084000004",
  230. s = "",
  231. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (i = _WJUtils2.default.TPDU2APDU(i)), _WJUtils2.default
  232. .getCMD_TYPE());
  233. 0 == n ? s = "82" : 1 == n && (s = "AC"), this.transCmd(i, e, s, function(e) {
  234. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  235. .analysisGetRand(e.data), d.code = a.serviceCode, d.err_msg = "获取随机数成功", d.data = a.serviceData
  236. ) : d = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  237. })
  238. }
  239. function writeOBUInfo(e, t) {
  240. var a, d, i, s, n = {};
  241. null != e && e.length % 2 == 0 ? (e = "01" + _WJUtils2.default.byte2hexStr(parseInt(e.length / 2)) + e, i = d = "",
  242. 1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), 0 == (s = _WJUtils2
  243. .default.getCMD_TYPE()) ? (d = "20", i = "82") : 1 == s && (d = "00", i = "A0"), this.transCmd(e, d, i,
  244. function(e) {
  245. 0 == e.serviceCode ? (a = _WJDataAnalysis2.default._analysisIs9000(e.data), n.code = a.serviceCode,
  246. 0 == n.serviceCode ? (_WJUtils2.default.showLog("写OBU信息成功"), n.err_msg = "写OBU信息成功") : (
  247. _WJUtils2.default.showLog("写OBU信息失败"), n.err_msg = "写OBU信息失败")) : n = e, (void 0 === t ?
  248. "undefined" : _typeof(t)) == TAG_FUNCTION && t(n)
  249. })) : (n.code = -1, n.err_msg = "参数错误", (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(
  250. n))
  251. }
  252. function writeObuIssueSpecial(t) {
  253. var a, d = {},
  254. e = "01050059000001",
  255. i = "",
  256. s = "",
  257. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), _WJUtils2.default
  258. .getCMD_TYPE());
  259. 0 == n ? (i = "20", s = "82") : 1 == n && (i = "00", s = "A0"), this.transCmd(e, i, s, function(e) {
  260. 0 == e.code ? (a = _WJDataAnalysis2.default._analysisIs9000(e.data), d.code = a.serviceCode, 0 == d
  261. .serviceCode ? (_WJUtils2.default.showLog("写OBU信息成功"), d.err_msg = "写OBU信息成功") : (_WJUtils2
  262. .default.showLog("写OBU信息失败"), d.err_msg = "写OBU信息失败")) : d = e, (void 0 === t ?
  263. "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  264. })
  265. }
  266. function writeICInfo(e, t) {
  267. var a, d, i, s, n = {};
  268. null != e && e.length % 2 == 0 ? (e = "01" + _WJUtils2.default.byte2hexStr(parseInt(e.length / 2)) + e, i = d = "",
  269. 1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), 0 == (s = _WJUtils2
  270. .default.getCMD_TYPE()) ? (d = "10", i = "82") : 1 == s && (d = "00", i = "A3"), this.transCmd(e, d, i,
  271. function(e) {
  272. 0 == e.code ? (a = _WJDataAnalysis2.default._analysisIs9000(e.data), n.code = a.serviceCode, 0 == n
  273. .serviceCode ? (_WJUtils2.default.showLog("写IC信息成功"), n.err_msg = "写IC信息成功") : (_WJUtils2
  274. .default.showLog("写IC信息失败"), n.err_msg = "写IC信息失败")) : n = e, (void 0 === t ?
  275. "undefined" : _typeof(t)) == TAG_FUNCTION && t(n)
  276. })) : (n.code = -1, n.err_msg = "参数错误", (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(
  277. n))
  278. }
  279. module.exports = {
  280. connectDevice: connectDevice,
  281. connectDevice2: connectDevice2,
  282. disconnectDevice: disconnectDevice,
  283. transCmd: transCmd,
  284. getDeviceInfo: getDeviceInfo,
  285. getCardInfo: getCardInfo,
  286. selectDir: selectDir,
  287. getObuSysInfo: getObuSysInfo,
  288. getRand: getRand,
  289. authPIN: authPIN,
  290. initLoadCreadit: initLoadCreadit,
  291. loadCreadit: loadCreadit,
  292. writeOBUInfo: writeOBUInfo,
  293. writeICInfo: writeICInfo,
  294. readCardOwnerRecord: readCardOwnerRecord,
  295. readCardTransactionRecord: readCardTransactionRecord,
  296. initIC: initIC,
  297. authOBU: authOBU,
  298. upNewPipe: upNewPipe,
  299. lightAct: lightAct,
  300. getActState: getActState
  301. };