php 微信分享可编辑分享标题、内容、图标

微信分享

1、服务端
//生成签名的随机串
function nonceStr($length){
$str = ‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’;//62个字符
s t r l e n = 62 ; w h i l e ( strlen = 62; while( strlen=62;while(length > $strlen){
$str .= $str;
$strlen += 62;
}
s t r = s t r s h u f f l e ( str = str_shuffle( str=strshuffle(str);
return substr( s t r , 0 , str,0, str,0,length);
}

//获取access_token
public function access_token(){
    $app_id = $this->config['app_id'];
    $app_secret = $this->config['app_secret'];
    $result = $this->get_by_curl("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$app_id."&secret=".$app_secret);
    $json = json_decode($result,true);
    $access_token = $json['access_token'];
    return $access_token;
}

//获取ticket
public function get_ticket(){
    $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=".$this->access_token();
    $res = json_decode($this->get_by_curl( $url ));
    $ticket = $res->ticket;
    return $ticket;
}

/**
 * 请求微信接口获取数据
 * @param $url
 * @param bool $post
 * @return bool|string
 */
function get_by_curl($url,$post = false){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if($post){
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
    }
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

//分享获取config
function getWxConfig() {
    $appid = $this->config['app_id'];
    $jsapiTicket = $this->get_ticket();
    $url = '';
    $timestamp = time();
    $nonceStr = $this->nonceStr(16);
    $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";
    $signature = sha1 ( $string );

    $WxConfig["appId"] = $appid;
    $WxConfig["nonceStr"] = $nonceStr;
    $WxConfig["timestamp"] = $timestamp;
    $WxConfig["url"] = $url;
    $WxConfig["signature"] = $signature;
    $WxConfig["rawString"] = $string;
    return json_encode($WxConfig);
}

2、前端
<script>
function getCookie(name)
{
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    return (arr=document.cookie.match(reg))?unescape(arr[2]):null;
}

$(function() {
    //对url进行编码
    var localUrl = encodeURIComponent(location.href.split('#')[0]);
    //url传到后台格式
    var Url = "URL=" +localUrl;
    //这几个参数都是后台从微信公众平台获取到的
    var nonceStr, signature, timestamp, appId, shareUrl;
    $.ajax({
        //后台获取参数接口
        url: "/getWxConfig",
        beforeSend: function(xhr) {
            xhr.setRequestHeader("Token", getCookie("token"));
        },
        type: 'get',
        data: Url,
        success: function(data) {
            //得到参数
            var appId = JSON.parse(data).appId;
            var nonceStr = JSON.parse(data).nonceStr;
            var signature = JSON.parse(data).signature;
            var timestamp = JSON.parse(data).timestamp;
            var shareUrl = JSON.parse(data).url;
            //通过微信config接口注入配置
            wx.config({
                debug: false, // 默认为false  为true的时候是调试模式,会打印出日志
                appId: appId,
                timestamp: timestamp,
                nonceStr: nonceStr,
                signature: signature,
                jsApiList: [
                    'checkJsApi',
                    'onMenuShareTimeline',
                    'onMenuShareAppMessage',
                    'onMenuShareQQ',
                    'onMenuShareWeibo'
                ]
            });
            //配置自定义分享内容
            window.share_config = {
                'share': {
                    'imgUrl': '图标', // 这里是需要展示的图标
                    'desc': '描述', // 这是分享展示的摘要
                    'title': '标题', // 这是分享展示卡片的标题
                    'link': shareUrl, // 这里是分享的网址
                    'success': function(rr) {
                        //console.log('成功' + JSON.stringify(rr))
                    },
                    'cancel': function(tt) {
                        //console.log('失败' + JSON.stringify(tt));
                    }
                }
            };
            wx.ready(function() {
                wx.onMenuShareAppMessage(share_config.share); // 微信好友
                wx.onMenuShareTimeline(share_config.share); // 微信朋友圈
                wx.onMenuShareQQ(share_config.share); // QQ
            });

        },
        error: function(err) {

        },
    });

})
</script>
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信内容分享平台CMS(内容管理系统)是使用PHP语言编写的源码,可以用于构建一个功能丰富的微信内容分享平台。通过该平台,用户可以分享微信公众号文章、朋友圈、小程序等的内容。 该CMS源码提供了许多功能和模块,包括用户管理、内容管理、分类标签、评论管理等。用户可以注册账号、登录平台,并可根据自己的兴趣爱好选择关注感兴趣的公众号或话题标签,获取相关的内容推荐。 在内容管理方面,该CMS源码支持对微信公众号、朋友圈等内容进行管理和发布。用户可以通过输入微信文章链接或者上传文章图片进行发布。平台会自动提取文章标题、摘要、封面图等信息,并根据用户的设定进行展示和推荐。 分类标签模块可以帮助用户根据不同的主题将内容进行分类,方便用户浏览和搜索感兴趣的内容。用户可以根据自己的喜好,浏览特定分类下的文章或者关注特定标签的内容更新。 另外,该CMS源码还支持用户之间的交互和评论功能。用户可以对文章进行评论和点赞,也可以关注其他用户的动态,以及回复和互动。这样能够增加用户之间的互动和分享,提升平台的活跃度。 总的来说,这个微信内容分享平台CMS php源码提供了一个完整的内容分享平台的基础架构,可以帮助开发者快速搭建一个功能完备的微信内容分享平台。无论是个人用户还是企业机构,都能够通过该平台实现个人或者品牌的宣传和推广。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值