在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 網絡軟件教程 > 詳細頁面

php完成微信sdk分享接口

php完成微信sdk分享接口

更新時間:2025-09-20 文章作者:未知 信息來源:網絡 閱讀次數:

微信(WeChat)是騰訊公司于2011年1月21日推出的一個為智能終端提供即時通訊服務的免費應用程序,由張小龍所帶領的騰訊廣州研發中心產品團隊打造 [2] 。微信支持跨通信運營商、跨操作系統平臺...
微信(WeChat)是騰訊公司于2011年1月21日推出的一個為智能終端提供即時通訊服務的免費應用程序,由張小龍所帶領的騰訊廣州研發中心產品團隊打造 [2] 。微信支持跨通信運營商、跨操作系統平臺通過網絡快速發送免費(需消耗少量網絡流量)語音短信、視頻、圖片和文字,同時,也可以使用通過共享流媒體內容的資料和基于位置的社交插件“搖一搖”、“漂流瓶”、“朋友圈”、”公眾平臺“、”語音記事本“等服務插件。
軟件開發工具包(外語首字母縮寫:SDK、外語全稱:Software Development Kit)一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平臺、操作系統等建立應用軟件時的開發工具的集合。本文主要和大家分享php實現微信sdk分享接口,希望能幫助到大家。

<?php
class Wxsdk
{
    private $appId;
    private $appSecret;

    /*
     * 這里為威獅碼的公眾號的openid和appsecret,如果配置到其他的子商家會出現需要關注威獅碼公眾號,
     * 則需要獲取數據庫的vender表里面的openid和appsecret
     * */
    public function __construct($appId = '自己的appid', $appSecret = '自己的appSecret')
    {
        $this->appId = $appId;
        $this->appSecret = $appSecret;
    }


    public function getSignPackage(Request $request)
    {
//接收到前端的轉義url轉義回來
        $url = $_POST;
        $durl = $url['url'];
        $durl = urldecode($durl);

        $jsapiTicket = $this->getJsApiTicket();
        $timestamp = time();
        $nonceStr = $this->createNonceStr();
        // 這里參數的順序要按照 key 值 ASCII 碼升序排序
        $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$durl";


        $signature = sha1($string);


        $signPackage = [
            "appId" => $this->appId,
            "nonceStr" => $nonceStr,
            "timestamp" => $timestamp,
            "url" => $url,
            "signature" => $signature,
            "rawString" => $string
        ];
//        var_dump($signPackage);die;
        throw new SuccessMessage(['msg' => $signPackage]);
    }


    private function createNonceStr($length = 16)
    {
        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        $str = "";
        for ($i = 0; $i < $length; $i++) {
            $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
        }
        return $str;
    }


    private function getJsApiTicket()
    {
        // jsapi_ticket 應該全局存儲與更新,以下代碼以寫入到文件中做示例
        $data = json_decode(file_get_contents("jssdk/jsapi_ticket.json"));
        if ($data->expire_time < time()) {
            $accessToken = $this->getAccessToken();
            //定義傳遞的參數數組
            $params['type'] = 'jsapi';
            $params['access_token'] = $accessToken;
            $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" . $params['access_token'] . "&type=" . $params['type'] . "";
            $res = json_decode(curl_get($url, $params));
            $ticket = isset($res->ticket) ? $res->ticket : NULL;
            if ($ticket) {
                $res->expire_time = time() + 7000;
                $res->jsapi_ticket = $ticket;
                $fp = fopen("jssdk/jsapi_ticket.json", "w");
                fwrite($fp, json_encode($res));
                fclose($fp);
            }
        } else {
            $ticket = $data->jsapi_ticket;
        }
        return $ticket;
    }


    private function getAccessToken()
    {
        // access_token 應該全局存儲與更新,以下代碼以寫入到文件中做示例
        $data = json_decode(file_get_contents("jssdk/access_token.json"));
        if ($data->expire_time < time()) {
            //定義傳遞的參數數組
            $params['grant_type'] = 'client_credential';
            $params['appid'] = $this->appId;
            $params['secret'] = $this->appSecret;
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=" . $params['grant_type'] . "&appid=" . $params['appid'] . "&secret=" . $params['secret'] . "";
            $res = json_decode(curl_post($url, $params));
            $access_token = isset($res->access_token) ? $res->access_token : NULL;
            if ($access_token) {
                $res->expire_time = time() + 7000;
                $res->access_token = $access_token;
                $fp = fopen("jssdk/access_token.json", "w");
                fwrite($fp, json_encode($res));
                fclose($fp);
            }
        } else {
            $access_token = $data->access_token;
        }
        return $access_token;
    }
前端代碼

核對官方步驟,確認簽名算法。

