1.本人也是初学者有不对的地方欢迎指出.所有自己总结一下希望能帮到大家!我尝试了两种方式后去小程序二维码,第一种前台请求获取的方式用的都是B接口注意:这个接口只有项目上线了才能扫出来调用这个接口前你需要获取access_token凭证
2.这几个必要条件一般都是放在后台去请求我用的是Java,我工具类和调用我是在别人的基础上加了自己的方法,工具类需要根据自己的要求做修改.
工具类调用getminiqrQr的时候需要根据自己的情况修改下其他的不用3.packagecom.esmall.utils;
4.importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.image.BufferedImage;importjava.io.BufferedInputStream;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.PrintWriter;importjava.net.HttpURLConnection;importjava.net.URL;importjava.net.URLConnection;importjava.util.List;importjava.util.Map;
5.importjavax.imageio.ImageIO;
6.importcom.esmall.core.common.CommonConstants;importcom.esmall.core.common.Constants;importcom.qq.connect.utils.json.JSONObject;
7.publicclassHttpRequest{
publicstaticvoidmain(String[]args){//发送GET请求Strings=HttpRequest.sendGet("http://v.qq.com/x/cover/kvehb7okfxqstmc.html?vid=e01957zem6o","");System.out.println(s);////发送POST请求//String//sr=HttpRequest.sendPost("http://www.toutiao.com/stream/widget/local_weather/data/?city=%E4%B8%8A%E6%B5%B7",//"");//JSONObjectjson=JSONObject.fromObject(sr);//System.out.println(json.get("data"));}/***向指定URL发送GET方法的请求**@paramurl*发送请求的URL*@paramparam*请求参数,请求参数应该是name1=value1&name2=value2的形式。*@returnURL所代表远程资源的响应结果*/publicstaticStringsendGet(Stringurl,Stringparam){Stringresult="";BufferedReaderin=null;try{StringurlNameString=url+"?"+param;URLrealUrl=newURL(urlNameString);//打开和URL之间的连接URLConnectionconnection=realUrl.openConnection();//设置通用的请求属性connection.setRequestProperty("accept","*/*");connection.setRequestProperty("connection","Keep-Alive");connection.setRequestProperty("user-agent","Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");//建立实际的连接connection.connect();//获取所有响应头字段MapString,ListStringmap=connection.getHeaderFields();//遍历所有的响应头字段for(Stringkey:map.keySet()){System.out.println(key+"---"+map.get(key));}//定义BufferedReader输入流来读取URL的响应in=newBufferedReader(newInputStreamReader(connection.getInputStream()));Stringline;while((line=in.readLine())!=null){result+=line;}}catch(Exceptione){System.out.println("发送GET请求出现异常!"+e);e.printStackTrace();}//使用finally块来关闭输入流finally{try{if(in!=null){in.close();}}catch(Exceptione2){e2.printStackTrace();}}returnresult;}/***向指定URL发送POST方法的请求**@paramurl*发送请求的URL*@paramparam*请求参数,请求参数应该是name1=value1&name2=value2的形式。*@return所代表远程资源的响应结果*/publicstaticStringsendPost(Stringurl,Stringparam){PrintWriterout=null;BufferedReaderin=null;Stringresult="";try{URLrealUrl=newURL(url);//打开和URL之间的连接URLConnectionconn=realUrl.openConnection();//设置通用的请求属性conn.setRequestProperty("accept","*/*");conn.setRequestProperty("connection","Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");//发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);//获取URLConnection对象对应的输出流out=newPrintWriter(conn.getOutputStream());//发送请求参数out.print(param);//flush输出流的缓冲out.flush();//定义BufferedReader输入流来读取URL的响应in=newBufferedReader(newInputStreamReader(conn.getInputStream()));Stringline;while((line=in.readLine())!=null){result+=line;}}catch(Exceptione){System.out.println("发送POST请求出现异常!"+e);e.printStackTrace();}//使用finally块来关闭输出流、输入流finally{try{if(out!=null){out.close();}if(in!=null){in.close();}}catch(IOExceptionex){ex.printStackTrace();}}returnresult;}/***生成带参小程序二维码**@paramsceneStr*参数*@paramaccessToken*token*/publicstaticStringgetminiqrQr(StringsceneStr,StringaccessToken,){Stringresult="";try{URLurl=newURL("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+accessToken);HttpURLConnectionhttpURLConnection=(HttpURLConnection)url.openConnection();httpURLConnection.setRequestMethod("POST");//提交模式//设置通用的请求属性//httpURLConnection.setRequestProperty("content-type",//"application/json");httpURLConnection.setRequestProperty("accept","*/*");httpURLConnection.setRequestProperty("connection","Keep-Alive");httpURLConnection.setRequestProperty("user-agent","Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");//conn.setConnectTimeout(10000);//连接超时单位毫秒//conn.setReadTimeout(2000);//读取超时单位毫秒//发送POST请求必须设置如下两行httpURLConnection.setDoOutput(true);httpURLConnection.setDoInput(true);//获取URLConnection对象对应的输出流PrintWriterprintWriter=newPrintWriter(httpURLConnection.getOutputStream());//发送请求参数这里根据自己的需要JSONObjectparamJson=newJSONObject();paramJson.put("scene",sceneStr);//paramJson.put("page","pages/index/index");paramJson.put("width",430);//paramJson.put("auto_color",true);/***line_color生效paramJson.put("auto_color",false);JSONObject*lineColor=newJSONObject();lineColor.put("r",0);*lineColor.put("g",0);lineColor.put("b",0);*paramJson.put("line_color",lineColor);*/printWriter.write(paramJson.toString());//flush输出流的缓冲printWriter.flush();BufferedInputStreambis=newBufferedInputStream(httpURLConnection.getInputStream());StringoriginalFilename=null;//二维码的地址Stringurl="";//需要存放的文件路径Filefile=newFile("");//这里的是路径写到你要放的文件夹那层就可以了没有就会创建if(!file.exists()){file.mkdirs();}OutputStreamos=newFileOutputStream(newFile(url));//FileUtils.copyInputStreamToFile(myfile.getInputStream(),new//File(realPath,originalFilename));intlen;byte[]arr=newbyte[1024];while((len=bis.read(arr))!=-1){os.write(arr,0,len);os.flush();}os.close();result=返回二维码路径地址;}catch(Exceptione){e.printStackTrace();}returnresult;}8.}
这个是调用的方法9./***二维码生成扫描**@throwsJSONException**/@RequestMapping(value=“/thinkChange”)@ResponseBodypublicMapString,ObjectthinkChange(@RequestParam(required=false,value=“wechatId”,defaultValue=“”)StringwechatId,@RequestParam(required=false,value=“memberId”,defaultValue=“”)StringmemberId)throwsJSONException{MapString,Objectmap=Maps.newHashMap();//小程序唯一标识填写自己的StringwxspAppid=“”;//appsecret填写自己的StringwxspSecret=“”;//二维码参数值Stringparamss=“grant_type=client_credential&appid=”+wxspAppid+“&secret=”+wxspSecret;//生成二维吗的access_token值Stringsrs=HttpRequest.sendGet(“https://api.weixin.qq.com/cgi-bin/token”,paramss);//解析相应内容(转换成json对象)JSONObjectjson=newJSONObject(srs);//获取accessToken的凭证StringaccessToken=json.get(“access_token”).toString();Stringscene=“”;//二维码接口StringgetminiqrQr=HttpRequest.getminiqrQr(scene,accessToken);
map.put("qrQr",getminiqrQr);System.out.print(map);returnmap;}10.还有一种js直接调用我是看了下面这个人的博客是可以实现的传送门https://blog.csdn.net/qq_41473887/article/details/81335977我用上面的方法实现了我碰到了个问题是就是需要请求两次才能把生成二维码.我也不知道什么原因.
对了因为我用的是Java后台下载本地了要给用户一个点击下载到相册11.//将图片保存到相册wx.downloadFile({url:scanLife,success:function(res){//图片保存到本地wx.saveImageToPhotosAlbum({filePath:res.tempFilePath,success:function(data){wx.hideLoading()wx.showModal({title:‘提示’,content:‘您的推广海报已存入手机相册,赶快分享给好友吧’,showCancel:false,})},fail:function(err){if(err.errMsg===“saveImageToPhotosAlbum:fail:authdenied”||err.errMsg===“saveImageToPhotosAlbum:failauthdeny”){//这边微信做过调整,必须要在按钮中触发,因此需要在弹框回调中进行调用wx.showModal({title:‘提示’,content:‘需要您授权保存相册’,showCancel:false,success:modalSuccess={wx.openSetting({success(settingdata){console.log(“settingdata”,settingdata)if(settingdata.authSetting[‘scope.writePhotosAlbum’]){wx.showModal({title:‘提示’,content:‘获取权限成功,再次点击图片即可保存’,showCancel:false,})}else{wx.showModal({title:‘提示’,content:‘获取权限失败,将无法保存到相册哦~’,showCancel:false,})}},fail(failData){console.log(“failData”,failData)},complete(finishData){console.log(“finishData”,finishData)}})}})}},complete(res){wx.hideLoading()}})},fail:function(err){
}})12.这个是接口调试可以知道你的接口是不是有用https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=基础支持&form=获取access_token接口/token
13.写的比较乱见谅有意见可以提出我会改修改应为上面的只是一个大概按自己的情况修改,借鉴了很多别人的博客谢谢大神!
小程序的二维码在哪找-小程序获取二维码java方式-小程序二维码
浏览量:1955
时间:
来源:我啥都不会,这可咋办
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-
抖音再现本地生活服务,咫尺同城圈商业变现新通道
短视频成为本地生活探店网红营销变现引流的新阵地,每一位网红都渴望在短视频内“一夜爆红”。即速应用团队对多商家小程序进行升级,打造了咫尺同城圈:“同城探店营销助手”,不仅完善商家营销技巧,还助力探店网红玩转本地生活服务。 -
抖音再现本地生活服务,咫尺同城圈商业变现新通道
短视频成为本地生活探店网红营销变现引流的新阵地,每一位网红都渴望在短视频内“一夜爆红”。即速应用团队对多商家小程序进行升级,打造了咫尺同城圈:“同城探店营销助手”,不仅完善商家营销技巧,还助力探店网红玩转本地生活服务。 -
阿坝小程序代理
阿坝藏族羌族小程序代理公司有哪些?阿坝藏族羌族小程序代理平台哪个好?阿坝藏族羌族小程序代理商怎么收费,代理政策如何?下面就让即速应用产品经理jisuapp.cn来告诉你吧!