概述
需求:
- 用户端:根据用户支付成功的订单商品,生成核销二维码
- 店员端:扫描客户的二维码,获取二维码信息,验证判断二维码是否正确,根据二维码信息,获取用户 信息,完成核销功能
步骤
1.对用户订单号进行加密加钥处理
2.利用QRcode
生成二维码
3.使用uni.scanCode
获取二维码信息
4.对信息进行解密,判断是否正确
源码
导入qrcode.js
import qrCode from "../../common/weapp-qrcode.js";
对信息加密加钥,保存信息使用qrcode生成二维码
this.$refs.writeoff.open()
let key = '13_9993wp_s#a52dx1p_'; //请勿随意修改
let data = key + this.UserInfo.member_id.toString(),
width = 330 / 750 * wx.getSystemInfoSync().windowWidth,
height = 330 / 750 * wx.getSystemInfoSync().windowWidth,
code = new Buffer(data).toString('base64');
console.log('code', code)
let QRcode = new qrCode('couponQrcode_0', {
render: 'canvas',
text: code,
width: width,
height: height,
colorDark: "#000000",
colorLight: "#ffffff",
correctLevel: qrCode.CorrectLevel.H
})
uni.hideTabBar({
animation: true
});
setTimeout(() => {
this.BillCode = true
}, 390)
效果图
扫码
对信息解密,判断二维码是否正确,
uni.scanCode({
onlyFromCamera: true,
success: function(res) {
setTimeout(() => {
uni.hideLoading();
let data = res.result.toString(),
MaskData = new Buffer(data, 'base64').toString('utf8'),
arrayresult = MaskData.toString().split('_');
if (res.result.toString().length > 0 && arrayresult.length > 0 &&
arrayresult[2] === 's#a52dx1p') {
let memberId = arrayresult[3]
uni.navigateTo({
url: `../Mineday/billingCode?memberInfo=${memberId}`
})
} else if (arrayresult[1] == 'Rts') {
uni.showToast({
title: "请出示开单码",
icon: "error",
duration: 2500
})
} else {
uni.showToast({
title: "二维码错误",
icon: "error",
duration: 2500
})
}
}, 1000)
},
fail: function(error) {
setTimeout(() => {
uni.hideLoading();
}, 20)
},
complete: function(res) {
uni.showLoading({
title: '识别中...',
mask: true,
});
},
})
最后
以上就是认真店员为你收集整理的生成订单核销二维码,扫码完成核销的全部内容,希望文章能够帮你解决生成订单核销二维码,扫码完成核销所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复