cari
Rumahphp教程PHP源码微信公众号自定义分享内容实现

微信公众号号在手机中通过api接口可以实现自定义分享内容了,下面我们来看这个接口的实现步骤。

<script>ec(2);</script>


一、准备阶段

公众号一个,微网站一个。
 

二、绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
备注:登录后可在“开发者中心”查看对应的接口权限。
 
三、代码

<?php
//curl获取请求文本内容
function get_curl_contents($url, $method =&#39;GET&#39;, $data = array()) {
    if ($method == &#39;POST&#39;) {
        //使用crul模拟
        $ch = curl_init();
        //禁用https
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        //允许请求以文件流的形式返回
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_URL, $url);
        $result = curl_exec($ch); //执行发送
        curl_close($ch);
    }else {
        if (ini_get(&#39;allow_fopen_url&#39;) == &#39;1&#39;) {
            $result = file_get_contents($url);
        }else {
            //使用crul模拟
            $ch = curl_init();
            //允许请求以文件流的形式返回
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
            //禁用https
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_URL, $url);
            $result = curl_exec($ch); //执行发送
            curl_close($ch);
        }
    }
    return $result;
}
//获取微信公从号access_token
function wx_get_token() {
    $AppID = &#39;1235464654&#39;;//AppID(应用ID)
    $AppSecret = &#39;705641465sdfasdf456465a4sdf&#39;;//AppSecret(应用密钥)
    $url = &#39;https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=&#39;.$AppID.&#39;&secret=&#39;.$AppSecret;
    $res = get_curl_contents($url);
    $res = json_decode($res, true);
    //这里应该把access_token缓存起来,至于要怎么缓存就看各位了,有效期是7200s
    return $res[&#39;access_token&#39;];
}
//获取微信公从号ticket
function wx_get_jsapi_ticket() {
    $url = sprintf("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=%s&type=jsapi", wx_get_token());
    $res = get_curl_contents($url);
    $res = json_decode($res, true);
    //这里应该把access_token缓存起来,至于要怎么缓存就看各位了,有效期是7200s
    return $res[&#39;ticket&#39;];
}
$wx = array();
//生成签名的时间戳
$wx[&#39;timestamp&#39;] = time();
//生成签名的随机串
$wx[&#39;noncestr&#39;] = &#39;Wm3WZYTPz0wzccnW&#39;;
//jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。
$wx[&#39;jsapi_ticket&#39;] = wx_get_jsapi_ticket();
//分享的地址,注意:这里是指当前网页的URL,不包含#及其后面部分,曾经的我就在这里被坑了,所以小伙伴们要小心了
$wx[&#39;url&#39;] = &#39;http://www.baidu.com&#39;;
$string = sprintf("jsapi_ticket=%s&noncestr=%s&timestamp=%s&url=%s", $wx[&#39;jsapi_ticket&#39;], $wx[&#39;noncestr&#39;], $wx[&#39;timestamp&#39;], $wx[&#39;url&#39;]);
//生成签名
$wx[&#39;signature&#39;] = sha1($string);
/*
注意事项
签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。
签名用的url必须是调用JS接口页面的完整URL。
出于安全考虑,开发者必须在服务器端实现签名的逻辑。
*/
?>

四、视图显示

在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js
通过config接口注入权限验证配置

<script>

//通过config接口注入权限验证配置

wx.config({

    debug : false,

    appId : &#39;AppID&#39;,

    timestamp : &#39;<?php echo $wx["timestamp"];?>&#39;,

    nonceStr : &#39;<?php echo $wx["noncestr"];?>&#39;,

    signature : &#39;<?php echo $wx["signature"];?>&#39;,

    jsApiList : [&#39;onMenuShareTimeline&#39;, &#39;onMenuShareAppMessage&#39;, &#39;onMenuShareQQ&#39;, &#39;onMenuShareWeibo&#39;]

});

wx.ready(function(){

    var

        s_title = &#39;分享标题&#39;,   // 分享标题

        s_link = &#39;分享链接&#39;,    // 分享链接

        s_desc = &#39;分享描述&#39;,   //分享描述

        s_imgUrl = &#39;分享图片&#39;; // 分享图标

    //朋友圈

    wx.onMenuShareTimeline({

        title: s_title, // 分享标题

        link: s_link, // 分享链接

        imgUrl: s_imgUrl, // 分享图标

        success: function () { },

        cancel: function () { }

    });

    //发送给好友

    wx.onMenuShareAppMessage({

        title: s_title, // 分享标题

        desc: s_desc, // 分享描述

        link: s_link, // 分享链接

        imgUrl: s_imgUrl, // 分享图标

        type: &#39;&#39;, // 分享类型,music、video或link,不填默认为link

        dataUrl: &#39;&#39;, // 如果type是music或video,则要提供数据链接,默认为空

        success: function () {},

        cancel: function () {}

    });

    //QQ好友

    wx.onMenuShareQQ({

        title: s_title, // 分享标题

        desc: s_desc, // 分享描述

        link: s_link, // 分享链接

        imgUrl: s_imgUrl, // 分享图标

        success: function () { },

        cancel: function () { }

    });

    //腾讯微博

    wx.onMenuShareWeibo({

        title: s_title, // 分享标题

        desc: s_desc, // 分享描述

        link: s_link, // 分享链接

        imgUrl: s_imgUrl, // 分享图标

        success: function () { },

        cancel: function () { }

    });

});

</script>

五、大功告成

基本上的流程就是这样了,比较麻烦的一点就是生成签名那一块,注意一点就行了

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa