国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C#動態(tài)生成帶參數(shù)的小程序二維碼

這篇具有很好參考價值的文章主要介紹了C#動態(tài)生成帶參數(shù)的小程序二維碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?

應用場景

在微信小程序管理后臺,我們可以生成下載標準的小程序二維碼,提供主程序入口功能。在實際應用開發(fā)中,小程序二維碼是可以攜帶參數(shù)的,可以動態(tài)進行生成,如如下場景:

1、不同參數(shù)決定的顯示界面不同。

2、不同參數(shù)決定的功能不同。

3、由于小程序審核機制,我們將不同的應用集成在一個小程序里,通過不同的參數(shù)進行入口控制。

關鍵代碼

操作界面

我們以一種驗證、綁定手機的小程序功能為例,該小程序可以生成動態(tài)校驗碼,以實現(xiàn)實際業(yè)務應用的其它場景。界面中我們設計了提示信息Label,生成按鈕 Button 和掃碼圖片 Image 等Asp.net控件。

示例界面如下,通過點擊按鈕,動態(tài)生成二維碼圖片,該參數(shù)將引導用戶進入動態(tài)碼生成功能:

??

示例UI代碼如下:

<div class="user-box">
            <span>驗證手機</span><br>
            <br>
            <div class="query-box">
                <label>
                    掃描二維碼獲取動態(tài)校驗碼</label>
                <br>
                <label>
                    建議您PC注冊,如果微信,可常按并選擇前往圖中包含的小程序打開(某些手機系統(tǒng)可能不支持此操作)</label></div>
            <br>
            <br>
            <asp:Button ID="createCode" Text="新注冊或換手機號點這里生成以獲取動態(tài)校驗碼" Visible="true" CssClass="form-control"
                runat="server" OnClick="createCode_Click"></asp:Button>
        </div>
        <div class="user-box" id="ecodepanel" align="center" visible="false" runat="server">
            <br />
            <asp:Image ID="ecode" Width="200px" Height="200px" Visible="false" runat="server"></asp:Image>
            <br>
            <span style='color: silver'></span>
            <br>
            <br>
        </div>

服務端點擊事件

點擊按鈕,通過設置參數(shù)值,并訪問騰訊API,生成小程序二維碼,轉換為圖片BASE64編碼,如果生成成功則顯示在Image控件里,點擊事件的,示例代碼如下:

protected void createCode_Click(object sender, EventArgs e)
    {
        string paras = "reqvmobile";    //參數(shù)值設置
                //可以更改小程序二維碼的色系
        int r = 4;
        int g = 128;
        int b = 188;
        ecode.ImageUrl = getBase64(255, r, g, b);   //將生成成功的BASE64編碼賦值給Image控件
        ecode.Visible = true;
        ecodepanel.Visible = true;
    }
    //獲取小程序二維碼圖片的 Base64值 
    string getBase64(string paras, int width, int linecolor_R, int linecolor_G, int linecolor_B)
    {
        string desimg = Request.PhysicalApplicationPath + "\\app_data\\" + System.Guid.NewGuid().ToString() + ".jpg";  //目標圖片臨時路徑
                //生成二維碼圖片文件
        System.IO.File.WriteAllBytes(desimg, getMpBuffer(wxmp_accesstoken, paras, width, linecolor_R, linecolor_G, linecolor_B));
        string base64 = ImgToBase64String(desimg, true);
        System.IO.File.Delete(desimg);  //刪除臨時文件
        return base64;
    }

