목표:
QR 코드 요청 및 표시
단계:
사용자가 버튼을 클릭하여 QR 코드 생성
단계:
1. WeChat 애플릿이 QR 코드를 요청합니다. 백그라운드
2. 백그라운드(java/php)는 WeChat 애플릿 정보를 기반으로 WeChat 클라이언트에 토큰을 요청합니다
3. 백그라운드는 토큰을 얻은 후 WeChat 클라이언트에 QR 코드 이미지를 요청합니다. 🎜> 4. 배경이 이미지를 가져와서 서버에 저장합니다. WeChat 애플릿에 경로를 반환합니다
5. WeChat 애플릿이 경로를 얻은 후
경로에 따라 이미지를 다운로드합니다. 이미지 다운로드, 로컬에 저장
7. 성공적으로 저장한 후 이미지 태그에 경로를 입력합니다.
코드 표시:
wxml
<image class="scanimg" src="{{filePath}}" bindtap="getAgain"></image> <button type="primary" bindtap="primary">点击生成二维码</button>코드
primary:function (e) { var _url = '后台地址'; wx.request({ url: _url, //请求报文体 data: [{ id: agentCode }], method: 'POST', header: { 'content-type': 'application/json' }, success: function (res) { //为00时表示成功,得到二维码的地址 if (res.data.code == '00') { console.log("成功") //下载二维码 wx.downloadFile({ url: res.data.body[0].URL, success: function (res) { //如果二维码中的id为固定值可以将图片保存到本地,否则不用保存 wx.saveFile({ tempFilePath: res.tempFilePath, success: function (res) { console.log("保存成功") _that.setData({ filePath: res.savedFilePath }) console.log(res.savedFilePath) try { //id为定值,则将保存的地址存入缓存,非定值则只需要setData就行 wx.setStorageSync('filePath', res.savedFilePath) } catch (e) { console.log(e) } }, fail: function (res) { console.log("保存失败") console.log(res) } }) }, fail: function (res) { util.msg("错误", "通讯失败") console.log(res) } }) } else { console.log("错误") util.msg("错误", res.data.msg) } }, fail: function () { util.msg("错误", "通讯失败") console.log(res) } }) }java code
// 访问微信后台的URL String URL = systemConfig.getString("LoginOrRegisterUrl"); // 请求类型 String grant_type = systemConfig.getString("grant_type"); // 第三方用户唯一凭证密钥 String secret = systemConfig.getString("secret"); // 第三方用户唯一凭证 String appId = systemConfig.getString("appid"); // 请求token时用到的URL String tokenUrl = systemConfig.getString("tokenUrl"); // 向微信后台请求获取token String sendGet = HttpClientConnectionManager.sendGet( tokenUrl, "grant_type=" + grant_type + "&secret=" + secret + "&appid=" + appId + ""); System.out.println(sendGet); JSONObject json = JSONObject.fromObject(sendGet); access_token = json.get("access_token").toString(); if (access_token == null) { //没有token 则返回错误码和错误信息 agentDTO.setCode("0002"); agentDTO.setDesc("获取tokenId失败"); return agentDTO; } System.out.println(access_token); // 访问微信后台带的json参数 Map<String, Object> map = new HashMap<String, Object>(); map.put("path", "pages/register");//你二维码中跳向的地址 map.put("width", "430");//图片大小 JSONObject json = JSONObject.fromObject(map); HttpClientConnectionManager.httpPostWithJSON(URL + access_token, json.toString(), id + "max"); // 返回给前端的后台服务器文件读取路径 String downloadUrl = systemConfig .getString("agentImgDownloadUrl") + id + "max" + "/"; // 返回给前端的后台服务器文件下载路径 String downloadfileUrl = downloadUrl + id + "max" + ".jpg"; agentResView.setURL(downloadfileUrl); agentDTO.setAgentResView(agentResView); agentDTO.setCode("00"); agentDTO.setDesc("成功"); return agentDTO;tip
1. QR코드를 신청할 수 있는 코드입니다. 여러 장의 사진을 신청할 때나 다른 방법을 사용할 수 있습니다
2. 아이디가 정량적일 경우 filePath 캐시가 존재하는지 확인하기 위해 매번 버튼을 누르세요. 존재하지 않으면 백그라운드에서 QR 코드가 요청됩니다.
위 내용은 WeChat 애플릿 사용자는 버튼을 클릭하여 QR 코드에 대한 매개변수가 포함된 샘플 코드를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!