自己封装的微信分享类
2016-06-03 00:00
381 查看
[code=language-php]<?php class WeixinShare{ public function curlGet($url,$data){ $ch = curl_init(); // get的变量 $getData=""; foreach($data as $key=>$value){ $getData.="$key=$value&"; } $getData=substr($getData,0,strlen($getData)-1); $url.="?".$getData; //设置选项,包括URL curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); //执行并获取HTML文档内容 $output = curl_exec($ch); //释放curl句柄 curl_close($ch); $output=json_decode($output,true); return $output; } private function getAccesssToken($appId,$appSecret,$force=false){ $file=sys_get_temp_dir().'/access_token.json'; @$data=file_get_contents($file); if($data) $data=json_decode($data,true); $now=time(); if(!$data || $data['create_time']+$data['expire_time']<=$now || $force){ $url="https://api.weixin.qq.com/cgi-bin/token"; $data=array( 'grant_type'=>'client_credential', 'appid'=>$appId, 'secret'=>$appSecret, ); $result=$this->curlGet($url,$data); $data=array( 'access_token'=>$result['access_token'], 'expire_time'=>$result['expires_in']-1800, 'create_time'=>time(), ); $data=json_encode($data); file_put_contents($file,$data); } return $data['access_token']; } private function createRandomStr($length=16){ $str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';//62个字符 $strlen = 62; while($length > $strlen){ $str .= $str; $strlen += 62; } $str = str_shuffle($str); return substr($str,0,$length); } public function configWeixin(){ $appId="APP_ID"; $appSecret="APP_SECERT"; $data=array(); $data['appId']=$appId; $accessToken=$this->getAccesssToken($appId,$appSecret); $params=array( 'access_token'=>$accessToken, 'type'=>'jsapi' ); $result=$this->curlGet("https://api.weixin.qq.com/cgi-bin/ticket/getticket",$params); $jsapiTicket=$result['ticket']; $nonceStr=$this->createRandomStr(); $timestamp=time(); $url=getgpc('shareUrl'); $string1=sprintf("jsapi_ticket=%s&noncestr=%s×tamp=%s&url=%s",$jsapiTicket,$nonceStr,$timestamp,$url); $data['signature']=sha1($string1); $data['nonceStr']=$nonceStr; $data['timestamp']=$timestamp; $share=array( 'title'=>'分享标题', 'link'=>'分享链接', 'desc'=>'分享的文字说明', 'imgUrl'=>'分享图标的地址' ); $data['share']=$share; echo json_encode($data); } }
相关文章推荐
- android微信支付开发流程
- 微信公众平台开发教程第1篇-新手解惑
- 微信安卓版下载 Android微信各版本列表
- 微信2.1 for Windows发布 微信群可多人语音或视频通话
- 微信硬件平台从入门到精通(服务器端) 2
- Openresty开发微信支付功能
- 接入微信JSAPI被扫码支付--JAVA
- 2 微信开发者中心
- JS与OC的交互 WebViewJavaScriptBridge WEB微信支付
- 微信支付开发(7) H5支付
- 微信自定义菜单集成多客服功能的方法与总结
- 微信浏览器强制使用
- 微信公众号开发之加密解密
- 微信公众号(justjavac)正式接受外部投稿,所有打赏金额归投稿者
- 微信分享功能,安卓手机分享图片不显示
- 我有几个粽子,和一个故事
- javascript获取wx.config内部字段解决微信分享
- 绑定微信公众平台提示“请求URL超时…
- 微信用户快赶上QQ了,达到了7.62亿
- 南通大学教务管理系统微信公众号体验