微信小程序集中开发日志 DAY 3 【生成小程序二维码 + 缓存小程序access_token】

上一章  微信小程序集中开发日志 DAY 2 【data的赋值与取值 + 跳转页面】

 

目录

生成小程序二维码 测试接口

生成小程序二维码 项目应用

缓存小程序access_token

 


生成小程序二维码 测试接口

当然了,只有正式上线的小程序才可以生二维码,测试的时候就用测试接口好了。

1.准备

①小程序的appid和appsecret

②微信公众平台接口调试工具 

③测试接口插件一枚

2.获取小程序测试access_token  

微信公众平台调试工工具

 这access_token就是测试用的,实际项目中无效

3.测试接口跑一下

 这边我用的是火狐的RESTClient

①提交方式 post

②HTTP响应类型 图文型Blob

③接口地址 https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=

access_token就填刚刚在调试工具里面获取到的值

④body里面填 {"path":"pages/index?rid=1","width",430}

其中path表示此二维码需要展示的小程序的页面,该路径需要在小程序的 app.json 的 pages 中定义

路径后面可以设置参数,参数间用&符号隔开,path值的最大长度 128 字节 
width表示二维码的宽度 

 然后点击发送,就可以在RESTClient中预览到二维码了

 

生成小程序二维码 项目应用

PHP代码

$_GET['rid'] = 11;       
$rid = $_GET['rid'];       
$path="pages/index/index?rid=".$rid;  //带参数
$width='430';
$post_data='{"path":"'.$path.'","width":'.$width.'}';
$url="https://api.weixin.qq.com/wxa/getwxacode?access_token=".$access_token;
$json = https_request($url,$post_data);
 
//保存本地图片       
$file ="images/".$rid."/code.jpg";
file_put_contents('./'.$file,$json);

function https_request($url,$data = null){
    if(function_exists('curl_init')){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }else{
        return false;
    }
}

缓存小程序access_token

和公众号一样也是两小时过期,2000次的上限

 

access_token.php

创建一个类,memcache两小时缓存一次token

class class_weixin
{
    var $appid = '';
    var $appsecret = '';

    //构造函数,获取Access Token
    public function __construct($appid = NULL, $appsecret = NULL)
    {
        if($appid && $appsecret){
            $this->appid = $appid;
            $this->appsecret = $appsecret;
        }

        //本地环境,需已安装memcache
        $_MEMC = new Memcache;
        $_MEMC->connect('localhost', 11211) or die ("Could not connect");

        $this->access_token = $_MEMC->get($this->appid);
        if (!isset($this->access_token) || empty($this->access_token)){
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->appsecret;
            $res = $this->http_request($url);
            $result = json_decode($res, true);
            $this->access_token = $result["access_token"];
            $_MEMC->set($this->appid, $this->access_token, 0, 3600);
        }
        
        return $this->access_token;
    }

    protected function http_request($url, $data = null)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }
}

 

下一章  微信小程序集中开发日志 DAY 4 【图片上传】

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值