如何生成一个QRCode(二维码)

1、实例

用户在接受一个订单时,我们数据库后台会记录一条数据,同时 在不同的项目和条件中,也需要一条数据的凭证,这篇文章为主题的就是 在用户生成一个订单时同同时生成一个二维码凭证。

上代码(后台)

 // GET: Home
        /// <summary>
        /// 生成QRcode 二维码
        ///订单id
        ///用户id
        /// </summary>
        /// <returns></returns>
        public string DownQRcode(string Task_id, string empid)
        {
            var Date = DateTime.Now;
            var ss = GetTimeStamp(Date);
            QRCodeEncoder endocder = new QRCodeEncoder();
            //背景颜色
            endocder.QRCodeBackgroundColor = System.Drawing.Color.White;
            //编码方式
            endocder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            //的宽度
            endocder.QRCodeScale = 10;
            //版本号
            endocder.QRCodeVersion = 5;
            //这里是二维码扫出来的值 验证凭证的方式
            var person = new { phone = Task_id, Name = ss, Gender = empid };
            //将json川做成二维码
            Bitmap bitmap = endocder.Encode(new JavaScriptSerializer().Serialize(person), System.Text.Encoding.UTF8);
            string strSaveDir = Request.MapPath("/QRcode/");	//保存路径
            //如果没有QRcode文件则创建
            if (!Directory.Exists(strSaveDir))
            {
                Directory.CreateDirectory(strSaveDir);
            }
            //定义格式和名称
            string strSavePath = Path.Combine(strSaveDir, person.Name + ".png");
            if (!System.IO.File.Exists(strSavePath))
            {
                bitmap.Save(strSavePath);
            }
            //返回QRcode路径
            return "QRcode/" + person.Name + ".png";
        }

调用DownQRcode 返回一个路径保存到数据库方便查看

在这里插入图片描述

这边前端是小程序的(代码如下)

 scancode: function(e){
    // 允许从相机和相册扫码
    console.log(e)
    wx.scanCode({
      success(res) {
        console.log(res.result);
        var obj1 = JSON.parse(res.result); //可用此方法来转换
        const user=wx.getStorageSync('Userinfo');	//用户信息
        console.log(obj1)
        //这里是判断扫描二维码出来的值和storage的值是否匹配
        if(obj1.Gender==user.id&&e.currentTarget.dataset.task==obj1.phone){
          wx.request({
            url: 'xxxxxxxxxxx',
            type:'post',
            data:{
              empid:user.id,
              Task_id:obj1.phone,
            },
            success:function(res){
              var data=res.data.Data;
              if(data.Code==1){
               wx.showToast({
                 title: "接单完成!",
                 icon: 'success',
                 duration: 2000//持续的时间
               })
              }else{
                wx.showToast({
                  title: data.Message,
                  icon: 'none',
                  duration: 2000//持续的时间
                })
              }
            }
          })
        }else{
          wx.showToast({
            title: '任务错误',
            icon: 'none',
            duration: 2000
          })
        }
      },
      fail: (res) =>{
        console.log(res);
        wx.showToast({
          title: '失败',
          icon: 'none',
          duration: 2000
        })
      }
    })
  },

以下html

<button class='deaBtn' bindtap='scancode' data-task="{{item.id}}">扫描二维码</button>

需求

这次的客户需求是:用户发布任务、如何才能通过平台将余额转出 类似于验证码 只是这种二维码 需要接单人和发单人一起配合才能结束,有一定的安全性,让用户自己掌握资金

思维

当发布人发布一个任务 同时生成一个二维码 二维码里的信息是唯一的凭证,当接单人完成接单时,需要去获取发布人的一个二维码展示图 只有扫了二维码展示图 并且 二维码图里的数据是没有问题的 那么 任务完成反之 任务失败。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值