收藏
回答

laravel 请求获取URLScheme 一直提示数据错误

 public function index(){
        
        $data = [
                "grant_type"=>"client_credential",
                "appid" => "appid",
                "secret"=> "secret",
            ];
      
        $result = self::curl('https://api.weixin.qq.com/cgi-bin/token', $data, 'get');
       
        $json = json_decode($result);
        
   

        $data_2 =
                 [
                     "jump_wxa"=>[
                                "path"=>"/pages/index/index",
                                "query"=>"",
                                "env_version"=>"release"
                                        ],
                              "is_expire"=>true,
                              "expire_type"=>1,
                              "expire_interval"=>1
          ];
    
    
              $result_2 = self::curl('https://api.weixin.qq.com/wxa/generatescheme?access_token=' . $json->access_token, $data_2, 'post'); 
              
              
              $json_2 = json_decode($result_2);
              return response()->json($json_2,'200');
    }
     
    /**
     * @param $url 请求网址
     * @param bool $params 请求参数
     * @param int $ispost 请求方式
     * @param int $https https协议
     * @return bool|mixed
     */
    public static function curl($url, $params = false, $ispost = 0, $https = 0)
    {
        $httpInfo = array();
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
       
        if ($https) {
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
        }
        if ($ispost) {
            curl_setopt($ch, CURLOPT_POST, true);
            // curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
            curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
            curl_setopt($ch, CURLOPT_URL, $url);
        } else {
            if ($params) {
                if (is_array($params)) {
                    $params = http_build_query($params);
                }
                curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
            } else {
                curl_setopt($ch, CURLOPT_URL, $url);
            }
        }


        $response = curl_exec($ch);


        if ($response === FALSE) {
            //echo "cURL Error: " . curl_error($ch);
            return false;
        }
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
        curl_close($ch);
        return $response
    }



报错信息一直是这样

回答关注问题邀请回答
收藏

1 个回答

  • Hlxuan.
    Hlxuan.
    2023-07-04

    $data_2 加上 json_decode() 试试。

    2023-07-04
    有用 1
    回复 1
    • 邱先生嘛
      邱先生嘛
      2023-07-04
      OK,已解决
      2023-07-04
      回复
登录 后发表内容