如何生成一個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 傳回一個路徑儲存到資料庫友善檢視
這邊前端是小程式的(代碼如下)
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
需求
這次的客戶需求是:使用者釋出任務、如何才能通過平台将餘額轉出 類似于驗證碼 隻是這種二維碼 需要接單人和發單人一起配合才能結束,有一定的安全性,讓使用者自己掌握資金
思維
當釋出人釋出一個任務 同時生成一個二維碼 二維碼裡的資訊是唯一的憑證,當接單人完成接單時,需要去擷取釋出人的一個二維碼展示圖 隻有掃了二維碼展示圖 并且 二維碼圖裡的資料是沒有問題的 那麼 任務完成反之 任務失敗。