post请求生成小程序二维码

本文阅读 1 分钟
首页 PHP笔记 正文
   /**生成小程序二维码**/
    public function actionGetWxcode()
    {
        /*获取参数*/
        $path = Yii::$app->request->get('path');
        $width = Yii::$app->request->get('width');
        /*获取access_token*/
        $access_token = $this->getToken();
        /*拼接地址*/
        $url = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" . $access_token;
        /*请求参数*/
        $post_data = [
            'path' => $path,
            'width' => $width,
        ];
        $post_data = json_encode($post_data);
        $data = $this->send_post($url, $post_data);
        $data = 'image/png;base64,' . base64_encode($data);
        $imageName = rand(100000, 999999) . '.png';

        if (strstr($data, ",")) {
            $image = explode(',', $data);
            $image = $image[1];
        }
        $dir = "uploads/img/" . date("Y-m-d", time());
        if (!is_dir($dir)) { //判断目录是否存在 不存在就创建
            mkdir($dir, 0777, true);
            $re = [
                'data' => null,
                "code" => 200,
                "msg" => "创建目录失败",
            ];
            return json_encode($re, JSON_UNESCAPED_UNICODE);
        }
        $imageSrc = $dir . "/" . $imageName;  //图片名字
        $r = file_put_contents($imageSrc, base64_decode($image));//返回的是字节数

        if (!$r) {
            $re = [
                'data' => null,
                "code" => 200,
                "msg" => "图片生成失败",
            ];
            return json_encode($re, JSON_UNESCAPED_UNICODE);
        } else {
            $re = [
                'code' => 100,
                'msg' => '图片生成成功',
                'path' => 'https://' . $_SERVER['HTTP_HOST'] . "/" . $imageSrc
            ];
            return json_encode($re, JSON_UNESCAPED_UNICODE);
        }
    }

    /**
     * 消息推送http
     * @param $url
     * @param $post_data
     * @return bool|string
     */
    protected function send_post($url, $post_data)
    {
        $options = array(
            'http' => array(
                'method' => 'POST',
                'header' => 'Content-type:application/json',
                //header 需要设置为 JSON
                'content' => $post_data,
                'timeout' => 60
                //超时时间
            )
        );
        $context = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
        return $result;
    }
解压密码: detechn或detechn.com

免责声明

本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。

本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

PHP 统计字符重复次数和字符
« 上一篇 03-21
PHP获取数组最后一个元素的键和值
下一篇 » 03-29

发表评论

惪特博客
  • 文章总数:
    18474 篇
  • 评论总数:
    53211 条
  • 标签总数:
    8841 个
  • 总浏览量:
    20525797 次
  • 最后更新:
    12月7日

最多点赞

随便看看

标签TAG