首页 > 作文

微信二维码生成

更新时间:2023-03-04 03:42:36 阅读: 评论:0

粉玫瑰花语是什么意思-怎么给mp3下歌

微信二维码生成
2023年3月4日发(作者:早安问候祝福语)

Java实现微信⼩程序⽣成⼩程序⼆维码,并携带参数。

业务需求:⽣成⼩程序的⼆维码,并携带指定参数;

官⽅提供两个接⼝,我选择了imited,⽣成数量不受限制;

1.⾸先需要获取微信的access_token

/**

*获取微信accesstoken

*

*@paramwxappid

*@paramwxappkey

*@return

*/

publicstaticStringgetWxAcesstoken(Stringwxappid,Stringwxappkey)throwsCustomizeException{

StringtokenUrl="/cgi-bin/token?grant_type=client_credential&appid="+wxappid+"&cret="+wxappkey;

try{

Stringjsonstr=(tokenUrl);

JSONObjectjsonObject=bject(jsonstr);

if(nsKey("access_token")){

Stringaccesstoken=ing("access_token");

returnaccesstoken;

}el{

("未获取到token");

thrownewCustomizeException("未获取到token");

}

}catch(Exceptione){

("未获取到token");

thrownewCustomizeException(sage());

}

}

2.重写了⼀个发送http请求的⽅法

返回的格式是ByteArrayInputStream,它是⼀个访问数组的字节输⼊流

publicstaticByteArrayInputStreamndPost(StringURL,Stringjson){

InputStreaminputStream=null;

ByteArrayInputStreambyteArrayInputStream=null;

//创建默认的httpClient实例.

CloableHttpClienthttpclient=Default();

//创建httppost

HttpPosthttppost=newHttpPost(URL);

der("Content-type","application/json;chart=utf-8");

der("Accept","application/json");

try{

StringEntitys=newStringEntity(json,e("UTF-8"));

tentEncoding("UTF-8");

ity(s);

HttpResponrespon=e(httppost);

if(tusLine().getStatusCode()==_OK){

//获取相应实体

HttpEntityentity=ity();

inputStream=tent();

ByteArrayOutputStreamoutStream=newByteArrayOutputStream();

//创建⼀个Buffer字符串

byte[]buffer=newbyte[1024];

//每次读取的字符串长度,如果为-1,代表全部读取完毕

intlen=0;

//使⽤⼀个输⼊流从buffer⾥把数据读取出来

while((len=(buffer))!=-1){

//⽤输出流往buffer⾥写⼊数据,中间参数代表从哪个位置开始读,len代表读取的长度

(buffer,0,len);

}

//关闭输⼊流

();

//把outStream⾥的数据写⼊内存

byteArrayInputStream=newByteArrayInputStream(Array());

}

}catch(Exceptione){

tackTrace();

}finally{

//关闭连接,释放资源

try{

();

}catch(IOExceptione){

tackTrace();

}

}

returnbyteArrayInputStream;

}

3.第三步就是⽣成⼩程序⼆维码的逻辑

/**

*获取⼩程序菊花码

*parm:machineNo⼆维码想携带的参数

**/

publicStringgetWXCode(StringmachineNo)throwsCustomizeException{

privateStringappId="asdasdasd";//⾃⼰⼩程序的appid

privateStringcret="454654645564";//⾃⼰⼩程序的密钥

StringaiyunUrl="";

try{

//这⾥调⽤的是上⾯的获取access_token⽅法

Stringaccess_token=getWxAcesstoken(appId,cret);

Stringurl="/wxa/getwxacodeunlimit?access_token="+access_token;

Stringscene=machineNo;/携带参数放在scene内

Mapparam=newHashMap<>();

("scene",scene);

//这⾥的page如果没有的话可以不写,默认是跳主页,如果写了没有的页⾯的话,会返回错误信息

//("page","pages/index/index");

Stringjson=String(param);

ByteArrayInputStreaminputStream=ndPost(url,json);

//这⾥判断的是返回的图⽚还是错误信息,⼀般错误信息不会⼤于200

if(ble()<=200){

ByteArrayOutputStreambyteArrayOutputStream=newByteArrayOutputStream();

inti;

byte[]buffer=newbyte[200];

while((i=(buffer))!=-1){

(buffer,0,i);

}

Stringstr=newString(Array());

//错误信息的格式在官⽅⽂档⾥有

JSONObjectjsonObject=bject(str);

if("41030".equals(ing("errcode"))){

("所传page页⾯不存在,或者⼩程序没有发布");

thrownewCustomizeException("所传page页⾯不存在,或者⼩程序没有发布");

}elif("45009".equals(ing("errcode"))){

("调⽤分钟频率受限");

thrownewCustomizeException("调⽤分钟频率受限");

}

();

}

//上传阿⾥云,也可以不上传

StringaiyunUrl=ImgAndReturnImgUrlInputStream(inputStream,fileName,path);

//输出到本地的代码

FileOutputStreamfileOutputStream=newFileOutputStream("D:/");

inti;

byte[]buffer=newbyte[200];

while((i=(buffer))!=-1){

(buffer,0,i);

}

();

();

();

("⼆维码⽣成成功");

}catch(Exceptione){

("获取⼆维码异常");

thrownewCustomizeException(sage());

}

returnaiyunUrl;

}

4.⽤到的⾃定义的⼀个异常

publicclassCustomizeExceptionextendsException{

publicCustomizeException(Stringmessage){

super(message);

}

}

⾄此⼆维码⽣成成功!

本文发布于:2023-03-04 03:42:36,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/1677872556130484.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:微信二维码生成.doc

本文 PDF 下载地址:微信二维码生成.pdf

下一篇:返回列表
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26 专利检索|