微信小程序> 微信小程序服务端获取小程序二维码永久有效数量无限制-现在小程序多少钱-做个小程序需要多少钱

微信小程序服务端获取小程序二维码永久有效数量无限制-现在小程序多少钱-做个小程序需要多少钱

浏览量:2124 时间: 来源:SEVENY_
1.

因为现在做的小程序,想要分享小程序中的页面给微信好友,那就可以使用二维码,很方便。

2.

而且通过后台接口可以获取小程序任意页面的小程序码

3.

扫描该小程序码可以直接进入小程序对应的页面,所有生成的小程序码永久有效

微信官方文档——小程序获取二维码原文链接请求地址POST方法https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_tokenACCESS_TOKEN后台代码importorg.springframework.http.HttpEntity;importorg.springframework.http.HttpMethod;importorg.springframework.http.ResponseEntity;importorg.springframework.util.LinkedMultiValueMap;importorg.springframework.util.MultiValueMap;importorg.springframework.web.client.RestTemplate;importjava.io.*;importjava.util.HashMap;importjava.util.Map;publicclassQRCodeHelp{//生成活动二维码publicvoidcreateActQRCode(){Stringaccess_token"你获取到的access_token";Stringpath"pages/index/huodong/huodong";//你小程序中页面的路径RestTemplaterestnewRestTemplate();InputStreaminputStreamnull;OutputStreamoutputStreamnull;try{Stringurl"https://api.weixin.qq.com/wxa/getwxacodeunlimit?"+"access_token"+access_token;MapString,ObjectparamnewHashMap();param.put("scene",参数值);param.put("page",path);param.put("width",430);param.put("auto_color",false);MapString,Objectline_colornewHashMap();line_color.put("r",0);line_color.put("g",0);line_color.put("b",0);param.put("line_color",line_color);param.put("is_hyaline",false);MultiValueMapString,StringheadersnewLinkedMultiValueMap();HttpEntityrequestEntitynewHttpEntity(param,headers);ResponseEntitybyte[]entityrest.exchange(url,HttpMethod.POST,requestEntity,byte[].class,newObject[0]);byte[]resultentity.getBody();inputStreamnewByteArrayInputStream(result);//我将图片存储到了服务器中的ActQRImage文件夹下FilefilenewFile("/root/application/ActQRImage/1.png");if(!file.exists()){file.createNewFile();}outputStreamnewFileOutputStream(file);outputStream.write(result);outputStream.flush();}catch(Exceptione){System.out.println("调用小程序生成微信永久小程序码URL接口异常"+e);}finally{if(inputStream!null){try{inputStream.close();}catch(IOExceptione){e.printStackTrace();}}if(outputStream!null){try{outputStream.close();}catch(IOExceptione){e.printStackTrace();}}}}}scene参数存放与获取:4.

后台生成了二维码之后,前端小程序也要进行操作来获取到scene中存放的参数。

5.

1.如果只需要传一个参数可以直接scene参数值例如:scene123

onLoad:function(options){if(options.scene){//options中的scene需要使用decodeURIComponent才能获取到生成二维码时传入的scenevarscenedecodeURIComponent(options.scene)}}6.

2.如果两个及两个以上的参数可以是scene"id/"+id+"*userId/"+userId;例如:sceneid/1*userId/2

7.

这里自定义了scene的参数格式,以/代替,以*代替。

8.

因为如果用正常的格式(例如:id1userId2)会导致参数识别一部分,因为小程序在识别二维码页面参数时,拿到的参数列表是这样的sceneid1userId2,这样就会导致只能识别id,id后的等号后面的参数全都无效了。所以这里用特殊字符代替常规字符,然后获取之后再用js去解析,从而拿到参数列表。

onLoad:functiongetOptions(options){//options中的scene需要使用decodeURIComponent才能获取到生成二维码时传入的scenevarscenedecodeURIComponent(options.scene);varobj{};for(vari0;iscene.split('*').length;i++){vararrscene.split('*')[i].split('/');obj[arr[0]]arr[1];}returnobj}请求参数属性类型默认值必填说明access_tokenstring是9.

接口调用凭证(获取方式见另一博客获取access_token)

scenestring是最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$'()*+,/:;?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用urlencode处理,请使用其他编码方式)pagestring主页否必须是已经发布的小程序存在的页面(否则报错),例如pages/index/index,根路径前不要填加/,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面widthnumber430否二维码的宽度,单位px,最小280px,最大1280pxauto_colorbooleanfalse否自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认falseline_colorObject{"r":0,"g":0,"b":0}否auto_color为false时生效,使用rgb设置颜色例如{"r":"xxx","g":"xxx","b":"xxx"}十进制表示is_hyalinebooleanfalse否是否需要透明底色,为true时,生成透明底色的小程序返回值说明10.

如果调用成功,会直接返回图片二进制内容,如果请求失败,会返回JSON格式的数据。

返回值Buffer11.

返回的图片Buffer

异常返回Object12.

JSON

属性类型说明errcodenumber错误码errmsgstring错误信息13.

errcode的合法值

值说明45009调用分钟频率受限(目前5000次/分钟,会调整),如需大量小程序码,建议预生成。41030所传page页面不存在,或者小程序没有发布注意POST参数需要转成JSON字符串,不支持form表单提交。接口只能生成已发布的小程序的二维码调用分钟频率受限(5000次/分钟),如需大量小程序码,建议预生成

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