1. 程式人生 > >帶引數二維碼生成

帶引數二維碼生成

<?php

namespace app\api\controller;


use app\admin\model\User;

class CodeController extends BaseController
{
    /**
     * @api {post} /code/getMyCode 1.getMyCode獲取我的邀請碼
     * @apiVersion 1.0.0
     * @apiName getMyCode獲取我的邀請碼
     * @apiGroup 11.Code
     * @apiHeader {String} token Token必需填寫.
     * @apiHeaderExample {json} Header-Example:
     *     {
     *       "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJpc3MiOiJodHRwOlwvXC93d3cuZXhhbXBsZS5jb20iLCJleHAiOjE1MzQ3MzAxMjgsInVzZXJfaWQiOiI2IiwidXNlcl90eXBlIjoyLCJvcGVuX2lkIjoidGV4dG9wZW5pZC10ZXN0b3BlbmlkLXRlc3RvcGVuaWQiLCJzZXNzaW9uX2tleSI6InRlc3RzZXNzaW9ua2V5In0."
     *     }
     * @apiDescription getMyCode獲取我的邀請碼
     */
    public function getMyCode()
    {
        $access_token = $this->AccessToken();
        $url = 'https://api.weixin.qq.com/wxa/getwxacode?access_token='.$access_token;
        $path="pages/index/index?parent_id=".$this->user_id;
        $width=430;
        $data='{"path":"'.$path.'","width":'.$width.'}';
        $return = $this->request_post($url,$data);
        //將生成的小程式碼存入相應資料夾下
        $sever ='https://'.$_SERVER['SERVER_NAME']."/";
        $paths = 'uploads/code/'.time().'.jpg';
        file_put_contents($paths,$return);
        //$imgurl = $sever $paths;
        $rr =$paths;
        $imgurl = $sever.$rr;
        //將二維碼路徑存入資料庫

        return echoOk($imgurl);
    }

    public function AccessToken()
    {
        $data = "{}";
        $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.WX_APPID.'&secret='.WX_SECRET;
        $AccessToken = $this->request_post($url,$data);
        $AccessToken = json_decode($AccessToken , true);
        $AccessToken = $AccessToken['access_token'];
        return $AccessToken;
    }

    public function request_post($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($ch, 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;
        }
    }

}