小程序推广码、access_token获取

获取推广二维码的方法

	//$sid 携带的参数  
	// $url 保存路由
  function get_qrcode($sid,$url)
    {
    //获取accessToken 
        $accessToken = $this->getToken();
        $scene = $sid;
        $data = array();
        //配置参数
        $data['scene'] = $scene;
        $data['width'] = 1000;
        $data = json_encode($data);
        $url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" . $accessToken ;
        $da = $this -> api_notice_increment($url,$data);
        $result=$this->data_uri($da,'image/png');
        return $result;

    }
	 //转换成base64位格式
    function data_uri($contents, $mime)
    {
        $base64   = base64_encode($contents);
        return ('data:' . $mime . ';base64,' . $base64);
    }
    //curl方法
    function api_notice_increment($url, $data){
        $ch = curl_init();
        $header = "Accept-Charset: utf-8";
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $tmpInfo = curl_exec($ch);
        if (curl_errno($ch)) {
            return false;
        }else{
            return $tmpInfo;
        }
    }
  

先创建储存微信信息的表

CREATE TABLE `hs_wxaccount` (
  `wx_id` int(10) NOT NULL AUTO_INCREMENT,
  `wx_appid` varchar(20) DEFAULT NULL COMMENT '微信 id',
  `wx_appsecret` varchar(32) DEFAULT '' COMMENT '微信appcecert',
  `wx_access_time` int(10) DEFAULT '0' COMMENT '获取token时间',
  `wx_accesstoken` varchar(200) DEFAULT NULL COMMENT '微信 accesstoken',
  PRIMARY KEY (`wx_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

获取有效的access_token

 
 public function getToken()
    {
    	 $this->wx_info	= db("wxaccount")->where("wx_id=1")->find();
        if(time() - $this->wx_info['wx_access_time'] <= 7100){ //直接返回保存的数据
            return $this->wx_info['wx_accesstoken'];
        }
		$this->appid = $this->wx_info['wx_appid'];
        $this->appsecret = $this->wx_info['wx_appsecret'];
        $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$this->appid.'&secret='.$this->appsecret;
        $output = _tool_get($url);
        $jsoninfo = json_decode($output, true);
        $access_token = $jsoninfo["access_token"];
        if(empty($access_token)){
            return false;
        }
        $params = array();
        $params['wx_accesstoken'] = $access_token;
        $params['wx_access_time'] = time();        
        $this->model_weixin->where("wx_appid='{$this->appid}'")->update($params);
        return $access_token;
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值