spring boot 微信分享到朋友圈,微信分享给朋友,

一、微信公众号

获取appid,secret

二、设置JS接口安全域名

公众号设置-》功能设置-》JS接口安全域名

三、设置白名单

基本设置-》IP白名单

这个不设置获取不了TOKEN

四、获取签名相关

@GetMapping(path = "getWxInfo")
    public CommonResult getWxInfo(String url) {
        CommonResult result = new CommonResult();
            if (obj != null) {
                Map map = new HashMap();
                map.putAll((Map)obj);
                result.setData(map);
            } else {
                String hp = get("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + DEFAULT_SOCIAL_WEIXIN_Tmp_APP_ID + "&secret=" + DEFAULT_SOCIAL_WEIXIN_Tmp_APP_SECRET + "");
                JSONObject json = JSON.parseObject(hp);
                if (null != json.get("access_token")) {
                    String ticket = get("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + json.get("access_token") + "&type=jsapi");
                    JSONObject json1 = JSON.parseObject(ticket);
                    if (null != json1.get("ticket")) {
                        Map map = Sign.sign(json1.get("ticket").toString(), url);
                        result.setData(map);
                    }

                }
            }
        return result;
    }
public static String get(String urlStr) {
        HttpGet get = new HttpGet(urlStr);
        try {
            HttpClient client = HttpClients.createDefault();
            HttpResponse response = client.execute(get);
            HttpEntity entity = response.getEntity();
            String result = EntityUtils.toString(entity, "UTF-8");
            System.out.print(result);;
            return result;
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

签名一天只多2000次,时间为7200秒,可以用REDIS缓存

五、HTML页面

<script src="https://res2.wx.qq.com/open/js/jweixin-1.4.0.js"></script>

<script>

	wx.config({
      debug: false, //是否 开启调试模式,建议调试的时候debug 改为true
      appId: 'xxxxx', // 必填,公众号的唯一标识
      timestamp: '1556602084', // 必填,生成签名的时间戳
      nonceStr: '96e2140a-be7f-4d61-a1e5-123a7898476e', // 必填,生成签名的随机串
      signature: 'a1545d56ae3c5d2d388e20ba4a92e5bda74e11ed', // 必填,签名,见附录1
      jsApiList: [
        'checkJsApi',
        'updateAppMessageShareData',
        'updateTimelineShareData',
        'onMenuShareAppMessage',
        'onMenuShareTimeline',
        'showOptionMenu',
      ] // 必填,需要使用的JS接口列表 声明
    });
    wx.error(function(res) {
      // alert("微信接口初始化失败;错误信息:"+res.toString());
    });
    window.onload = function() {
      // alert("当前域名是:"+url);
    }
    wx.ready(function() {
      //wx.onMenuShareAppMessage({
		  wx.updateAppMessageShareData({
        debug: false,
        title: '分享标题', // 分享标题
        desc: '分享描述', // 分享描述
        link: "", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl: "", // 分享图标
        success: function() {
          // 用户点击了分享后执行的回调函数
        }
      });
      wx.updateTimelineShareData({
        debug: false,
        title: '分享标题', // 分享标题
        desc: '分享描述', // 分享描述
        link: "", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl: "", // 分享图标
        success: function() {
          // 用户点击了分享后执行的回调函数
        }
      });
    });

	</script>

为了好看明白,这里是写死的签名信息,

//wx.onMenuShareAppMessage({
          wx.updateAppMessageShareData({ 微信开发工具不支持这个方法,手机微信支持,开发工具onMenuShareAppMessage

 

备注:检查签名URLhttps://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign

要分享的URL必须是当前签名的URL,不能用aURL的签名分享bURL的链接

若是检查签名没错,报invalid sign,

一、检查公众号是否完成验证,拥有权限

二、检查签名的URL与分享URL,微信上输入http://www.baidu.com实际打开的地址是http://www.baidu.com/ 后面会多个斜杠

var url1 =location.href.split('#')[0];

三、检查HTML wx.config里的大小写是否正确,jsApiList里是否有相应方法。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值