PHP实现生成带参小程序二维码进入指定页面并存储本地文件

重点:使用小程序二维码必须先发布小程序!!!

PHP代码

1.获取access_token
public function Atoken(){
 	$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的APPID&secret=你的Appsecret';
 $token = json_decode(getUrl($url),true); //使用CURL GET方法进行请求并将返回的JSON转成数组处理
 //以下根据自己逻辑进行整理不做过多解释,过期时间为2小时 建议存储起来。
}
2.生成小程序二维码
	/*
     *  生成小程序二维码
     * 	$code String  生成二维码中的参数
     * */
    private function createQR($code){
    	//Atoken() 公共方法 传入access_token
        $URL = 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$this->Atoken();
        //索引键必须一致
        $data = [
            'scene' => $code, //二维码传入参数
            'page' => 'pages/my/inviteFriends/inviteFriends', //扫码后进入页面
        ];
        $json = json_encode($data); //数组加密
        $result = json_decode(postUrl($URL,$json),true); 	//用CURL 进行POST请求
        if(isset($result['errcode'])){ //查看文档错误代码
            return false;
        }
        //没有出现错误代码 会返回二进制文件流,可以转成base64直接使用也可以转成file
        //以下是将二进制流转成file并写入本地
        $data = date('Ymd'); 
        $path = $path = ROOT_PATH.'public/Qrcode/'.$data; //ROOT_PATH 我使用的是TP5框架
        if(!file_exists($path)){ //判断目录是否存在
            mkdir($path); 
        }
        $filename = md5($code);
        $path = $path.'/'.$filename.'.png'; //最后要写入的目录及文件名
        //  创建将数据流文件写入我们创建的文件内容中
        $ifp = fopen( $path, "w" );
        fwrite( $ifp, $result );
        fclose( $ifp );
        return $path; //路径根据自身需要返回
    }

最后生成二维码

在这里插入图片描述

前端测试

在这里插入图片描述

打开生成的小程序二维码

scene 字段的值会作为 query 参数传递给小程序/小游戏。
用户扫描该码进入小程序/小游戏后,开发者可以获取到二维码中的 scene 值,再做处理逻辑。
调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟。
开发工具模拟时的 scene 的参数值需要进行 encodeURIComponent

Page({
  onLoad (query) {
    // scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene
    const scene = decodeURIComponent(query.scene)
  }
})

更多功能查看 官方文档

欢迎大神指教

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值