1. 程式人生 > >微信公眾上傳頭像和分享

微信公眾上傳頭像和分享

發現了一個比較全的微信公眾上傳頭像和分享的部落格,儲存一下

地址:http://www.ningguoteng.com/post-61.html

前面的就看微信JSSDK文件了:http://mp.weixin.qq.com/wiki/11/74ad127cc054f6b80759c40f77ec03db.html#.E5.9B.BE.E5.83.8F.E6.8E.A5.E5.8F.A3

$(function () {
    // 3. 通過config介面注入許可權驗證配置
    wx.config({
        debug: false, // 開啟除錯模式,呼叫的所有api的返回值會在客戶端alert出來,若要檢視傳入的引數,可以在pc端開啟,引數資訊會通過log打出,僅在pc端時才會列印。
appId: commonJson.AppID, // 必填,公眾號的唯一標識 timestamp: commonJson.TimeStamp, // 必填,生成簽名的時間戳 nonceStr: commonJson.NonceStr, // 必填,生成簽名的隨機串 signature: commonJson.Signature, // 必填,簽名,見附錄1 jsApiList: [// 必填,需要使用的JS介面列表,所有JS介面列表見附錄2 "onMenuShareTimeline", "onMenuShareAppMessage"
, "onMenuShareQQ", "onMenuShareWeibo", "chooseImage", "uploadImage", "downloadImage", "previewImage" ] }); // 4. 通過ready介面處理成功驗證 wx.ready(function () { weixin.wxShareTimeline(); //微信分享到朋友圈 weixin.wxShareAppMessage(); //微信分享給朋友
weixin.wxShareWeibo(); //微信分享到微博 weixin.wxShareQQ(); //微信分享到QQ }); // 5. 通過error介面處理失敗驗證 wx.error(function (res) { //alert(JSON.stringify(res)); //alert("微信介面驗證失敗!檢視是否配置url"); }); //獲取頭像 $("#imgTop").click(function () { weixin.wxChooseImage(); //獲取手機圖片 }) //獲取廣告圖片 $("#imgAdve").click(function () { weixin.wxChooseGgImage(); //獲取廣告圖片 }) $(".clickpic").click(function () { var picurl = $(".clickpic").attr("data"); //預覽圖片 wx.previewImage({ current: picurl, // 當前顯示的圖片連結 urls: urls // 需要預覽的圖片連結列表 }); }) }); var imgUrl = $("#shareImg").text(); //圖片url var descContent = document.title; //描述內容 var shareTitle = document.title; //標題 var weixin = { localIds: "", serverId: "", //微信分享到朋友圈 wxShareTimeline: function () { wx.onMenuShareTimeline({ title: shareTitle, // 分享標題 link: lineLink, // 分享連結 imgUrl: imgUrl, // 分享圖示 success: function () { // 使用者確認分享後執行的回撥函式 }, cancel: function () { // 使用者取消分享後執行的回撥函式 } }); }, //微信分享給朋友 wxShareAppMessage: function () { wx.onMenuShareAppMessage({ title: shareTitle, // 分享標題 desc: commonJson.sharelanguage, // 分享描述 link: lineLink, // 分享連結 imgUrl: imgUrl, // 分享圖示 type: '', // 分享型別,music、video或link,不填預設為link dataUrl: '', // 如果type是music或video,則要提供資料鏈接,預設為空 success: function () { // 使用者確認分享後執行的回撥函式 }, cancel: function () { // 使用者取消分享後執行的回撥函式 } }); }, //微信分享到微博 wxShareWeibo: function () { wx.onMenuShareWeibo({ title: shareTitle, // 分享標題 desc: commonJson.sharelanguage, // 分享描述 link: lineLink, // 分享連結 imgUrl: imgUrl, // 分享圖示 success: function () { // 使用者確認分享後執行的回撥函式 }, cancel: function () { // 使用者取消分享後執行的回撥函式 } }); }, //微信分享到QQ wxShareQQ: function () { wx.onMenuShareQQ({ title: shareTitle, // 分享標題 desc: commonJson.sharelanguage, // 分享描述 link: lineLink, // 分享連結 imgUrl: imgUrl, // 分享圖示 success: function () { // 使用者確認分享後執行的回撥函式 }, cancel: function () { // 使用者取消分享後執行的回撥函式 } }); }, //獲取手機圖片 wxChooseImage: function () { wx.chooseImage({ success: function (res) { weixin.localIds = res.localIds; // 返回選定照片的本地ID列表,localId可以作為img標籤的src屬性顯示圖片 $("#imgTop").attr("src", weixin.localIds); weixin.wxUploadImge(0); } }); }, //上傳圖片 wxUploadImge: function (param) { wx.uploadImage({ localId: weixin.localIds[0], // 需要上傳的圖片的本地ID,由chooseImage介面獲得 isShowProgressTips: 1, // 預設為1,顯示進度提示 success: function (res) { weixin.serverId = res.serverId; // 返回圖片的伺服器端ID weixin.wxDownImge(param); }, fail: function (res) { alert("圖片上傳失敗"); } }); }, //下載圖片到我們伺服器 wxDownImge: function (param) { var strurl = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=" + commonJson.tonkey + "&media_id=" + weixin.serverId $.ajax({ type: "POST", url: "/index.php?g=WShop&m=AjaxProduct&a=index", data: { "act": "uploadwximage", "access_token": commonJson.tonkey, "media_id": weixin.serverId }, async: true, success: function (res) { res=$.parseJSON(res); if (res == 0) { alert("下載圖片失敗") } else { if (param == 0) { $("#imgTop").attr("src", res); $("#ImgeTop").val(res); } else { $("#imgAdve").attr("src", res); $("#ImgeAdve").val(res); } } } }); }, //獲取手機圖片 wxChooseGgImage: function () { wx.chooseImage({ success: function (res) { weixin.localIds = res.localIds; // 返回選定照片的本地ID列表,localId可以作為img標籤的src屬性顯示圖片 $("#imgAdve").attr("src", weixin.localIds); weixin.wxUploadImge(1); } }); } }

ajax頁面

 $at=$_POST["access_token"];
        $server_id=$_POST["media_id"];
        $url="http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=".$at."&media_id=".$server_id;


        $curl = curl_init($url);
        curl_setopt($curl,CURLOPT_HEADER,0);
        curl_setopt($curl,CURLOPT_NOBODY,0);
        curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
        $result = curl_exec($curl);
        $httpInfo=curl_getinfo($curl);
        curl_close($curl);
       /*  if($result->errcode == '40001'){
        //出現invalid credential, access_token is invalid or not latest
        //清空access_token,重新獲取
        //$isfirt = false;
        $this->_clearAccessToken();
        $jsapi_ticket = $this->uploadwximage();
        }else{
        LOG::write ( '獲取jsapi_ticketObj發生錯誤:錯誤程式碼' . $jsapi_ticketObj->errcode . ',微信返回錯誤資訊:' . $jsapi_ticketObj->errmsg );
        exit ();
        } */



        $imageAll=array_merge(array('header'=>$httpInfo),array('body'=>$result));

        $dir = $_SERVER['DOCUMENT_ROOT']."/images/shop/".date("Y-m-d",time());
        if(!is_dir($dir)){
        mkdir($dir);
        }

        $name=time().rand(10000,99999).".jpg";
        $filename=$dir."/".$name;
        $local_file = fopen($filename, 'w');
        if (false !== $local_file){
        if (false !== fwrite($local_file, $imageAll['body'])) {
        fclose($local_file);
        }
        }
        $sr="/images/shop/".date("Y-m-d",time())."/".$name;
        $src=trim($sr);///去掉首尾空格
        $this->ajaxReturn($src);