目标:
请求二维码并展示
步骤:
用户点击按钮生成二维码
步骤:
1、微信小程序往后台请求二维码
2、后台(java/php) 根据微信小程序信息往微信端请求tonken
3、后台得到tonken后往微信端请求二维码图片
4、后台得到图片后保存在服务器上,将路径返回给微信小程序
5、微信小程序得到路径后,根据路径下载图片
6、下载图片成功后再保存至本地
7、保存成功后将路径给予image标签里面展示
代码:
wxml
登录后复制<button type="primary" bindtap="primary">点击生成二维码</button>
s代码
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端代码
// 访问微信后台的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登录后复制map = new HashMap (); 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、这是申请一张二维码的代码,申请多张可以用for或者其他的方法
2、当id为定量时,每次点击按钮判断filePath缓存是否存在,存在则直接取值展示,不存在则向后台请求二维码
以上就是微信小程序用户点击按钮生成带参二维码的示例代码的详细内容,更多请关注慧达安全导航其它相关文章!
免责 声明
1、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » 微信小程序用户点击按钮生成带参二维码的示例代码
发表评论 取消回复