自己封装的微信分享类

<?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&timestamp=%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);

    }

}

 

转载于:https://my.oschina.net/u/1172593/blog/686408

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值