Index.php 5.6 KB
<?php

namespace app\api\controller;

use app\api\controller\inspection\Task;
use app\common\controller\Api;

/**
 * 首页接口
 */
class Index extends Api
{
    protected $noNeedLogin = ['*'];
    protected $noNeedRight = ['*'];

    /**
     * 首页
     *
     */
    public function index()
    {
        $this->success('请求成功');
    }


    function getAccessToken() {
        $appId = "wx58ceff4e93cfc523";
        $appSecret = "baf744d21875280a5e98611f66adaf91";
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appId}&secret={$appSecret}";
        $result = json_decode(file_get_contents($url), true);
        return $result["access_token"] ?? null;
    }
    function createMiniProgramQRCode($accessToken, $path, $width = 430) {
        $url = "https://api.weixin.qq.com/wxa/getwxacode?access_token={$accessToken}";

        $data = json_encode([
            'path' => $path,
            'width' => $width
        ]);
        $options = [
            'http' => [
                'method'  => 'POST',
                'header'  => 'Content-type:application/json',
                'content' => $data,
            ],
        ];
        //POST参数
        $result = $this->httpRequest($url,$data,"POST");
        $file_name=md5(rand(1000,9999).time()). '.png';
        $filename= 'uploads/' . $file_name ;
        $ret = file_put_contents($filename, $result, true);
        $task=new Task();
        $res=$task->fileUpload($file_name);
        return $res;
    }
    //把请求发送到微信服务器换取二维码
    public function httpRequest($url,$data='',$method='GET'){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL,$url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($curl, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
        if($method=='POST')
        {
            curl_setopt($curl, CURLOPT_POST, 1);
            if ($data !='')
            {
                curl_setopt($curl, CURLOPT_POSTFIELDS,$data);
            }
        }

        curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        curl_setopt($curl, CURLOPT_HEADER, 0);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        curl_close($curl);
        return $result;
    }
    public function test(){
        $accessToken = $this->getAccessToken();
        if ($accessToken) {
            $path = 'pages/index/index'; // 小程序内的页面路径
            $qrCodeData = $this->createMiniProgramQRCode($accessToken, $path);
            print_r($qrCodeData);return;
            return $qrCodeData;
        }
    }


    /***
     * 公众号推送审核信息给经纪人
     */
    public function senWxmsgToAgentUser($titdesc="",  $remark="")
    {
        $wxopenid="o5ABA4yWDTLRTf3LkBMMHoV7XOvQ";
        $sendInfo = array(
            'first' => array('value' => urlencode($titdesc), 'color' => "#743A3A"),
            'keyword1' => array('value' => urlencode(date('Y-m-d H:i:s', time())), 'color' => '#173177'),
            'keyword2' => array('value' => urlencode('企业入驻'), 'color' => '#173177'),
            'remark' => array('value' => urlencode($remark), 'color' => '#173177'),
        );
        if ($wxopenid) {
            $config = get_addon_config('wechat');
            $tourl = 'https://wyc.tenyes.cn/h5/';
            $ywt_appid = 'wxb7dd0c03865a94e0';
            $pagepath = 'pages/home/index';
            $res = $this->sendAstuWxMsgToAgent($sendInfo, $wxopenid, $tourl, $config['app_id'], $config['secret'], $ywt_appid, $pagepath);
            return $res;
            //file_put_contents("pcl_wct_send.log", date("Y-m-d H:i:s") . "1-2-" . json_encode($res, JSON_UNESCAPED_UNICODE) . PHP_EOL, FILE_APPEND);
        }
    }

    /**
     * 微信公众号
     * 经纪人审核 消息推送
     */
    function sendAstuWxMsgToAgent($info, $openid, $tourl, $appid, $secret, $ywt_appid, $pagepath)
    {
        $myurl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appid . "&secret=" . $secret;

        $json_token = $this->http_request($myurl);
        $access_tokens = json_decode($json_token, true);

        $access_token = $access_tokens['access_token'];

        $template = array(
            'touser' => $openid, //
            'template_id' => 'zQaLnhEOQxdGOKJlDUAfEoNY4NTmNWy9a9vYzkZjGn8', //模板消息id  必须修改
            'url' => $tourl, //点击链接
            "miniprogram" => [
                "appid" => $ywt_appid,
                "pagepath" => $pagepath
            ],
            'topcolor' => "#173177",
            'data' => $info
        );

        $json_template = json_encode($template);
        $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $access_token;
        $json = $this->http_request($url, urldecode($json_template));
        print_r($json);return;

        $rs = json_decode($json, true);
        return $rs;
    }
    function http_request($url, $data = array())
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        // 我们在POST数据哦!
        curl_setopt($ch, CURLOPT_POST, 1);
        // 把post的变量加上
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }
}