//圖片轉BASE64方法
public string ImgToBase64String(string Imagefilename,bool outFullString=false)
            {
                try
                {
                    System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(Imagefilename);

                    MemoryStream ms = new MemoryStream();
                    //            bmp.Save(ms,ImageFormat.Jpeg)
                    System.Drawing.Imaging.ImageFormat iformat = System.Drawing.Imaging.ImageFormat.Jpeg;
                    string extension = System.IO.Path.GetExtension(Imagefilename).Replace(".", "").ToLower();
                    if (extension == "bmp")
                    {
                        iformat = System.Drawing.Imaging.ImageFormat.Bmp;
                    }
                    else if (extension == "emf")
                    {
                        iformat = System.Drawing.Imaging.ImageFormat.Emf;
                    }
                    else if (extension == "exif")
                    {
                        iformat = System.Drawing.Imaging.ImageFormat.Exif;
                    }
                    else if (extension == "gif")
                    {
                        iformat = System.Drawing.Imaging.ImageFormat.Gif;
                    }
                    else if (extension == "icon")
                    {
                        iformat = System.Drawing.Imaging.ImageFormat.Icon;
                    }
                    else if (extension == "png")
                    {
                        iformat = System.Drawing.Imaging.ImageFormat.Png;
                    }
                    else if (extension == "tiff")
                    {
                        iformat = System.Drawing.Imaging.ImageFormat.Tiff;
                    }
                    else if (extension == "wmf")
                    {
                        iformat = System.Drawing.Imaging.ImageFormat.Wmf;
                    }

                    bmp.Save(ms, iformat);
                    byte[] arr = new byte[ms.Length];
                    ms.Position = 0;
                    ms.Read(arr, 0, (int)ms.Length);
                    ms.Close();
                    bmp.Dispose();
                    string rv=Convert.ToBase64String(arr);
                    if (outFullString == true)
                    {
                        rv = "data:image/" + extension + ";base64," + rv;
                    }
                    return rv;
                }
                catch (Exception ex)
                {
                    return null;
                }
            }

?

生成小程序二維碼

getMpBuffer(wxmp_accesstoken, paras, width, linecolor_R, linecolor_G, linecolor_B)方法返回byte[]類型,參數(shù)需要傳遞通過小程序Appid和AppSecret生成的合法令牌值;動態(tài)參數(shù)值;圖像寬度;R/G/B的色系值。

方法代碼如下:

