79 lines
3.0 KiB
PHP
79 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace app\DeviceEnter\controller;
|
|
|
|
|
|
use think\Db;
|
|
|
|
|
|
class Wechat extends Base{
|
|
// 品川科技蓝牙工具的小程序信息
|
|
private $app_id = 'wx02bd10b0ee5c329f'; // 微信小程序的AppID
|
|
private $app_secret = 'c36a7398acc405d6e18d5dae903bc289'; // 微信小程序的AppSecret
|
|
|
|
|
|
public function login(){
|
|
try {
|
|
// 你的业务逻辑
|
|
if(count(input('post.')) > 0){
|
|
$data = input('post.');
|
|
}
|
|
if(!array_key_exists('code', $data)){
|
|
// return $this->msg(10001,'');
|
|
return $this->msg(10001,'code is miss');
|
|
}
|
|
// 校验参数
|
|
if (empty($data['code'])) {
|
|
return $this->msg(10001,'code is miss.');
|
|
}
|
|
|
|
$code = $data['code'];
|
|
$config = [
|
|
'app_id' => $this->app_id,
|
|
'app_secret' => $this->app_secret,
|
|
];
|
|
$url = "https://api.weixin.qq.com/sns/jscode2session?appid={$config['app_id']}&secret={$config['app_secret']}&js_code={$code}&grant_type=authorization_code";
|
|
|
|
$result = file_get_contents($url);
|
|
$data = json_decode($result, true);
|
|
if (isset($data['errcode'])) {
|
|
// return json(['code' => 500, 'msg' => '获取openid失败:'.$data['errmsg']]);
|
|
return $this->msg(10002,'获取openid失败:'.$data['errmsg']);
|
|
}
|
|
|
|
|
|
$device_enter = Db::connect('device_enter_db');
|
|
|
|
$user_find = $device_enter->table('device_user')->where(['openid'=>$data['openid']])->find();
|
|
if($user_find){
|
|
return $this->msg(['token' => $user_find['token']]);
|
|
}else{
|
|
$token = md5($data['openid']);
|
|
$user_result = $device_enter->table('device_user')
|
|
->insert([
|
|
'openid'=>$data['openid'],
|
|
'token'=>$token,
|
|
'create_time'=>date('Y-m-d H:i:s')
|
|
]);
|
|
if($user_result){
|
|
return $this->msg(['token' => $token]);
|
|
}
|
|
}
|
|
} catch (\Exception $e) {
|
|
// 捕获异常
|
|
$logContent["flie"] = $e->getFile();
|
|
$logContent["line"] = $e->getLine();
|
|
$logContent['all_content'] = "异常信息:\n";
|
|
$logContent['all_content'] .= "消息: " . $e->getMessage() . "\n";
|
|
$logContent['all_content'] .= "代码: " . $e->getCode() . "\n";
|
|
$logContent['all_content'] .= "文件: " . $e->getFile() . "\n";
|
|
$logContent['all_content'] .= "方法: " . __METHOD__ . "\n";
|
|
$logContent['all_content'] .= "行号: " . $e->getLine() . "\n";
|
|
$logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n";
|
|
$this->record_api_log($data, $logContent, null);
|
|
return $this->msg(99999);
|
|
}
|
|
}
|
|
|
|
|
|
} |