小程序生成带有多参数的太阳码

复制代码
    public function _make_tmp_xcx_code() {

        // 查看是否已存储到数据库
        $request_data = [
            'path'      =>      "/pages/product_type/product_detail?id=100",          // 注意是path  , 不是page
            'width'     =>      280
        ];

        $access_token = $this->_get_access_token();
        if (!$access_token){
            return false;
        }

        vendor('Func.Http');

        //$url = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" . $access_token;

        $request_url = 'https://api.weixin.qq.com/wxa/getwxacode?access_token='.$access_token;
        //$result = Http::doPostJson($request_url,$request_data);

        $request_data = json_encode($request_data);

        $result = $this->_requestPost($request_url, $request_data);

        $this->setlog([$request_url,$request_data],[$result,json_decode($result,true),$result->errcode,$result['errcode']],__METHOD__,'code.log');

        $decode_result = json_decode($result,true);

        if ($decode_result['errcode']){
            dump($decode_result);
            exit;
        }

        // 存入cdn
        $cdn_result = $this->upload_cdn($result,'suncode');
        $this->setlog([],$cdn_result,__METHOD__.'__33','xcx_code.log');

        dump($cdn_result);
        exit;
    }



    public function _requestPost($url, $data, $ssl=true)
    {
        //curl完成
        $curl = curl_init();
        //设置curl选项
        curl_setopt($curl, CURLOPT_URL, $url);//URL
        $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '
    Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0 FirePHP/0.7.4';
        curl_setopt($curl, CURLOPT_USERAGENT, $user_agent);//user_agent,请求代理信息
        curl_setopt($curl, CURLOPT_AUTOREFERER, true);//referer头,请求来源
        curl_setopt($curl, CURLOPT_TIMEOUT, 30);//设置超时时间
        //SSL相关
        if ($ssl) {
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//禁用后cURL将终止从服务端进行验证
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//检查服务器SSL证书中是否存在一个公用名(common name)。
        }
        // 处理post相关选项
        curl_setopt($curl, CURLOPT_POST, true);// 是否为POST请求
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);// 处理请求数据
        // 处理响应结果
        curl_setopt($curl, CURLOPT_HEADER, false);//是否处理响应头
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//curl_exec()是否返回响应结果

        // 发出请求
        $response = curl_exec($curl);
        if (false === $response) {
            echo '<br>', curl_error($curl), '<br>';
            return false;
        }
        curl_close($curl);
        return $response;
    }


<pre>array(3) {
[&quot;errno&quot;] =&gt; string(1) &quot;0&quot;
[&quot;errmsg&quot;] =&gt; string(2) &quot;ok&quot;
[&quot;save_name&quot;] =&gt; string(46) &quot;http://cdn.caomall.net/1567500276665758601.png&quot;
}
</pre>

 
复制代码

 

posted @   盘思动  阅读(2922)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示