UNPKG

bankcard-reader

Version:
13 lines (11 loc) 1.43 kB
/** * bankcard-reader * 高拍仪读取银行卡 * * @version 1.0.1 * @author waiting * @license MIT * @link https://github.com/waitingsong/node-bankcard-reader#readme */ import{DTypes as r}from"win32-def";import{parseDeviceOpts as t}from"@waiting/bankcard-reader-base";export{initialOpts}from"@waiting/bankcard-reader-base";import{info as e}from"@waiting/log";import{validateDllFile as n,setPathDirectory as a}from"@waiting/shared-core";import{Library as o}from"ffi";const c={JC_GetBankNumber:[r.INT,[r.POINT]],FJ_GetBankNumber:[r.INT,[r.POINT]]};function i(r,t){const e=[],n={apib:t,deviceOpts:r,inUse:!1,openPort:0};return e.push(n),e}function u(r){const t=Buffer.alloc(64);return r.apib.FJ_GetBankNumber(t),d(t)}function f(r){const t=Buffer.alloc(64);return r.apib.JC_GetBankNumber(t),d(t)}function d(r){return r.toString("utf8").trim().replace(/\0+$/g,"")}async function s(r){const u=t(r),{debug:f}=u;f&&e(u),await n(u.dllTxt),u.dllSearchPath&&a(u.dllSearchPath);const d=o(u.dllTxt,c),s=i(u,d);if(s&&s.length)return s;throw new Error("未找到读卡设备")}function l(r){const t={cardno:""};try{switch(r.deviceOpts.cardType){case"fj":t.cardno=u(r);break;case"jc":t.cardno=f(r);break;case"auto":t.cardno=u(r)||f(r)||"";break;default:throw new Error("cardType invalid, Should be auto|fj|jc ")}}catch(r){t.cardno=""}return Promise.resolve(t)}export{s as init,l as read}; //# sourceMappingURL=index.esm.min.js.map