1. 程式人生 > 其它 >公眾號H5網頁中顯示使用者二維碼,VFP做起來也不難,二套方案都可以

公眾號H5網頁中顯示使用者二維碼,VFP做起來也不難,二套方案都可以

社群裡面的劉總有一套超市管理系統,現在想要將使用者的餘額和積分顯示出來,方案是採用微信公眾號的方式,然後我就讓美工做了一個設計圖
.

其中二維碼和一維碼的顯示方案其實值得討論一下

  1. 方案一:前端顯示
    2 方案二:後端顯示

前端生成一維碼和二維碼方案

前端顯示的方式就是後端傳送會員卡號等資訊JSON到前端,JS運算之生成二維碼,一維碼。

可以利用QRCode.js來生成二維碼

<div id="qrcode"></div>
<script type="text/javascript">
new QRCode(document.getElementById("qrcode"), "http://www.sn58.cn");  // 設定要生成二維碼的連結
</script>

也有一些可選的引數

var qrcode = new QRCode("test", {
    text: "http://www.sn58.cn",
    width: 128,
    height: 128,
    colorDark : "#000000",
    colorLight : "#ffffff",
    correctLevel : QRCode.CorrectLevel.H
});

也可以重新清除再生成

qrcode.clear(); // 清除程式碼
qrcode.makeCode("http://www.mzvfp.com"); // 生成另外一個二維碼

利用JsBarCode生成一維碼

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no" />
 <title></title>
 <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
 <script type="text/javascript" src="js/JsBarcode.all.js"></script>
 </head>
 <body>
 <svg id="svgcode"></svg>
 <!-- or -->
 <canvas id="canvascode"></canvas>
 <!-- or -->
 <img id="imgcode" />
 <script>
  $("#svgcode").JsBarcode('Hi!');//or JsBarcode("#svgcode", "Hi!");
  $("#canvascode").JsBarcode('Hello world!');//or JsBarcode("#canvascode", "Hello world!");
  $("#imgcode").JsBarcode("I'm huangenai!");//or JsBarcode("#imgcode", "I'm bwju!");
 </script>
 </body>
</html>

VFP後端生成一維和二維碼圖片供前端顯示

VFP後端使用foxbarcodeqr生成二維碼

貓貓在這是是生成了圖

   m.loFbc = newobject("FoxBarcodeQR","FoxBarcodeQR.prg")
   m.lcQRImage = m.loFbc.QRBarcodeImage("123456","QR.png" , 6, 2)

VFP後端使用foxbarcode生成一維碼

  SET PROCEDURE TO Foxbarcode, gpImage2 ADDITIVE
  * 生成一個Code 128的條碼物件
  loInStock = CREATEOBJECT("FoxBarCode")
  loInStock.nBarCodeType = 110 && Code 128
  loInStock.nFactor = 1
  loInStock.nImageHeight = 60 && in pixels
  loInStock.nFontSize = 16    &&字型尺寸
  loInStock.lFontBold = .T.   &&字型是否加粗
  loInStock.nAlignText = 1    &&排列0=靠左,1=居中,2=靠右
  loInStock.lShowHumanReadableText =.f. &&不顯示下方文字
  loInStock.cImageType = IIF(VERSION(5) > 600, "PNG", "JPG")   &&圖片檔案型別 
  loInStock.barcodeimage(cmycode,"ywcode.png")

前端頁面引用這個圖片 vue前端框架
插入一個img標籤,繫結一下scr屬性

<img :src="ywcode" alt="" style="width:100%;height:100px" >
<img :src="qrcode" alt="" style="width:200px">	
that.qrcode="hyimg/"+odata.rows[0].kh_sj+","+odata.rows[0].hy_kh+"QR.png";that.ywcode="hyimg/"+odata.rows[0].kh_sj+","+odata.rows[0].hy_kh+".png";

因為每個使用者的ID是唯一的,所以生成的圖片其實也是唯一的,所以二維碼圖片只需要生成一次,那麼大家想好的怎麼只生成一次。
後端生成圖片的方案,圖片是存放在後端伺服器上的,如果使用者量大,可以將圖片託管到騰迅雲、阿里雲、七牛雲,用上CDN加速,那加速效果槓槓的。

本文所用的庫和程式碼,可以關注“加菲貓的VFP”公眾號,傳送“二維碼”三個字,即可以獲取。

VFP祺佑三層開發框架,是VFP界第一款可以應用於開發CS、BS、APP、小程式、公眾號的全功能開發框架。瞭解更多,請訪問http://www.sn58.cn