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

业务需求:

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

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

  //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.kler.cn/a/6899.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

iPhone手机小技巧:使用备忘录创建清单

手机备忘录是非常常用的软件之一&#xff0c;无论是iPhone手机还是安卓系统的手机都可以下载相应的APP进行使用。它可以帮助我们记录很多琐碎的事情&#xff0c;防止我们遗忘某事。 在记备忘录的时候&#xff0c;有的人是直接打字记录的&#xff0c;也没有什么具体的格式&…

物联网 JS 前端框架开发 - 执行 VUE 程序

前端框架 Vue、 React 和 Angular 是当前应用最广的三大前端框架&#xff0c;噢&#xff0c;还有Flutter。 前端开发框架从最开始的jquery时代&#xff0c;到后来backbone&#xff0c;angular1&#xff0c;再到现在vue和react两分天下&#xff0c;也才用了不到十年的光景。 …

Goby漏洞更新 | SolarView Compact downloader.php 任意命令执行漏洞(CVE-2023-23333)

漏洞名称&#xff1a;SolarView Compact downloader.php 任意命令执行漏洞&#xff08;CVE-2023-23333 English Name&#xff1a;SolarView Compact downloader.php RCE (CVE-2023-23333) CVSS core: 10.0 影响资产数&#xff1a;5585 漏洞描述&#xff1a; Contec SolarV…

设计模式七大原则解读

目录 设计模式的目的 单一职责原则 基本介绍 应用实例 注意事项和细节 接口隔离原则(Interface Segregation Principle) 基本介绍 应用实例 应传统方法的问题和使用接口隔离原则改进 依赖倒转原则 基本介绍 应用实例 依赖倒转原则的注意事项和细节 里氏替换原则 …

关于数据通信和串口(USART)的一些笔记

在上次的串口通信的实验里&#xff0c;我们简单介绍了一小部分串口和通信的笔记&#xff1b;并且在上一篇笔记里&#xff0c;我们介绍了三个比较常见和重要的通信协议SPI,I2C和CAN总线通信。今天我们来更深地了解数据通信和串口。 首先我们介绍一些数据通信的分类。 1、数据通…

使用cfssl为程序添加https证书

使用cfssl为程序添加https证书 下载安装使用cfssl使用cfssl实现创建证书浏览器认证 cfssl是一款比较好用的PKI/TLS工具&#xff0c;可以方便的生成https证书 下载与安装 cfssl 官方地址 https://github.com/cloudflare/cfssl 下载地址 https://github.com/cloudflare/cfss…

【Redis】集群(cluster)

文章目录Redis集群(cluster)定义官网作用集群算法(分片->槽位)分片(每台Redis实例)槽位slot槽位映射哈希取余分区一致性哈希算法分区哈希槽分区搭建三主三从集群关闭防火墙启动docker后台服务 systemctl disable firewalld、 systemctl start docker新建6个redis实例通过red…

Mysql LOAD DATA 读取客户端任意文件

复现 Mysql LOAD DATA INFILE 读取客户端任意文件漏洞前言MySQL 客户端和服务端通信过程中是通过对话的形式来实现的&#xff0c;客户端发送一个操作请求&#xff0c;然后服务端根据客户端发送的请求来响应客户端&#xff0c;在这个过程中客户端如果一个操作需要两步才能完成&a…

AQS之ReentrantLock独占锁源码解析

一、基础概念 AQS&#xff08;AbstractQueuedSynchronizer&#xff09;&#xff1a;是jdk并发包java.util.concurrent下绝大部分工具类实现的基础。 管程&#xff1a;是指管理共享变量以及对共享变量操作的过程&#xff0c;让它们支持并发 JVM层对管程的实现&#xff1a;syn…

SonarQube安装教程

1. 下载安装包 下载sonar SonarQube 支持的数据库有&#xff1a;PostgreSQL&#xff0c;Microsoft SQL Server&#xff0c;Oracle&#xff0c; 注意7.9版本已经不对MySql进行官方的支持了&#xff0c;如果执意要用 Mysql 可能会遇到很多坑&#xff08;我就被坑的不轻&#x…

重学Java设计模式-结构型模式-代理模式

重学Java设计模式-结构型模式-代理模式 内容摘自&#xff1a;https://bugstack.cn/md/develop/design-pattern/2020-06-16-重学 Java 设计模式《实战代理模式》.html#重学-java-设计模式-实战代理模式「模拟mybatis-spring中定义dao接口-使用代理类方式操作数据库原理实现场景…

Vue3通透教程【十一】初探TypeScript

文章目录&#x1f31f; 写在前面&#x1f31f; TypeScript是什么&#xff1f;&#x1f31f;TypeScript 增加了什么&#xff1f;&#x1f31f;TypeScript 初体验&#x1f31f; 写在最后&#x1f31f; 写在前面 专栏介绍&#xff1a; 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue …

蓝桥杯刷题冲刺 | 倒计时4天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;倒计时4天&#xff0c;冲冲冲&#xff01;&#xff01;&#xff01;&#x1f43e; 文章目录1.整除序列2.走方格3.前缀和4.差分矩阵5.翻硬币1.整除序列 题目 链接&#xff1a; 2065. 整除序列 - Ac…

【QsLog动态库的编译和使用】

前言 日志在项目中定位bug的根源起着重要的作用。 0x0 下载代码 https://github.com/victronenergy/QsLog.git 0x1 用VS2019打开.pro文件&#xff0c;配置项目类型 0x2 找到这两个文件以及头文件&#xff0c;放在电脑上的一个文件夹中 0x3 在项目中进行路径配置 0x4 添加代…

【Git】版本控制之基础用法

前言 进公司毕竟是多人协作的事情&#xff0c;不是你一个人在更改代码&#xff0c;所以必须要会代码管理工具来多人管理代码。&#xff08;如果一个人干所有人的活当我没说&#xff09; 作为2023年代码管理工作最为出名的分布式那肯定还是Git。 当然也有其他的&#xff0c;比…

如何低成本实现微前端架构?

微前端架构是一种前端架构模式&#xff0c;旨在将一个大型的Web应用程序拆分为更小、更独立的部分&#xff0c;每个部分可以由不同的团队开发、部署和维护。在微前端架构中&#xff0c;每个子应用程序可以独立开发、构建、测试和部署&#xff0c;同时也可以独立于其他子应用程序…

华为OD机试用JS实现 -【查找树中的元素 or 查找二叉树节点】(2023-Q2 押题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:查找树中的元素 or 查找二叉树…

1-ELK+ Elasticsearch+head+kibana、企业内部日志分析系统

ELK:日志收集平台 ELK由ElasticSearch、Logstash和Kibana三个开源工具组成&#xff1a; 概念图 组件介绍 1、Elasticsearch&#xff1a; ElasticSearch是一个基于Lucene的开源分布式搜索服务。只搜索和分析日志 特点&#xff1a;分布式&#xff0c;零配置&#xff0c;自…

kubernetes各个条件下使用nginx-ingress进行路由映射

1、nginx-ingress路由配置并将路由名称去除&#xff08;不传递到后台service&#xff09; apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata:name: example-ingressannotations:nginx.ingress.kubernetes.io/rewrite-target: /$1 spec:rules:- http:paths:- pat…

flex布局:输入框布局demo

目标效果 首先&#xff0c;生成输入框&#xff1a; 代码&#xff1a; 结果&#xff1a; 设置基本样式 包括&#xff1a;去除边距、设置父盒子的宽度(如果不设置宽度&#xff0c;会使用整个浏览器的宽度&#xff09;、添加父盒子边框等 代码&#xff1a; *{margin: 0;pad…
最新文章