微信小程序二维码的生成方式

news/2024/7/20 2:08:58 标签: 微信小程序, 小程序

业务需求:

客户想要一个停车优惠券的功能,需要用户微信扫描后,自动跳转到小程序中,首先明确一点,这个操作是需要调微信接口的,下面我们来实现下吧

微信开发文档:
获取不限制的小程序

  //code为优惠券码,唯一值
      public void CreateXcxQrCode(string code)
        {
            try
            {
                //首先建立文件夹
                string strDirPath = System.AppDomain.CurrentDomain.BaseDirectory + "ParkingCouponQrCoderImg"; 
                    if (!Directory.Exists(strDirPath))
                    {
                        Directory.CreateDirectory(strDirPath);
                    } 
//这里需要使用小程序的appid及appsecret ,用户获取access_token
                        string URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + _appid + "&secret=" + appsecret + "";
                        string Date2 = HttpGet(URL);
                        Newtonsoft.Json.Linq.JObject _jObject = Newtonsoft.Json.Linq.JObject.Parse(Date2);
                        string access_token = _jObject["access_token"].ToString();
                        string page = "pages/car/carindex";//跳转的小程序路径
                        string width = "280";//二维码大小
                        string _url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + access_token;
                        System.Net.HttpWebRequest request;
                        request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(_url);
                        request.Method = "POST";
                        request.ContentType = "application/json;charset=UTF-8";
//这里是参数
                        string scene = "index=0&code=" + code;
                        string options = "{\"scene\":\"" + scene + "\",\"page\":\"" + page + "\",\"width\":\"" + width + "\"}";
                        byte[] payload;
                        payload = System.Text.Encoding.UTF8.GetBytes(options);
                        request.ContentLength = payload.Length;
                        System.IO.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 s;
                        s = response.GetResponseStream();
                        byte[] val = StreamToBytes(s);
                        string strdir_path=  strDirPath +"\\"+code + ".png";
                        System.IO.File.WriteAllBytes(strdir_path, val);
                        s.Dispose();
                        writer.Dispose();
                     string path = string.Format("/ParkingCouponQrCoderImg/{0}.png", code);
                      //之后就是将path 更新进数据库了
                
            }
            catch (System.Exception ex)
            {
                throw;
            }
        }       if (!Directory.Exists(strDirPath))
                {
                    Directory.CreateDirectory(strDirPath);
                }
        public  byte[] StreamToBytes(System.IO.Stream stream)
        {
            List<byte> bytes = new List<byte>();
            int temp = stream.ReadByte();
            while (temp != -1)
            {
                bytes.Add((byte)temp);
                temp = stream.ReadByte();
            }
            return bytes.ToArray();
        }

http://www.niftyadmin.cn/n/204532.html

相关文章

2023年湖北建筑特种人员有哪些工种?如何报考呢?

特殊工种实际上是指一些非常特殊的岗位&#xff0c;其实特种工操作证只是这个行业对于这个工种的一个要求&#xff0c;那么他们作为特殊行业的工作人员&#xff0c;是要办理这样的相关证件&#xff0c;办事办理这样的相关证件并不足以说明是特殊工种。有的特殊工种还可以提前办…

Java-类的知识

Java-类的知识 Java访问成员的限制 Java中有四种访问修饰符&#xff0c;分别是public、protected、default和private&#xff0c;它们分别对应着四种不同的访问权限。 public&#xff1a;可以被任何类访问&#xff0c;包括类的外部和内部。 protected&#xff1a;可以被当前…

Cadence Allegro 导出Unconnected Pins Report报告详解

⏪《上一篇》   🏡《上级目录》   ⏩《下一篇》 目录 1,概述2,Unconnected Pins Report作用3,Unconnected Pins Report示例4,Unconnected Pins Report导出方法4.1,方法14.2,方法2B站关注“硬小二”浏览更多演示视频

Linux系统常见的压缩命令和打包命令(gzip,zcat,bzip2,bzcat,xz,xzcat,zip,unzip,tar)

文章目录Linux系统常见的压缩命令和打包命令gzipgzip命令使用实例zcat命令使用实例bzip2bzip2命令使用实例bzcat命令使用实例xzxz命令使用实例xzcat命令使用实例打包命令&#xff1a;zipzip命令的使用实例unzipunzip命令的使用示例打包命令&#xff1a;tartar命令使用案例Linux…

引用和指针

总结 引用&#xff1a; 因为引用是变量的别名&#xff0c;所以引用必须初始化 因为引用不存在自己的地址&#xff0c;所以指针不能指向引用&#xff0c;即不能定义引用的指针 因为引用不是对象&#xff0c;但是引用又要绑定一个对象&#xff0c;所以不能定义引用的引用 in…

【文本摘要(2)】pytorch之Seq2Seq

经典Seq2Seq模型写在最前面Seq2Seq模型理解seq2seq编码、上下文、解码Seq2Seq模型图Teacher Forcing以翻译为例之前的弊端Teacher Forcing的论文环境配置代码结构process.pyload_data.py构建分词函数tokenizer构建数据预处理格式&#xff08;Field&#xff09;载入数据&#xf…

C++轻量级Web服务器TinyWebServer源码分析之lock篇

lock篇简介 由于C轻量级Web服务器不可避免的会有多线程同步问题&#xff0c;所以封装经常使用的锁机制&#xff0c;确保任一时刻只能有一个线程能进入关键代码段. 封装lock类使用RAII机制&#xff0c;将锁的创建和销毁函数封装在类的构造与析构函数中&#xff0c;将重复使用的…

用户和用户组练习

目录 1、创建mygroup组群&#xff0c;再创建myuser用户&#xff0c;并且此用户属于mygroup组群&#xff0c;接着以myuser身份登 录&#xff0c;创建ex和hv两个文件于/home/myuser目录&#xff0c;并使hv文件的同组用户是root。请依次写出相应执行 的命令。 2、现需添加一新用…