Laravel微信小程序获取用户详细信息及带参数小程序码扩展的分析

不言
发布: 2023-04-02 16:50:02
原创
2672 人浏览过

这篇文章主要介绍了关于Laravel微信小程序获取用户详细信息及带参数小程序码扩展的分析 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

功能介绍

本扩展包包含用户详细信息解密、带参数小程序码生成并保存在本地目录功能。
用户详细信息解密官方也提供多种语言版本SDK(C++、PHP、Node、Python),在本扩展包中仅仅做封装处理。
带参数小程序码生成,官方给出三种接口,在此扩展包中采用 接口B (适用于需要的码数量极多的业务场景,通过该接口生成的小程序码,永久有效,数量暂无限制)。

项目地址

https://github.com/icharle/Wxtool

使用方法

运行以下命令以获取最新版本:

composer require icharle/wxtool 1.0
登录后复制

将服务提供者添加到配置文件中的providers数组中config/app.php,如下所示:

'providers' => [

    ...

    Icharle\Wxtool\WxtoolServiceProvider::class,
]
登录后复制

发布配置文件

php artisan vendor:publish --tag=wxtool
登录后复制

此时有一个config/wxtool.php文件。

配置AppID及AppSecret

在根目录.env文件中添加如下代码

WX_APPID = 您的小程序小程序ID
WX_SECRET = 您的小程序密钥
登录后复制

公开storage访问文件(可选)

若要使用 带参数小程序码生成 功能时必须执行下面命令。生成的小程序码默认保存在storage/app/public/qrcode文件夹中

php artisan storage:link
登录后复制

快速入门

  • 获取带参数小程序码(示例代码)

      <?php
    
        namespace App\Http\Controllers;
    
        use Icharle\Wxtool\Wxtool;
        use Illuminate\Http\Request;
    
        class TestController extends Controller
        {    
        
            /**
             * 获取带参数小程序码
             * @param $scene 场景值(最大32个可见字符,只支持数字,大小写英文以及部分特殊字符)
             * @param $pages 页面(必须是已经发布的小程序存在的页面(否则报错)
             * @return $imgpath 小程序码路径 (可以直接访问 http://xxx.com/$imgpath)
             */
            public function GetImgCode($scene,$pages)
            {
                $a = new Wxtool();
                $imgpath = $a->GetQrcode($scene,$pages); 
            }
        }
登录后复制
  • 获取用户详细信息(示例代码)

      <?php
    
        namespace App\Http\Controllers;
    
        use Icharle\Wxtool\Wxtool;
        use Illuminate\Http\Request;
    
        class TestController extends Controller
        {    
        
            /**
             * 获取用户详细信息
             * @param Request $request
             */
            public function GetInfo(Request $request)
            {
                $a = new Wxtool();
                $code = $request->code;                                     //wx.login获取
                $encryptedData = $request->encryptedData;                   //wx.getUserInfo 获取
                $iv = $request->iv;                                         //wx.getUserInfo 获取
                $res = $a->GetSessionKey($code);                            //获取用户openid 和 session_key
                $userinfo = $a->GetUserInfo($encryptedData,$iv);            //获取用户详细信息
                dd($userinfo);
            }
        }
登录后复制

解密返回结果

    {
        "openId": "OPENID",
        "nickName": "NICKNAME",
        "gender": GENDER,
        "city": "CITY",
        "province": "PROVINCE",
        "country": "COUNTRY",
        "avatarUrl": "AVATARURL",
        "unionId": "UNIONID",
        "watermark":
        {
            "appid":"APPID",
            "timestamp":TIMESTAMP
        }
    }
登录后复制

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

Laravel5.5及以上版本多环境.env配置读取

以上是Laravel微信小程序获取用户详细信息及带参数小程序码扩展的分析的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!