Wallogit.com
2017 © Pedro Peláez
微信小程序登录、带参小程序码生成
本扩展包包含用户详细信息解密、带参数小程序码生成并保存在本地目录功能。 用户详细信息解密官方也提供多种语言版本SDK(C++、PHP、Node、Python),在本扩展包中仅仅做封装处理。 带参数小程序码生成,官方给出三种接口,在此扩展包中采用 接口B (适用于需要的码数量极多的业务场景,通过该接口生成的小程序码,永久有效,数量暂无限制)。, (*1)
运行以下命令以获取最新版本:, (*2)
composer require icharle/wxtool 1.0
将服务提供者添加到配置文件中的providers数组中config/app.php,如下所示:, (*3)
'providers' => [
...
Icharle\Wxtool\WxtoolServiceProvider::class,
]
发布配置文件, (*4)
php artisan vendor:publish --tag=wxtool
此时有一个config/wxtool.php文件。, (*5)
配置AppID及AppSecret, (*6)
在根目录.env文件中添加如下代码, (*7)
WX_APPID = 您的小程序小程序ID WX_SECRET = 您的小程序密钥
公开storage访问文件(可选), (*8)
若要使用 带参数小程序码生成 功能时必须执行下面命令。生成的小程序码默认保存在storage/app/public/qrcode文件夹中, (*9)
php artisan storage:link
获取带参数小程序码(示例代码), (*10)
<?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()
{
$a = new Wxtool();
$imgpath = $a->GetQrcode($scene,$pages);
}
}
获取用户详细信息(示例代码), (*11)
<?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); //获取用户详细信息
}
}
解密返回结果, (*12)
{
"openId": "OPENID",
"nickName": "NICKNAME",
"gender": GENDER,
"city": "CITY",
"province": "PROVINCE",
"country": "COUNTRY",
"avatarUrl": "AVATARURL",
"unionId": "UNIONID",
"watermark":
{
"appid":"APPID",
"timestamp":TIMESTAMP
}
}