  • 確認簽名算法正確,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 頁面工具進行校驗。

  • 確認config中nonceStr(js中駝峰標準大寫S), timestamp與用以簽名中的對應noncestr, timestamp一致。

  • 確認url是頁面完整的url(請在當前頁面alert(location.href.split('#')[0])確認),包括'http(s)://'部分,以及'?'后面的GET參數部分,但不包括'#'hash后面的部分。

  • 確認 config 中的 appid 與用來獲取 jsapi_ticket 的 appid 一致。

  • 確保一定緩存access_token和jsapi_ticket。

  • 確保你獲取用來簽名的url是動態獲取的,動態頁面可參見實例代碼中php的實現方式。如果是html的靜態頁面在前端通過ajax將url傳到后臺簽名,前端需要用js獲取當前頁面除去'#'hash部分的鏈接(可用location.href.split('#')[0]獲取,而且需要encodeURIComponent,后臺decodeURIComponent解碼),因為頁面一旦分享,微信客戶端會在你的鏈接末尾加入其它參數,如果不是動態獲取當前鏈接,將導致分享后的頁面簽名失敗。

簽名是正確,上面的步驟還沒能解決你的問題(invalid signature)那就用是url的問題,注意:微信公眾號必須配置了你調試的安全域名(可以配置二級域名:xxx.com,而不用配置多個a.xxx.com/b.xxx.com等)。

原因:微信分享時候會給你當前頁面添加多個參數,你sha1時候必須保證url地址是微信給你加了參數之后的地址,這樣才不會報config:invalid signature.

解決方案:sha1之前url必須是解碼之后的正常的肉眼直接能識別的url,如果你用的是靜態頁面,在你配置wx.config之前,先通過encodeURIComponent(location.href.split('#')[0])把當前url編碼傳遞到后臺,后臺通過decodeURIComponent解碼,核心代碼如下:

前臺html頁面,編碼傳遞url:

jQuery.post("/xxx", {"url": encodeURIComponent(window.location.href.split('#')[0]),"t": new Date().getTime()}, function (result) {
    if (result.errno != 0) {
        alert("您當前的網絡不穩定請稍后再試!");
        return;
    }
    var shareUrl = result.data.url;
    wx.config({
        debug: true, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
        appId: 'xxx', // 必填,公眾號的唯一標識
        timestamp: result.data.timestamp, // 必填,生成簽名的時間戳
        nonceStr: result.data.nonceStr, // 必填,生成簽名的隨機串
        signature: result.data.signature,// 必填,簽名,見附錄1
        jsApiList: ['onMenuShareAppMessage','onMenuShareTimeline','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
    });

以上就是php實現微信sdk分享接口的詳細內容,更多請關注php中文網其它相關文章!


微信提供公眾平臺、朋友圈、消息推送等功能,用戶可以通過“搖一搖”、“搜索號碼”、“附近的人”、掃二維碼方式添加好友和關注公眾平臺,同時微信將內容分享給好友以及將用戶看到的精彩內容分享到微信朋友圈。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 人人妻人人添人人爽欧美一区| 国产精品无码乱伦| 男女激情免费视频| 国产高清视频网站| 国产福利视频在线播放| 久久人人爽人人爽人人av| 国产精品自在自线| 午夜久久久精品| 免费日韩中文字幕| 国产偷人视频免费| 黄色www网站| 国产成人一二三区| 国产91视频一区| 麻豆映画在线观看| 亚洲色图都市激情| 国产人妻人伦精品| 国产欧美精品aaaaaa片| 三区视频在线观看| 中文字幕 欧美日韩| 欧美一级片中文字幕| 成年人视频观看| www.玖玖玖| 无码人妻精品一区二区三区在线| 性欧美大战久久久久久久| 国产尤物av一区二区三区| 中文字幕色网站| 一级片免费在线观看视频| 久久国产精品国产精品| 亚洲精品第三页| 亚洲美女自拍偷拍| 男人天堂a在线| 中文字幕无码精品亚洲35| 日本在线视频www| 国内自拍视频网| 国产免费色视频| 国内少妇毛片视频| 国产成人无码a区在线观看视频| 国产二区视频在线| 日本三级免费观看| 污污视频网站在线| 女人被男人躁得好爽免费视频| 搞av.com| 色悠悠久久综合网| 懂色av一区二区三区四区五区| 欧美 日韩 国产精品| 中国丰满人妻videoshd| 色悠悠久久综合网| 精品嫩模一区二区三区| 成人在线免费在线观看| 亚洲免费999| 国产美女永久无遮挡| 久热免费在线观看| 99re99热| 不卡av免费在线| 久久香蕉视频网站| 另类小说色综合| 国产1区2区3区中文字幕| 欧美黄网站在线观看| 老司机av福利| 人人干人人视频| 黄色一级片国产| 视频在线观看免费高清| 久久av综合网| 天堂av手机在线| 日本成年人网址| 激情六月天婷婷| 亚欧激情乱码久久久久久久久| 国产精品入口芒果| 欧美女同在线观看| 亚洲乱码中文字幕久久孕妇黑人| 超碰中文字幕在线观看| 激情婷婷综合网| 国产av国片精品| 小说区视频区图片区| 中文字幕一区二区三区四区在线视频| 天天综合中文字幕| 人人干人人干人人| 91精品91久久久中77777老牛| 爽爽爽在线观看| 日本中文字幕高清| 国产xxxxx在线观看| 日韩一级片免费视频| 国产精品无码乱伦| 国产三级生活片| 国产精品无码av无码| 每日在线更新av| 欧美高清中文字幕| 91精品国产吴梦梦| 可以免费看的黄色网址| 黄色手机在线视频| 中文字幕天天干| 丁香婷婷激情网| 国产精品69页| 久久久久狠狠高潮亚洲精品| 人人妻人人添人人爽欧美一区| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 日本精品一区在线观看| 国产免费裸体视频| 黄色www在线观看| 9999在线观看| 公共露出暴露狂另类av| 久久av喷吹av高潮av| 九九九久久久久久久| 91亚洲一区二区| 欧美与动交zoz0z| 六月婷婷激情网| 久久成人福利视频| 免费看一级大黄情大片| 国产一区二区网| 农村妇女精品一二区| 日本成人黄色网| 午夜免费福利视频在线观看| 一二三级黄色片| 特级黄色录像片| 久草视频这里只有精品| 黄色大片在线免费看| 国产偷人视频免费| 国产一二三区av| 欧美精品色视频| 久久综合亚洲精品| 日本一区二区黄色| 日本久久久久久久久久久久| 爱爱爱爱免费视频| 一区二区三区四区免费观看| 岛国大片在线播放| 精品久久久久av| 一区二区三区四区毛片| 国产专区在线视频| 成年人免费大片| 夜夜爽久久精品91| 精品人妻大屁股白浆无码| 国产91美女视频| 国产成年人视频网站| 天天想你在线观看完整版电影免费| 天堂а√在线中文在线| 哪个网站能看毛片| 天堂av.com| 黄色动漫网站入口| 99中文字幕在线| 亚洲 欧美 日韩 国产综合 在线| 91av俱乐部| 国产亚洲精品久久久久久久| 日韩网址在线观看| 四虎精品欧美一区二区免费| 欧美黄色免费影院| 日韩video| 亚洲少妇久久久| 精品丰满人妻无套内射| 校园春色 亚洲色图| 福利视频免费在线观看| 免费看涩涩视频| 久久综合九色综合88i| 韩国一区二区在线播放| 国产免费黄视频| 蜜桃视频成人在线观看| 亚洲三级视频网站| 欧美大片在线播放| 在线视频日韩欧美| 久久久精品麻豆| 日韩av新片网| 日本一本草久p| www.这里只有精品| 久久久久久久久久久久久久国产| 免费的av在线| www.亚洲自拍| 777一区二区| 99蜜桃臀久久久欧美精品网站| 黄色特一级视频| 日本美女久久久| 色播五月综合网| xxxx一级片| 虎白女粉嫩尤物福利视频| 成年女人18级毛片毛片免费| 婷婷视频在线播放| aaa一级黄色片| 五月天中文字幕在线| 免费国产成人av| 777久久久精品一区二区三区| 黄色a级片免费看| av动漫在线播放| 久久久国内精品| 久久人妻无码一区二区| 特级西西444www| 老司机av福利| 97超碰免费观看| 黄色污污在线观看| 成人在线视频一区二区三区| 看一级黄色录像| 中国老女人av| 污污污污污污www网站免费| av动漫在线播放| 国产真人做爰毛片视频直播| 国产成人在线小视频| 九九热只有这里有精品| 国产黄视频在线| 亚洲国产精品久久久久爰色欲| 日本不卡在线观看视频| www日韩在线观看| 97超碰人人爽| 青青在线免费视频|