微信js-sdk分享,修改分享内容及链接

其实主要还是要看微信的js-sdk
http://mp.weixin.qq.com/wiki/11/74ad127cc054f6b80759c40f77ec03db.html

页面上的代码(微信文档中有)

<script> 

wx.config({
    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: '${appId}', // 必填,公众号的唯一标识
    timestamp: '${timestamp}', // 必填,生成签名的时间戳
    nonceStr:  '${nonce_str}', // 必填,生成签名的随机串
    signature: '${signature1}',// 必填,签名,见附录1
    jsApiList: [  'checkJsApi',
                  'onMenuShareTimeline',
                  'onMenuShareAppMessage'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});

// 微信 conifg验证完成后,会进入ready方法,在这里实现你的修改
   wx.ready(function(){
     wx.checkJsApi({
         jsApiList: [
             'getNetworkType',
             'previewImage'
         ],
         success: function (res) {
            // alert("checkJsApi=="+ JSON.stringify(res));
         }
     });

     wx.onMenuShareTimeline({
            title: '我是分享的标题', // 分享标题
            link:  '', // 分享链接
            imgUrl: '', // 分享图标
            success: function () { 
                // 用户确认分享后执行的回调函数
            },
            cancel: function () { 
                // 用户取消分享后执行的回调函数
            }
        }); 


    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
    //分享给朋友
    wx.onMenuShareAppMessage({
        title: '我是分享的标题', // 分享标题
        desc: '我是分享的内容', // 分享描述
        link: '', //分享的链接
        imgUrl:'', // 分享图标
        type: 'link', // 分享类型,music、video或link,不填默认为link
        //dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
        success: function () { 
            // 用户确认分享后执行的回调函数
            //alert("用户确定分享");

        },

        cancel: function () { 
            // 用户取消分享后执行的回调函数
            //alert("用户取消分享");
        }
    });


});

wx.error(function(res){
    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
    //alert("errormsg="+ JSON.stringify(res));
});


</script>

其实这次开发就是遇到了一个问题而已,
一直报错 “ errmsg configinvalid signature”
其实是 sha1 签名出现了问题
工具类sha1签名:

public static String NEWcreateSHA1Sign(String  ss) {

          String signature="";
//        string1 = "jsapi_ticket=" + jsapiTicket +
//                   "&noncestr=" + rand +
//                   "&timestamp=" + timestamp +
//                   "&url=" + url;
//         System.out.println(string1);

         try
           {
               MessageDigest crypt = MessageDigest.getInstance("SHA-1");
               crypt.reset();
               crypt.update(ss.getBytes("UTF-8"));
               signature = byteToHex(crypt.digest());
           }
           catch (Exception e){
               e.printStackTrace();
           }

//          System.out.println("签名1:"+signature);
          // System.out.println("签名2:"+  SHA1Util.encode(string1) );
      return signature;

    }


     private static String byteToHex(final byte[] hash) {
        Formatter formatter = new Formatter();
        for (byte b : hash)
        {
            formatter.format("%02x", b);
        }
        String result = formatter.toString();
        formatter.close();
        return result;
      }

后台代码

获取 token
获取jsapi_ticket
生成签名
返回给页面数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空白的泡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值