【微信開發筆記】掃碼支付之二維碼的處理

yz-俞祥勝發表於2017-12-27

開發過3個微信公眾號,但是一直沒接觸到掃碼支付這一塊

第一步:微信統一下單介面,獲取到二維碼的字串,這裡簡稱 '二維碼憑證' (根據文件除錯介面,注意部分引數即可)

第二步:將二維碼顯示到前臺

    方案一:一個快捷的方式  http://qr.liantu.com/api.php?text='二維碼憑證'

    方案二:C# webform 及其他語言可以看靠官方提供的Demo 官方demo

    方案三:C# MVC 

       [HttpGet]
        public ActionResult AjaxGetQrCode(string codeurl)
        {
            //初始化二維碼生成工具  QRCodeEncoder 官方提供的dll,可以官方demo裡尋找
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            qrCodeEncoder.QRCodeVersion = 0;
            qrCodeEncoder.QRCodeScale = 4;

            //將字串生成二維碼圖片
            Bitmap image = qrCodeEncoder.Encode(codeurl, Encoding.Default);

            ////儲存為PNG到記憶體流  
            MemoryStream ms = new MemoryStream();
            image.Save(ms, ImageFormat.Png);

            //byte[] bytes = new byte[ms.Length];
            //ms.Read(bytes,0, bytes.Length);

            Graphics g = Graphics.FromImage(image);
            g.Clear(Color.White);
            g.FillRectangle(Brushes.Red, 2, 2, 65, 31);
            g.DrawString("", new Font("黑體", 15f), Brushes.Yellow, new PointF(5f, 5f));
 
            g.Dispose();
            image.Dispose();


            return File(ms.ToArray(), "image/jpeg");
        }


之前看到一些版本,是將二維碼儲存成圖片到本地,通過路徑來顯示,個人不建議這樣處理,可能是業務需要。





      


相關文章