TypechoJoeTheme

轩宇网

PHP实现微信自定义分享图片,标题,描述

PHP实现微信自定义分享图片,标题,描述


weshare.php

<?php
// 步骤1.设置appid和appsecret
$appid = 'wxabcddefjfgghg';
$appsecret = 'fdsfagewafasdf125f1d5f15e3fc';

// 步骤2.生成签名的随机串
function nonceStr($length){
    $str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';//62个字符
    $strlen = 62;
    while($length > $strlen){
        $str .= $str;
        $strlen += 62;
    }
    $str = str_shuffle($str);
    return substr($str,0,$length);
}

// 步骤3.获取access_token
$result = http_get('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret);
$json = json_decode($result,true);
$access_token = $json['access_token'];

function http_get($url){
    $oCurl = curl_init();
    if(stripos($url,"https://")!==FALSE){
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
    }
    curl_setopt($oCurl, CURLOPT_URL, $url);
    curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
    $sContent = curl_exec($oCurl);
    $aStatus = curl_getinfo($oCurl);
    curl_close($oCurl);
    if(intval($aStatus["http_code"])==200){
        return $sContent;
    }else{
        return false;
    }
}


// 步骤4.获取ticket
$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$access_token";
$res = json_decode ( http_get ( $url ) );
$ticket = $res->ticket;

function getWxConfig($appid,$jsapiTicket,$url,$timestamp,$nonceStr) {
    $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 $WxConfig;
}

// 步骤5.生成wx.config需要的参数
$surl = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$ws = getWxConfig( $appid,$ticket,$surl,time(),nonceStr(16) );
?>

demo.php

<?php //require .'/weshare.php';//
define('ROOT_PATH', dirname(__FILE__));
//define("MUYU" , true);//全局网站标示(防止恶意访问) 然而并没有卵用
  require ROOT_PATH.'/weshare.php'
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Share Demo</title>
</head>
<body>
</body>
// 步骤6.调用JS接口
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
    wx.config({
        debug: false,
        appId: '<?php echo $ws["appId"]; ?>',
        timestamp: '<?php echo $ws["timestamp"]; ?>',
        nonceStr: '<?php echo $ws["nonceStr"]; ?>',
        signature: '<?php echo $ws["signature"]; ?>',
        jsApiList: [
            'checkJsApi',
            'onMenuShareTimeline',
            'onMenuShareAppMessage',
            'onMenuShareQQ',
            'onMenuShareWeibo',
            'onMenuShareQZone',
        ]
    });

    var wstitle = "我是标题";
    var wsdesc = "我是描述";
    var wslink = "<?php echo $surl; ?>";
    var wsimg = "http://fmwei.com/usr/uploads/2016/07/794257096.png";

</script>
<!--<script src="wxshare.js"></script>-->
<script>
    wx.ready(function () {
        // 分享到朋友圈
        wx.onMenuShareTimeline({
            title: wstitle,
            link: wslink,
            imgUrl: wsimg,
            success: function () {
                alert('分享成功');
            },
            cancel: function () {
            }
        });

        // 分享给朋友
        wx.onMenuShareAppMessage({
            title: wstitle,
            desc: wsdesc,
            link: wslink,
            imgUrl: wsimg,
            success: function () {
                alert('分享成功');
            },
            cancel: function () {
            }
        });

        // 分享到QQ
        wx.onMenuShareQQ({
            title: wstitle,
            desc: wsdesc,
            link: wslink,
            imgUrl: wsimg,
            success: function () {
                alert('分享成功');
            },
            cancel: function () {
            }
        });

        // 微信到腾讯微博
        wx.onMenuShareWeibo({
            title: wstitle,
            desc: wsdesc,
            link: wslink,
            imgUrl: wsimg,
            success: function () {
                alert('分享成功');
            },
            cancel: function () {
            }
        });

        // 分享到QQ空间
        wx.onMenuShareQZone({
            title: wstitle,
            desc: wsdesc,
            link: wslink,
            imgUrl: wsimg,
            success: function () {
                alert('分享成功');
            },
            cancel: function () {
            }
        });

    });

</script>
</html>
赞(0)