配置微信公众号使用js-sdk

2 篇文章 0 订阅
1 篇文章 0 订阅

配置微信公众号使用js-sdk

昨天做项目才发现,同事用的别人配好的端口进行开发,根本不符合我们的预期,所以我只能自己搞。看了一下,还是蛮简单的,所以就直接弄了~

首先要配置一下公众账号

首先进入公众号配置

首先进入公众号配置

点击功能设置

这里写图片描述

点击设置js接口安全域名

这里写图片描述

添加自己的域名

这里写图片描述

然后上代码

<?php
//获取token的方法
function getToken($appid, $secret){
    $getToken = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret;

    $re = file_get_contents($getToken);

    $token = json_decode($re, true);

    //保存token, 这里我是写入一个本地文件,也可以存数据库..
    file_put_contents('./token', $token['access_token']);

    return $token['access_token'];
}

//获得ticket方法
function getTicket($token){
    $getTicket = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='.$token.'&type=jsapi';

    $ticket = file_get_contents($getTicket);
    $ticket = json_decode($ticket, true);

    //在这里存时间戳,是因为有一个先后顺序
    file_put_contents('./time', time());
    file_put_contents('./ticket', $ticket['ticket']);

    return $ticket['ticket'];
}

//你公众号的一些配置
$appid = '';
$secret = "";


//获得token
if(file_exists('./token')){
    $time = file_get_contents('./time');

    //一般token和ticket是两个小时过期,所以要检查
    if(time() - $time > 7000){
        $token = getToken($appid, $secret);
    } else {
        $token = file_get_contents('./token');
    }
} else {
    //设置一个时间戳
    $time = time();
    $token = getToken($appid, $secret);
}



//获得ticket
if(file_exists('./ticket')){
    $time = file_get_contents('./time');

    if(time() - $time > 7000){
        $ticket = getTicket($token);
    } else {
        $ticket = file_get_contents('./ticket');
    }
} else {
    $ticket = getTicket($token);
}

$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

$str = 'jsapi_ticket='.$ticket.'&noncestr=pandaliu&timestamp='.$time.'&url='.$url;
$sign = sha1($str);

//最终这个数据传给js-sdk
$package = array(
    "appId"     => $appid,
    "nonceStr"  => 'pandaliu',
    "timestamp" => $time,
    "url"       => $url,
    "signature" => $sign,
    "rawString" => $str
);
?>

<script>
//微信sdk的配置
wx.config({
        debug: false,
        appId: '<?php echo $package["appId"];?>',
        timestamp: <?php echo $package["timestamp"];?>,
        nonceStr: '<?php echo $package["nonceStr"];?>',
        signature: '<?php echo $package["signature"];?>',
        jsApiList: [
            // 所有要调用的 API 都要加到这个列表中
            'onMenuShareQQ',
            'onMenuShareTimeline',
            'onMenuShareAppMessage'
          ]
    });

    //分享
    wx.ready(function(){
        share();    
    });

    wx.error(function(res){
        alert(JSON.stringify(res));
    });

    var shareWxData = {
        title: '分享时的题目',
        desc: '分享时的描述',
        link: '分享时的链接',
        //分享图片的路径
        imgUrl: '', 
        trugger: function(res){
            alert('用户点击分享朋友圈');
        },
        success: function(res){
            alert('分享成功');
        },
        cancel: function(res){
            alert('分享取消');
        },
        fail: function(res){
            alert(JSON.stringify(res));
        }
    };

    function share(){
        //分享到朋友圈
        wx.onMenuShareTimeline(shareWxData);
        //分享给微信好友
        wx.onMenuShareAppMessage(shareWxData);
        //分享给QQ好友
        wx.onMenuShareQQ(shareWxData);
    }

</script>

以上,就是全部内容(太懒了,断断续续写了两天)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值