微信分享到朋友圈,分享给朋友JS代码

时间:2022-09-14 17:05:28
php部分
function jssdk(){        $appid '这里替换成你的appid';        $secret '这里替换成你的key';        $_title '微信';        $code $_GET['code'];//获取code        $_SESSION['code'] = $code;//设置code缓存给微信付账使用        $auth file_get_contents("https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$secret."&code=".$code."&grant_type=authorization_code");//通过code换取网页授权access_token        $jsonauth = json_decode($auth); //对JSON格式的字符串进行编码        $arrayauth = get_object_vars($jsonauth);//转换成数组        $openid $arrayauth['openid'];//输出openid        $access_token $arrayauth['access_token'];        $_SESSION['openid'] = $openid;                 $accesstoken file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret."");//获取access_token        $token = json_decode($accesstoken); //对JSON格式的字符串进行编码        $t = get_object_vars($token);//转换成数组        $access_token $t['access_token'];//输出access_token                 $jsapi file_get_contents("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$access_token."&type=jsapi");        $jsapi = json_decode($jsapi);        $j = get_object_vars($jsapi);        $jsapi $j['ticket'];//get JSAPI                 $time = 14999923234;        $noncestr$time;        $jsapi_ticket$jsapi;        $timestamp=$time;        $url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];        $and "jsapi_ticket=".$jsapi_ticket."&noncestr=".$noncestr."&timestamp=".$timestamp."&url=".$url."";        $signature = sha1($and);        return $signature;    }

最后的一句代码,就是说,如果你在输出页面使用<?=jssdk();?>,那么就会输出$signature的内容。其中上面的$time是我手动指定的,这个一定要跟输出页面的js代码的值一样。

输出页面代码如下:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script><script language="javascript" type="text/javascript">wx.config({    debug: false,//这里是开启测试,如果设置为true,则打开每个步骤,都会有提示,是否成功或者失败    appId: '这里换成你的appid',    timestamp: '14999923234',//这个一定要与上面的php代码里的一样。    nonceStr: '14999923234',//这个一定要与上面的php代码里的一样。    signature: '<?=jssdk();?>',    jsApiList: [      // 所有要调用的 API 都要加到这个列表中        'onMenuShareTimeline',        'onMenuShareAppMessage',        'onMenuShareQQ',        'onMenuShareWeibo'    ]});wx.ready(function () {    wx.onMenuShareTimeline({        title: "<?=$act['act_name']?>"// 分享标题        link: "http://www.brandhd.com/v/events/view/<?=$act['act_id']?>", // 分享链接        imgUrl: "http://www.brandhd.com<?=$act['act_poster_small']?>", // 分享图标        success: function () {             // 用户确认分享后执行的回调函数        },        cancel: function () {             // 用户取消分享后执行的回调函数        }    });    wx.onMenuShareAppMessage({        title: "<?=$act['act_name']?>"// 分享标题        desc: "<?=substr($act['act_stime'],0,10)?><?=$act['act_place']?>"// 分享描述        link: "http://www.brandhd.com/v/events/view/<?=$act['act_id']?>", // 分享链接        imgUrl: "http://www.brandhd.com<?=$act['act_poster_small']?>", // 分享图标        type: ''// 分享类型,music、video或link,不填默认为link        dataUrl: ''// 如果type是music或video,则要提供数据链接,默认为空        success: function () {             // 用户确认分享后执行的回调函数        },        cancel: function () {             // 用户取消分享后执行的回调函数        }    });    wx.onMenuShareQQ({        title: "<?=$act['act_name']?>"// 分享标题        desc: "<?=substr($act['act_stime'],0,10)?>\n<?=$act['act_place']?>"// 分享描述        link: "http://www.brandhd.com/v/events/view/<?=$act['act_id']?>", // 分享链接        imgUrl: "http://www.brandhd.com<?=$act['act_poster_small']?>", // 分享图标        success: function () {            // 用户确认分享后执行的回调函数        },        cancel: function () {            // 用户取消分享后执行的回调函数        }    });    wx.onMenuShareWeibo({        title: "<?=$act['act_name']?>"// 分享标题        desc: "<?=substr($act['act_stime'],0,10)?>\n<?=$act['act_place']?>"// 分享描述        link: "http://www.brandhd.com/v/events/view/<?=$act['act_id']?>", // 分享链接        imgUrl: "http://www.brandhd.com<?=$act['act_poster_small']?>", // 分享图标        success: function () {            // 用户确认分享后执行的回调函数        },        cancel: function () {             // 用户取消分享后执行的回调函数        }    });});</script>


或者直接输出到php页面<?php
require_once "jssdk.php";
$jssdk = new JSSDK("wx78437366c2672eb9", "408e952767c07ab8a116751842e57e56");
$signPackage = $jssdk->GetSignPackage();
?>
<html lang="zh_CN">
<body></body>
<script>
 $(document).ready(function(){
  /*
   * 注意:
   * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
   * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
   * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
   *
   * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
   * 邮箱地址:weixin-open@qq.com
   * 邮件主题:【微信JS-SDK反馈】具体问题
   * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
   */
   //alert($.cookie('user_id'));
    var links1='http://mm.gushen178.com/wapZhuanti';
    if($.cookie('user_id')!=undefined||$.cookie('user_id')!=null){
links1='http://mm.gushen178.com/wapZhuanti/?rec_uid='+$.cookie("uid");
}
//alert(links1);

   wx.ready(function () {
wx.onMenuShareTimeline({
title: '150万现金奖励是真的么?别逗了!你看看有多少大学生已经拿奖了!',
desc: '2016“股神交友”中国大学生模拟证券投资大奖赛,总冠军8万元,月冠军1万元,周冠军3千元。每周每月每年前三名都有奖!',
link:links1,
imgUrl:'http://mm.gushen178.com/wapZhuanti/images/512.png',
success: function () {
alert('已分享');
},
cancel: function () { 
alert('已取消');
}
});
wx.onMenuShareAppMessage({
title: '150万现金奖励是真的么?别逗了!你看看有多少大学生已经拿奖了!',
desc: '2016“股神交友”中国大学生模拟证券投资大奖赛,总冠军8万元,月冠军1万元,周冠军3千元。每周每月每年前三名都有奖!',
link: links1,
imgUrl:'http://mm.gushen178.com/wapZhuanti/images/512.png',
type: '', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
alert('已分享');
},
cancel: function () { 
alert('已取消');
}
});
   });
 });
</script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
 $(document).ready(function(){
  /*
   * 注意:
   * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
   * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
   * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
   *
   * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
   * 邮箱地址:weixin-open@qq.com
   * 邮件主题:【微信JS-SDK反馈】具体问题
   * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
   */
  wx.config({
    debug: false,
    appId: '<?php echo $signPackage["appId"];?>',
    timestamp: <?php echo $signPackage["timestamp"];?>,
    nonceStr: '<?php echo $signPackage["nonceStr"];?>',
    signature: '<?php echo $signPackage["signature"];?>',
    jsApiList: ["onMenuShareTimeline","onMenuShareAppMessage","onMenuShareQQ","onMenuShareWeibo","onMenuShareQZone","startRecord","stopRecord","onVoiceRecordEnd","playVoice","pauseVoice","stopVoice","onVoicePlayEnd","uploadVoice","downloadVoice","chooseImage","previewImage","uploadImage","downloadImage","translateVoice","getNetworkType","openLocation","getLocation","hideOptionMenu","showOptionMenu","hideMenuItems","showMenuItems","hideAllNonBaseMenuItem","showAllNonBaseMenuItem","closeWindow","scanQRCode","chooseWXPay","openProductSpecificView"]


  });
 });
</script>
</html>