/*** 方法名:getWxConfig</br>* 详述:获取微信的配置信息 </br>* @param* @return 说明返回值含义* @throws*/public Map<String, String> getWxConfig(HttpServletRequest request, HttpServletResponse response) {response.setHeader("Access-Control-Allow-Origin", "*");Map<String, String> ret = new HashMap<>();//获取前台传来的三个参数String timestamp =  WXPayUtil.getCurrentTimestamp()+"";String nonce_str = WXPayUtil.generateNonceStr();String url = request.getParameter("url");logger.info("url"+url+"==============="+nonce_str+"============"+timestamp);//从缓存中读取token信息,如果没有则获取一个新的token,通过token获取ticket信息String access_token = (String)request.getSession().getAttribute("access_token");if(access_token == null) {/** 获取AccessToKen*/String getAccessToKen = "https://api.weixin.qq.com/cgi-bin/token?"+ "grant_type=client_credential&appid="+env.getProperty("wxlog.appid")+"&secret="+ env.getProperty("wxlog.appsecret");String  jsonObject = MyHttpUtils.doPost(getAccessToKen,"",Charset.forName("UTF-8").toString());JSONObject rq = JSON.parseObject(jsonObject);/**获取jsapi_ticket*/String getTicket = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+rq.get("access_token").toString()+"&type=jsapi";String rest = MyHttpUtils.doPost(getTicket,"",Charset.forName("UTF-8").toString());JSONObject re = JSON.parseObject(rest);/**将信息保存入缓存中*/request.getSession().setAttribute("token", rq.get("access_token").toString());request.getSession().setAttribute("ticket", re.get("ticket").toString());}/**生成签名*/String ticket = (String)request.getSession().getAttribute("ticket"); //微信返回的ticketString signature = shareUtil.getSignature(ticket,url,nonce_str,timestamp); //获取签名ret.put("appId", env.getProperty("wxlog.appid"));ret.put("nonceStr", nonce_str);ret.put("timestamp", timestamp);ret.put("signature", signature);return ret;}
---------------------------------------------------------------------------------var  url2=location.href.split('#')[0];function getwxconfing(title,pretext,preimage){mui.post('/wxpya/getWxConfig',{url:url2},function (data) {console.log(url);console.log(data);if (data!=undefined) {wx.config({debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: data.appId, // 必填,公众号的唯一标识timestamp: data.timestamp, // 必填,生成签名的时间戳nonceStr: data.nonceStr, // 必填,生成签名的随机串signature: data.signature,// 必填,签名jsApiList: [//需要调用的JS接口列表'checkJsApi',//判断当前客户端版本是否支持指定JS接口'onMenuShareAppMessage',//分享给好友'onMenuShareTimeline'//分享到朋友圈]});var config = {title: title, // 分享标题desc: pretext, // 分享描述link: url, // 分享链接imgUrl: imgsrcpath()+preimage,success: function () { /*$.alert("成功分享");*/ },cancel: function () { /*$.alert("分享失败,您取消了分享!");*/ }};wx.ready(function () {wx.onMenuShareAppMessage(config);wx.onMenuShareTimeline(config);});}}, 'json')}

java spring boot 微信公众号 分享功能相关推荐

  1. java微信公众号分享功能

    前言 微信公众号自定义分享功能,可附带图片.标题.内容 提示:以下是本篇文章正文内容,下面案例可供参考 一.微信公众号对网页域名进行授权,把MP_verify_*.txt文件放在项目的根目录下 二.编 ...

  2. java微信公众号分享页面,微信公众号分享功能防坑指南

    //1.分享出去的链接域名必须和微信公众号后台配置的业务域名一致,注意一点,微信公众号配置的业务域名不能带端口号,否则分享不成功,微信小程序到是没有这个限制. //2.需要把即将废弃的分享接口也加进去 ...

  3. Spring Boot+微信公众号开发Demo(源码见文章最低端)

    目录 微信公众号开发 1.微信公众号简单介绍 2.微信公众号申请 3.开发模式启用以及接口配置 4.消息以及消息处理的工具 5.各种消息的接收与响应 6.图文消息 7.自定义菜单的创建以及菜单的相应 ...

  4. 微信公众号分享功能开发体验

    公众号提供了一个分享功能,通过jsapi来访问,主要作用是修改特定页面下点击微信右上角[...]选择[转发给朋友][分享到朋友圈]以及[分享到手机QQ][分享到QQ空间]的内容. 分享到微信的操作步骤 ...

  5. 微信公众号分享功能无法调用

    我之前做微信分享功能的时候,做好发现移动端无法进行分享,放在微信开发者工具上测试,会发现出现errmsg 错误 这个问题,主要还是权限问题,可以进微信公众号后台权限管理查看 注意: 这里看清楚,账户主 ...

  6. Vue开发微信公众号调用微信JS-SDK的分享接口(实现微信公众号分享功能)

    描述 使用微信提供的分享功能,其实就是JSSDK使用,使用它提供的接口功能. 可以先看下微信公众号开发文档,上面介绍的很详细.提供了那些功能,怎么去使用. https://developers.wei ...

  7. 一次微信公众号分享功能总结

    updateAppMessageShareData 目前用的就是最新的分享接口,貌似也存在待废弃的onMenuShareAppMessage,但是几年了都没废弃,用法都差不多. 引入js <sc ...

  8. uni-app 对接微信公众号分享功能

    引入的方式有两种,可用npm也可直接下载js文件引入 npm install jweixin-module --save 依赖下载了之后可直接在需要掉起分享功能的页面直接配置参数: let wx= r ...

  9. Spring Boot + 微信公众号授权登录获取用户信息

    通过微信公众平台的官方文档,总结出网页授权流程分为: 1.引导用户进入授权页面同意授权,获取code 2.通过code换取网页授权access_token(与基础支持中的access_token不同) ...

最新文章

  1. Oracle数据库以及Oracle SQL Developer初体验
  2. pyecharts x轴全显示_超详细Pyecharts 1.x 教程,让你的图表动起来
  3. why I need register Apache CXF as servlet
  4. javascript --- 利用Sortable实现一个可视化公式编辑器
  5. bootstrap中导航、导航栏、表单及自定义表单
  6. jquery-演练-表格的模态框新增与点击删除功能
  7. 七牛云图片--Java文档
  8. 【英语学习】【Daily English】U11 Work L04 Can you keep it a secret?
  9. Azure夜校培训第二场2月22日18:00 正式盛情开幕
  10. 库克:5G iPhone目前还不是我们考虑的问题
  11. 安装配置远程工具Xmanager
  12. Linux服务笔记之一:Telnet远程登录
  13. QT 按钮(4种样式)
  14. Axis2发布webservices
  15. [POI2001] 和平委员会 Peaceful Commission——2-sat(dfs构造字典序最小解)
  16. 基于ssm公租房管理系统
  17. 台式计算机屏幕出现数字模拟,电脑显示器黑屏左上角显示数字模拟什么回事
  18. 超火动态表白H5源码
  19. 计算机内部可以用哪两种处理器封装类型,电脑CPU处理器封装形式大盘点
  20. 猫眼电影Top100爬取

热门文章

  1. Java手机号码工具类(判断运营商、获取归属地)
  2. CSDN博客如何添加微信公众号二维码
  3. Continous Integration.Continous Development,Continous Delivery之间的关系
  4. 列车排座2 算法笔试题
  5. Leetcode_NO199_二叉树的左视图,右视图
  6. 7-4 出圈游戏 (c 语言)PTA
  7. linux启动jdt服务,Eclipse搭建scala环境(解决“JDT weaving is currently disabled”)
  8. gitlab找回已删除的分支
  9. Oracle 12C -- in-database archiving
  10. 传智播客传智汇与华为联合举办主题沙龙,解读网络安全解决方案