public byte[] getMpBuffer(string access_token, string scene, int width, int linecolor_R, int linecolor_G, int linecolor_B)
        {
            var url = string.Format("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={0}", access_token);
            var postData = "{\"scene\":\"" + scene + "\",\"width\":" + width.ToString() + ",\"line_color\":{\"r\":" + linecolor_R.ToString() + ",\"g\":" + linecolor_G.ToString() + ",\"b\":" + linecolor_B.ToString() + "}}";
            
            System.Net.HttpWebRequest request;
            request = (System.Net.HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/json;charset=UTF-8";
            byte[] payload;
            payload = System.Text.Encoding.UTF8.GetBytes(postData);
            request.ContentLength = payload.Length;
            Stream writer = request.GetRequestStream();
            writer.Write(payload, 0, payload.Length);
            writer.Close();
            System.Net.HttpWebResponse response;
            response = (System.Net.HttpWebResponse)request.GetResponse();
            System.IO.Stream stream;
            stream = response.GetResponseStream();
            List<byte> bytes = new List<byte>();
            int temp = stream.ReadByte();
            while (temp != -1)
            {
                bytes.Add((byte)temp);
                temp = stream.ReadByte();
            }
            byte[] result = bytes.ToArray();
            return result;
        }

小結

最初我們設計的目標是用小程序實現(xiàn)一對一視頻面試的功能,對于查詢出來的記錄,為考生和考官生成不同帶參數(shù)的小程序二維碼,并進入不同的功能。后來由于集成了一些相關的功能應用,通過動態(tài)參數(shù)以決定不同的入口,以避免申請過多的小程序應用,達到降低費用成本、維護成本的目的。

以上就是自己的一些分享,時間倉促,不妥之處還請大家批評指正!文章來源地址http://www.zghlxwxcb.cn/news/detail-760160.html

到了這里,關于C#動態(tài)生成帶參數(shù)的小程序二維碼的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 微信小程序生成攜帶參數(shù)的二維碼

    微信小程序生成攜帶參數(shù)的二維碼

    當對需求的時候發(fā)現(xiàn) 要完成一個永久二維碼直接進入微信小程序的對應頁面+對應IID參數(shù) 不要慌 這篇文章解決 滿足生成需要 微信官方提供生成微信二維碼 可滿足大部分功能 獲取不限制的小程序碼 | 微信開放文檔 可以看到官方文檔有3種二維碼的樣式 我們這里以第一種的小

    2024年02月09日
    瀏覽(91)
  • 微信小程序生成帶動態(tài)參數(shù)二維碼

    微信小程序生成帶動態(tài)參數(shù)二維碼

    首先說一下我的使用場景,用戶可根據id生成這一條記錄的二維碼,其他人掃碼直接跳轉到小程序,顯示這條記錄的具體信息。 分兩步:第一在微信公眾號后臺配置,第二利用canvas前端實現(xiàn)二維碼展示,并接收參數(shù)做下一步處理。 登錄微信公眾平臺,依次點擊開發(fā)管理 - 開發(fā)

    2024年02月11日
    瀏覽(27)
  • 小程序將本頁面生成二維碼,二維碼掃碼帶參數(shù)進小程序指定頁面

    小程序將本頁面生成二維碼,二維碼掃碼帶參數(shù)進小程序指定頁面

    1、因為小程序調用 https://api.weixin.qq.com/ 不能直接調用這個接口,所以我們需要在ApiPost上先測試一下生成一下二維碼,生成測試沒問題后可以讓后端調用返回給前端。 獲取access_token方法官方文檔地址如下: https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

    2024年02月15日
    瀏覽(25)
  • 【小程序】動態(tài)生成微信小程序二維碼

    官方文檔中給我們提供了三個接口,分別應用于不同的場景 wxacode.createQRCode - - 接口文檔地址-點擊跳轉 該接口需慎用,因為文檔描述,該接口可生成的二維碼是有限制的。 總共生成的碼數(shù)量限制為 100,000 wxacode.get - - 接口文檔地址-點擊跳轉 該接口需慎用,因為文檔描述,該

    2024年02月09日
    瀏覽(27)
  • 微信小程序:生成二維碼帶參數(shù)并獲取值

    通過后臺接口可以獲取小程序任意頁面的小程序碼,需要注意的是 接口只能生成已發(fā)布的小程序的二維碼 小程序接口文檔 1)scene 字段的值會作為 query 參數(shù)傳遞給小程序/小游戲。用戶掃描該碼進入小程序/小游戲后,開發(fā)者可以獲取到二維碼中的 scene 值,再做處理邏輯。

    2024年02月15日
    瀏覽(18)
  • uni-app(微信小程序) 根據小程序頁面路徑(可帶參數(shù)) 生成二維碼、分享碼

    uni-app(微信小程序) 根據小程序頁面路徑(可帶參數(shù)) 生成二維碼、分享碼

    微信官方文檔 小程序 看文檔點這里 第一個獲取小程序碼,就是根據你要通過二維碼打開的頁面路徑生成一個小程序碼,且這個小程序碼是永久的 其實文檔內也說明了,很少用到。即使需要生成這樣的小程序碼,可以去微信公眾平臺的小程序管理后臺生成,還方便。 調用方

    2024年02月06日
    瀏覽(51)
  • python 寫個手機掃描二維碼服務的小程序

    import qrcode import cv2 import pyautogui # 打開攝像頭 cap = cv2.VideoCapture(0) while True: # 讀取攝像頭圖像 ret, frame = cap.read() # 轉換為灰度圖像 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 二值化圖像 ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 查找輪廓 contours, hierarchy = cv2.findContours(thresh,

    2024年02月16日
    瀏覽(18)
  • C# QRCode二維碼的解析與生成

    C# QRCode二維碼的解析與生成

    已知一張二維碼圖片,怎么生成一張一模一樣的圖片出來? 最近有個項目,需要用到QRCode,之前只做過Datamatrix格式的,想著應該也是差不多的,于是就依葫蘆畫瓢,掏出我的陳年OnBarcode類庫,一通修改,生成了個嶄新的QRCode,與客戶提供的二維碼圖片一比對,雖然掃出來內

    2024年02月12日
    瀏覽(27)
  • 生成微信小程序發(fā)布上線后的二維碼 、獲取微信小程序二維碼、微信小程序二維碼如何生成?

    生成微信小程序發(fā)布上線后的二維碼 、獲取微信小程序二維碼、微信小程序二維碼如何生成?

    情景: 1、在微信小程序審核完成,發(fā)布到線上后,想通過掃描小程序二維碼進入小程序 2、可分享二維碼出去,通過二維碼掃碼進入小程序 方法: 1、進入微信小程序的后臺配置。鏈接:微信公眾平臺。(如圖一) 2、進入 “設置”?-- “?基本設置” -- “小程序碼及線下物

    2024年02月12日
    瀏覽(102)
  • 如何生成微信小程序二維碼,小程序內頁二維碼

    如何生成微信小程序二維碼,小程序內頁二維碼

    你自己得有個微信公眾號,只需要知道小程序的名字就可以了 生成小程序二維碼 第一步編輯素材 第二步搜索小程序名字,然后回車,下一步 第三步選小程序碼 小程序內頁二維碼 第一步編輯素材 第二步搜索小程序名字,然后回車,下一步 第三步點擊‘獲取更多路徑’ 第四

    2024年02月15日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包