Javascript中实现分享到微信的方法

作者:简简单单 2015-02-08


主要功能,获取用户分享后的状态,分享成功,分享失败之类
代码片段:
$noncestr = getRandStr(15);
        $timestamp = time();
        
        $access_token = access_token($db);
        //var_dump($access_token);
        //exit();
    $url = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='. $access_token .'&type=jsapi';
    $ret_json = curl_get_contents($url);
    $ret = json_decode($ret_json);
    $_SESSION['jsapi_ticket'] = $ret-> ticket;
        //var_dump($ret);
        $strvalue = 'jsapi_ticket='.$_SESSION['jsapi_ticket'].'&noncestr='.$noncestr.'×tamp='.$timestamp.'&url=http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$signature = sha1($strvalue);
 
    //var_dump($strvalue);
    $smarty->assign('timestamp',$timestamp);
    $smarty->assign('nonceStr',$noncestr);
    $smarty->assign('signature',$signature);

Php部分主要是通过appid和secret 获取token后 用token获取一个ticket 。

输出时间,输出随机字符串,输出加密后的签名
js部分:
wx.config({
    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: 'xxxxx', // 必填,公众号的唯一标识
    timestamp: '{$timestamp}', // 必填,生成签名的时间戳
    nonceStr: '{$nonceStr}', // 必填,生成签名的随机串
    signature: '{$signature}',// 必填,签名,见附录1
    jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
 
wx.ready(function(){
 
wx.onMenuShareTimeline({
    title: '分享标题', // 分享标题
    link: 'http://baidu.com', // 分享链接
    imgUrl: '/wp-content/themes/weisaysimple/images/random/tb5.jpg', // 分享图标
    success: function () {
        // 用户确认分享后执行的回调函数
        //alert(1111);
    },
    cancel: function () {
        // 用户取消分享后执行的回调函数
        //alert(222);
    }
});
 
    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

相关文章

精彩推荐