yungou-pay
Version:
YunGou-Pay 基于微信/支付宝授权的服务商模式, 为个人(开发者、小微商户)实现便捷的支付接入服务
45 lines (38 loc) • 1.09 kB
JavaScript
const md5 = require('md5');
const QRCode = require('qrcode');
// 二维码内容并转为base64图片
const qrbase64 = async (qrdata = '') => {
const opts = {
errorCorrectionLevel: 'H',
margin: 1,
};
// qrdata 为native接口二维码内容 (eg. weixin://wxpay/bizpayurl?pr=jmmfbyN)
return QRCode.toDataURL(qrdata, opts)
}
// 所有字段 字典排序后计算md5 (注意:只有必传参数才参与签名!!!)
const sign = (params = {}, key = '') => {
if (!key) {
throw new Error(`app key is required`)
}
const keys = Object.keys(params).sort()
let s = ''
for (let k of keys) {
s += k + '=' + params[k] + '&'
}
s += 'key=' + key
return md5(s).toString().toUpperCase()
}
// 必填参数检查
const checkRequiredParams = (params) => {
for (let key in params) {
// 必填参数允许数字0
if (params[key] === 0) { continue }
if (!params[key]) {
throw new Error(`param ${key} is required`)
}
}
}
exports.md5 = md5
exports.sign = sign
exports.checkRequiredParams = checkRequiredParams
exports.qrbase64 = qrbase64