PHP生成小程序二维码

/**
     * [生成小程序二维码]
     * @return [type] [description]
     */
    public function makeMiniQrcode_do() {

        begin:

        $id = input(‘id‘);// 获取token
        $ACCESS_TOKEN = $this->getAccesstoken();
        // 准备进入小程序的参数
        $param = json_encode(array("path" => "pages/shop/shop?mac=123", "width" => 150));
        // 请求微信生成二维码接口
        $request_url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=$ACCESS_TOKEN";
        $result = httpRequest($request_url, $param, "POST");
        // 准备文件名
        $filename = date(‘YmdHis‘) . md5(time() . mt_rand(10, 99)) . ‘.png‘;
        $filepath = "/public/img/miniqrcode/" . $filename;
        // 将二进制图片写入文件
        if (@$fp = fopen(ROOT_PATH . $filepath, ‘w+‘)) {
            fwrite($fp, $result);
            fclose($fp);
        }
        // 判断写入图片是否正常 如果不正常 则再次请求
        $info = getimagesize(ROOT_PATH . $filepath);
        if (!$info) {
            unlink(ROOT_PATH . $filepath);
            goto begin;
        }
        // 二维码路径写入数据库
        if (file_exists(ROOT_PATH . $filepath)) {
                pdo_update(array(‘id‘ => $id), ‘equipment‘, array(‘miniqrcode‘ => $filepath));
                // header(‘Content-type:image/png‘);
                // echo file_get_contents(ROOT_PATH . $filepath);
        }
    }

    /**
     * [获取AccessToken]
     * @return [type] [description]
     */
    private function getAccesstoken() {
        header(‘content-type:text/html;charset=utf-8‘);
        //配置APPID、APPSECRET
        $config = config(‘mini_program‘);
        $APPID = $config[‘APPID‘];
        $APPSECRET = $config[‘APPSECRET‘];
        // 请求地址
        $getTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$APPID&secret=$APPSECRET";

        $ACCESS_TOKEN = "";
        // session中没有token
        if (!isset($_SESSION[‘access_token‘]) || (isset($_SESSION[‘expires_in‘]) && time() > $_SESSION[‘expires_in‘])) {
            $jsonResult = httpRequest($getTokenUrl);
            $jsonResult = json_decode($jsonResult, true);
            // var_dump($json);
            $_SESSION[‘access_token‘] = $jsonResult[‘access_token‘];
            $_SESSION[‘expires_in‘] = time() + 7200;
            $ACCESS_TOKEN = $jsonResult["access_token"];
        } else {
            // session中有token 直接使用
            $ACCESS_TOKEN = $_SESSION["access_token"];
        }
        return $ACCESS_TOKEN;
    }
/**
 * curl 请求
 * @param  [type] $url    [请求地址]
 * @param  string $data   [参数]
 * @param  string $method [请求方式]
 * @return [type]         [description]
 */
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;
}

1

原文地址:https://www.cnblogs.com/Skate0rDie/p/11446822.html

时间: 2024-08-04 22:22:31

PHP生成小程序二维码的相关文章

生成小程序二维码

现在参考网上的做法是在云函数里面生成qrcode,然后保存该jpg到云存储.得到该fileID就可以渲染到image组件,也可以draw到canvas. 出处:https://developers.weixin.qq.com/community/develop/doc/000c02b06ec0d85108b7a648355c00?_at=1569221376803&jumpto=comment&commentid=00042ed32f4af01309b7c0aa75b8 技术文档 网址 w

小程序二维码生成接口API

获取小程序码 我们推荐生成并使用小程序码,它具有更好的辨识度.目前有两个接口可以生成小程序码,开发者可以根据自己的需要选择合适的接口. 接口A: 适用于需要的码数量较少的业务场景 接口地址: https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN 获取 access_token 详见文档 POST 参数说明 注意:通过该接口生成的小程序码,永久有效,数量限制见文末说明,请谨慎使用.用户扫描该码进入小程序后,将直接进入

小程序 二维码 实战

好久没写文章了,今天给大家说说小程序的二维码 微信套路就是通过 appid 和 AppSecret 来获取access_token https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 通过上面的url就可以轻松获取到access_token 二维码有两种: 小程序的二维码: https://api.weixin.qq.com/wxa/getwxac

微信小程序二维码识别

目前市场上二维码识别的软件或者网站越来越多,可是真正方便,无广告的却少之很少. 于是,自己突发奇想做了一个微信二维码识别的小程序. 包含功能: 1.识别二维码 ①普通二维码 ②条形码 ③只是复制解析出来的数据 2.生成二维码 ①只是从粘贴板生成二维码 软件截图: 体验二维码: 以下为主要代码 index.js // pages/main/index.js var QR = require("../../utils/qrcode.js"); Page({ data: { canvasHi

小程序参数二维码自动生成

当小程序审核通过后,那么线上的小程序二维码是如何生成呢?芝麻小程序码提供了程序二维码生成工具. 网址如下 https://weixin.hotapp.cn 芝麻小程序码的特色 (1)支持小程序路径带参数,自定义带参数 (2)小程序码,方形小程序码,以及小程序码的美化 (3)支持创建带场景值的二维码 (4)支持小程序参数二维码的统计,统计扫码人数,扫码次数 原文地址:https://www.cnblogs.com/dodui/p/8443261.html

小程序参数二维码生成

总所周知,小程序无法分享到朋友圈,但是图片可以.只要小程序能生成包含信息与小程序参数二维码,即可达到很好的传播效果. 例:拉勾网. 基础知识准备 appid与appsecret "access_token"; 移步:微信官方文档 小程序二维码生成接口 有3个接口哦:小程序二维码文档 实现步骤 <?php $appid = $_POST["appid"]; // 获取appid $appsecret = $_POST["appsecret"]

java微信小程序参数二维码生成带背景图加字体(无限生成)

需求 :  1,因为项目需求 ,生成数以万计的二维码    2 ,每个二维码带不同的参数  3,二维码有固定背景图 4 , 往生成图片上写入 字体和编号(动态 ) 设计技术 :    1,微信接口token ,nginx 缓存  2,二维码 图片定义 写字 maven <dependency> <groupId>com.twelvemonkeys.imageio</groupId> <artifactId>imageio-jpeg</artifactI

使用zxing生成和解析二维码

二维码: 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的: 在代码编制上巧妙的利用构成计算机内部逻辑基础的0和1比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理: 二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息: 二维码相对于条形码的优势就是省空间: zxing简介: zxing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库

微信公众平台开发(83) 生成带参数二维码

本文介绍在微信公众平台上如何使用高级接口开发生成带参数二维码的功能. 一.场景二维码 为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口.使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送. 目前有2种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1--100000).两种二维码分别适用于帐号绑定.用户来源统计等场景. 用户扫描带场景值二维码时,可能推送以下