因为涉及到解密要用到信息 所以我们先下载官方的示例demo
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html
这里我们来说一下 目录结构如下
然后路由文件配置如下
<?php
use Illuminate\Http\Request;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
// 标识 /api/版本号/地址
Route::group(['prefix'=>'v1','namespace'=>'Api'],function (){
// 小程序登录
Route::post('wxlogin','IndexController@wxlogin');
// 获取用户信息
Route::post('getuser','IndexController@getuser');
});
接下来首先按照官方文档 登陆之前 要先获取code
小程序登录 请求路由为 http://xxx.natappfree.cc/api/v1/wxlogin
方法如下 对应文件为 Api/IndexController.php
public function wxlogin(Request $request) {
// print_r($request->all());
//die();
// 小程序发送过来的
$code = $request->get('code');
// 此两个值是在小程序的后台得到的
$appid = config('app.appid');
$secrect = config('app.secrect');
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code';
$url = sprintf($url,$appid,$secrect,$code);
$json = http_request($url); //这个方法就是一个普通的curl函数而已
$sb= json_decode($json,true);
//put(键名,键值,时间 分钟)
Cache::put('sk',$sb['session_key'],30);
echo json_encode($sb);exit;
}
变量名什么的忽略就好了 这一步主要是可以获得sessi