主要就是利用TOTP算法生成一个6位(默认)数字的一次性密码pin, 再由给定的32
位uid异或加密得到最终的code.
此工具暴露三个接口, 分别是
- secretKey的生成
- code生成
- code校验
当然,如果你对secretKey的生成有自己的一套生成算法也可以,看具体需求.
npm i offline-pay-code
# or
yarn add offline-pay-code
npm run test
const payCode = require('offline-pay-code')
const options = {
period: 30,
digits: 6,
algorithm: 'sha1',
}
const key = payCode.secretKey()
const uid = 212123456 //这只是一个范例
const code = payCode.getCode(key, uid, options)
// 验证
const verifyRet = payCode.verify(key, code, options)
// success: { code: 0, data: 212123456 }
// fail: { code: -1, msg: 'verify fail' }