|
@@ -0,0 +1,178 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace app\index\controller;
|
|
|
+
|
|
|
+use EasyWeChat\Factory;
|
|
|
+use think\facade\Config;
|
|
|
+use think\facade\Log;
|
|
|
+use think\facade\Cache;
|
|
|
+use app\common\util\wechat\WxAccountConfig;
|
|
|
+
|
|
|
+class Test extends Base
|
|
|
+{
|
|
|
+
|
|
|
+ private $wechat_config;
|
|
|
+ public function __construct()
|
|
|
+ {
|
|
|
+ parent::__construct();
|
|
|
+ $this->wechat_config = WxAccountConfig::getMiniProgramConfig();
|
|
|
+ $this->wechat_config['app_id'] = Config::get('wechat.request.app_id');
|
|
|
+ $this->wechat_config['secret'] = Config::get('wechat.request.secret');
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function miniProgram_qrcode_login(){
|
|
|
+ $my_token = trim(input('my_token', ''));
|
|
|
+
|
|
|
+ $check = Cache::get('mini_logged_'.$my_token);
|
|
|
+ $id = intval($check);
|
|
|
+ if($id==0){
|
|
|
+ $this->error('未登录');
|
|
|
+ }
|
|
|
+
|
|
|
+ * 获取账号信息result 业务部分
|
|
|
+ */
|
|
|
+ $this->success($result, "登录成功");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function miniProgram_scan(){
|
|
|
+ $my_token = trim(input('my_token', ''));
|
|
|
+ if($my_token != ''){
|
|
|
+ $check = Cache::get('mini_login_'.$my_token);
|
|
|
+ if(!isset($check)){
|
|
|
+
|
|
|
+ $this->error('二维码失效', 113);
|
|
|
+ }
|
|
|
+ Cache::set('mini_login_'.$my_token, 1, 60);
|
|
|
+ $this->success([], "扫描成功");
|
|
|
+ }
|
|
|
+ $this->error("二维码token不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function miniProgram_login(){
|
|
|
+ $my_token = trim(input('my_token', ''));
|
|
|
+ $code = trim(input('code', ''));
|
|
|
+ if($code == ''){
|
|
|
+ $this->error("微信码不能为空");
|
|
|
+ }
|
|
|
+ $app = Factory::miniProgram($this->wechat_config);
|
|
|
+
|
|
|
+ $params = ['code'=>$code];
|
|
|
+ $result = $app->plugin->httpPostJson('wxa/business/getuserphonenumber', $params);
|
|
|
+ if (!isset($result['phone_info']['phoneNumber'])) {
|
|
|
+ $this->error('获取手机号失败');
|
|
|
+ }
|
|
|
+ $phone = $result['phone_info']['phoneNumber'];
|
|
|
+
|
|
|
+
|
|
|
+ * 获取登录账号id 业务部分
|
|
|
+ */
|
|
|
+
|
|
|
+ if($my_token != ''){
|
|
|
+ $check = Cache::get('mini_logged_'.$my_token);
|
|
|
+ Cache::set('mini_login_'.$my_token, 1, 60);
|
|
|
+ if(isset($check)){
|
|
|
+ $id = intval($check);
|
|
|
+
|
|
|
+
|
|
|
+ * 获取账号信息result 业务部分
|
|
|
+ */
|
|
|
+
|
|
|
+ $this->success($result, "登录成功");
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ $check = Cache::get('mini_login_'.$my_token);
|
|
|
+ if(!isset($check)){
|
|
|
+
|
|
|
+ $this->error('二维码失效', 113);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+
|
|
|
+ * 获取账号信息result 业务部分
|
|
|
+ */
|
|
|
+ Cache::set('mini_logged_'.$my_token, $id, 3600*24);
|
|
|
+ $this->success($result, "登录成功");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 获取账号信息result 业务部分
|
|
|
+ */
|
|
|
+ $this->success($result, "登录成功");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function miniProgram_qrcode_check(){
|
|
|
+ $my_token = trim(input('my_token', ''));
|
|
|
+
|
|
|
+ $check = Cache::get('mini_login_'.$my_token);
|
|
|
+
|
|
|
+ if(!isset($check)){
|
|
|
+ $this->error('二维码失效', 113);
|
|
|
+ }
|
|
|
+ else if($check == 1){
|
|
|
+ $this->error('二维码已被扫', 114);
|
|
|
+ }
|
|
|
+ $this->success([], "二维码未被扫");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function miniProgram_qrcode(){
|
|
|
+ $page = trim(input('page', ''));
|
|
|
+ $width = intval(input('width', 600));
|
|
|
+ $env_version = trim(input('env_version', 'release'));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ $config = [
|
|
|
+ 'app_id' => Config::get('wechat.request.app_id'),
|
|
|
+ 'secret' => Config::get('wechat.request.secret'),
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 'response_type' => 'array',
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ ];
|
|
|
+ $filename = time().'_qrcode.jpg';
|
|
|
+ $app = Factory::miniProgram($config);
|
|
|
+ $opt = [
|
|
|
+ 'page' => $page,
|
|
|
+ 'width' => $width,
|
|
|
+ 'env_version' => $env_version,
|
|
|
+ ];
|
|
|
+
|
|
|
+ $my_token = substr(md5(time()), 0, 16);
|
|
|
+
|
|
|
+ Cache::set('mini_login_'.$my_token, 0, 60);
|
|
|
+ $scene = $my_token;
|
|
|
+ $response = $app->app_code->getUnlimit($scene, $opt);
|
|
|
+ Log::info(' scene:'.json_encode($scene).' opt:'.json_encode($opt).' response:'.json_encode($response));
|
|
|
+
|
|
|
+ if ($response instanceof \EasyWeChat\Kernel\Http\StreamResponse) {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ $new_filename = $response->saveAs($fileHelp->qrcode_path, $filename);
|
|
|
+
|
|
|
+ $result['qrcode_url'] = $fileHelp->getQrcodeUrlByPath($fileHelp->qrcode_path.$new_filename);
|
|
|
+ $result['my_token'] = $my_token;
|
|
|
+
|
|
|
+ $this->success($result, "生成成功");
|
|
|
+ }
|
|
|
+ $this->error("二维码生成失败");
|
|
|
+ }
|
|
|
+
|
|
|
+}
|