微信小程序获取无限制带参数二维码后台接口请求处理
第一步简单无坑GET请求把你的appid和appsecret拼接起来的URL会返回一个ACCESS_TOKEN
public static String wxGetQrcode(String appid, String secret) {
String getQrcode = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
+ appid + "&secret=" + secret + "";
return getQrcode;
}
第二步有些地方特别要注意,一步一步往下看
接口地址:
POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
注意:这一整串是接口地址,特别特别注意的是ACCESS_TOKEN值要拼接在这个接口里面例;
https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=“第一步获取的ACCESS_TOKEN” 这就是接口地址(access_token不要当成请求参数很关键)
第三步把参数存入Map集合(注意:不要把access_token也放进map集合了!!!)
HashMap<String, String> params = new HashMap<>();
params.put("scene", scene);
params.put("page", page);
| scene | string | 是 |
最大32个可见字符,只支持数字,大小写英文以及部分特殊字符: |
| page | string | 主页 | 否 | 必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index, 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面 |
一定要看后面备注!!!!其他参数也一样,我只需要这两个参数,其他没传。
第四步 非常关键
map集合转成JSONObject
net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(params);
没有包的网上都能找到
最后一步了POST请求,把二进制流保存到本地
public static void wxPost(String uri, JSONObject paramJson, String fileName) {
try {
URL url = new URL(uri);
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();
httpURLConnection.setRequestMethod("POST");// 提交模式
// conn.setConnectTimeout(10000);//连接超时 单位毫秒
// conn.setReadTimeout(2000);//读取超时 单位毫秒
// 发送POST请求必须设置如下两行
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
// 获取URLConnection对象对应的输出流
PrintWriter printWriter = new PrintWriter(
httpURLConnection.getOutputStream());
printWriter.write(paramJson.toString());
// flush输出流的缓冲
printWriter.flush();
// 开始获取数据
BufferedInputStream bis = new BufferedInputStream(
httpURLConnection.getInputStream());
OutputStream os = new FileOutputStream(new File("D:/upFiles/"
+ fileName + ".png"));
int len;
byte[] arr = new byte[1024];
while ((len = bis.read(arr)) != -1) {
os.write(arr, 0, len);
os.flush();
}
os.close();
bis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
后续处理 扫描二维码进入小程序
Page({
onLoad(query) {
// scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene
const scene = decodeURIComponent(query.scene)
}
})
本文详细介绍了如何在微信小程序后台调用getWXACodeUnlimit接口获取无限带参数二维码,并将返回的二进制流转换为图片保存到本地。主要步骤包括:获取ACCESS_TOKEN,构造接口地址,设置请求参数,发送POST请求并保存二进制流为图片。
4074

被折叠的 条评论
为什么被折叠?



