天天看點

如何生成一個QRCode(二維碼)1、執行個體

如何生成一個QRCode(二維碼)

  • 1、執行個體
    • 上代碼(背景)
    • 調用DownQRcode 傳回一個路徑儲存到資料庫友善檢視
    • 這邊前端是小程式的(代碼如下)
    • 以下html
    • 需求
    • 思維

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 傳回一個路徑儲存到資料庫友善檢視

如何生成一個QRCode(二維碼)1、執行個體

這邊前端是小程式的(代碼如下)

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

需求

這次的客戶需求是:使用者釋出任務、如何才能通過平台将餘額轉出 類似于驗證碼 隻是這種二維碼 需要接單人和發單人一起配合才能結束,有一定的安全性,讓使用者自己掌握資金

思維

當釋出人釋出一個任務 同時生成一個二維碼 二維碼裡的資訊是唯一的憑證,當接單人完成接單時,需要去擷取釋出人的一個二維碼展示圖 隻有掃了二維碼展示圖 并且 二維碼圖裡的資料是沒有問題的 那麼 任務完成反之 任務失敗。

繼續閱讀