站长网_站长主页_站长之家_易采站长站

会员投稿 投稿指南 站长资讯通告: php获取小程序码的实现代码(B类接口)
搜索:
您的位置: 主页 > 教程 > 网页编程 > PHP编程 > » 正文

php获取小程序码的实现代码(B类接口)

来源: 易采站长站

效果图

生成小程序码的php代码

public function qrcode(){
    $member_id = session('id');
    if(empty($member_id)) $this->error('请先登录');
 
    //推广二维码
    $member = model('Member')->where('id',$member_id)->find();
    if($member['is_share'] && $member['share_qrcode']){
      $litpic  = $member['share_qrcode'];
    }else{
      header('content-type:image/jpg');//加载速度快
      // 生成小程序码
      $wechatObj =  new \Wechat();//这是个类 这里有小程序appid和密码
      $url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=".$wechatObj->getAccessToken();
 
      $page = 'pages/index/index';
      $scene = 'share_id='.$member_id;
      $path = './upload/qrcode/'.$member_id.'.jpg';
       
    $postData = array();
    $postData['page'] = $page;
      $postData['scene'] = $scene;
      $data = json_encode($postData);
       
      $result = $this->api_notice_increment($url,$data);
      $image = 'data:image/jpg;base64,' . base64_encode($result);
       
      $other_result = $result;
       
      $file = fopen($path,"w");//打开文件准备写入
    fwrite($file,$other_result);//写入
    fclose($file);//关闭
       
      //return $result;
      $litpic  = $path;
      $litpic = ltrim($litpic,'.');
      //写入数据库
      $member->save(['share_qrcode'=>$litpic,'is_share'=>1]);
    }
 
    //推广人数
    $path_member = model('Member')->where('path',$member_id)->field('id,name,litpic,add_time')->select();
    $path  = [];
    foreach($path_member as $v){
      $v['add_time'] = date('Y-m-d H:i:s',$v['add_time']);
      $path[]   = $v;
    }
    $data  = [
      'litpic'  => $litpic,
      'path'   => $path,
    ];
    return json($data);
 
 
  }
   
   
  public function api_notice_increment($url,$data){
    //return $data;
    $curl = curl_init(); // 启动一个CURL会话
    //$header = "Accept-Charset: utf-8";
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检测
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); //解决数据包大不能提交
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
 
    $tmpInfo = curl_exec($curl); // 执行操作
    if (curl_errno($curl)) {
      echo 'Errno'.curl_error($curl);
    }
    curl_close($curl); // 关键CURL会话
    return $tmpInfo; // 返回数据
      
  }
   
 
function api_notice_increment($url,$data)
{
  $curl = curl_init();
  $a = strlen($data);
  $header = array("Content-Type: application/json; charset=utf-8","Content-Length: $a");
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  curl_setopt($curl,CURLOPT_POST,1);
  curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
  curl_setopt($curl, CURLOPT_HEADER, 0);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  $res = curl_exec($curl);
  curl_close($curl);
  return $res;
 
}
            
最新图文资讯
1 2 3 4 5 6
易采站长站 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助 -