小程序生成二维码接口B,求教哪里出问题了

遇到的问题就是,返回既没有报错,也没有数据,文档说会返回二进制,转为图片。但现在是什么都没有,不知道哪里出了问题,求助

这是contorller部分

function getIssueQrcodeAction()
            {
                // $issueId     =    $this->request->getPost('issueId');
                $issueId = 2;
                $page     =    'pages/listPage/article/article?issueId=';
                $test = new GetQrcode();
                $t = $test->get_qrcode($page,$issueId);

                print_r($t);
                

            }
这是service业务逻辑处理部分
Class GetQrcode
    {
public function get_qrcode($page,$issueId) {
        header('content-type:image/png');
        $uid = 6;
        $data = array();
        $data['scene'] = $issueId;
        $data['page'] = $page;
        $date['width'] = 450;
        $data = json_encode($data);
        // $access = json_decode($this->get_access_token(),true);
           $a = new WeixinUsers();
        $access_token = $a->access_token();
        $url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=".$access_token;
        $da = $this->get_http_array($url,$data);

       return json_encode(array('pictures'=>$da));
        // $this->assign('data',$da);
        // $this->fetch();

    }
    public function get_http_array($url,$post_data) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        // curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   //没有这个会自动输出,不用print_r();也会在后面多个1
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
        $output = curl_exec($ch);
        curl_close($ch);
        $out = json_decode($output);
        return $out;
    }
 }

https://mp.weixin.qq.com/debu...

阅读 6k
8 个回答
你的服务器是http请求还是https啊?如果是https的话把你的get_http_array()方法换成下面的

clipboard.png

遇到的问题就是,返回既没有报错,也没有数据,文档说会返回二进制,转为图片。但现在是什么都没有,不知道哪里出了问题,求助

  $data = [
    'scene'=>$issueId,
    'page'=>$page,
    'width'=>450,
    'auto_color'=>false,
    'line_color'=>["r"=>0,"g"=>0,"b"=>0],
];

把参数都加上试试,应该是有返回的

新手上路,请多包涵

$out = json_decode($output);$output返回的已经是二进制流了,不许用json_decode,直接使用file_put_contents接收即可

不确定是不是因为第二个接口需要先上线小程序的原因。目前我的情况跟你一样,想上线后再试试,但是审核未通过。。。

有几个问题,第一你的是POST请求,意思就是你用POST去拿去一个图片,可能么.
第二个,请不要指定你的page,如果小程序未上线,指定了page是无法展示出来的
第三个,http_request中,curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($data));
第四个,请设置发送头为application/json,不然你会后悔的.
最后最后一个问题,请不要直接上的代码,看代码很恼火,浪费人的时间,除非是很闲的人,当然我也算

新手上路,请多包涵

页面page里面不要带参数, 参数放在scene里面

http response里读取响应流,然后转成png或你想要的格式

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题