正在显示
3 个修改的文件
包含
90 行增加
和
1 行删除
app/Helper/Wechat.php
0 → 100644
| 1 | +<?php | ||
| 2 | +/** | ||
| 3 | + * @remark : | ||
| 4 | + * @name :Wechat.php | ||
| 5 | + * @author :lyh | ||
| 6 | + * @method :post | ||
| 7 | + * @time :2023/8/23 18:18 | ||
| 8 | + */ | ||
| 9 | + | ||
| 10 | +namespace App\Helper; | ||
| 11 | + | ||
| 12 | +use \GuzzleHttp\Client; | ||
| 13 | +use Illuminate\Support\Facades\Cache; | ||
| 14 | + | ||
| 15 | +/** | ||
| 16 | + * @remark :微信相关 | ||
| 17 | + * @name :Wechat | ||
| 18 | + * @author :lyh | ||
| 19 | + * @method :post | ||
| 20 | + * @time :2023/8/23 18:19 | ||
| 21 | + */ | ||
| 22 | +class Wechat | ||
| 23 | +{ | ||
| 24 | + public $alias = 'global6.0'; | ||
| 25 | + public $appid = 'wx8253a38fd7ae78f0'; | ||
| 26 | + public $appSecret = '20981cca3d00c074a8886f115d19548d'; | ||
| 27 | + | ||
| 28 | + /** | ||
| 29 | + * @remark :生成access_token | ||
| 30 | + * @name :getAccessToken | ||
| 31 | + * @author :lyh | ||
| 32 | + * @method :post | ||
| 33 | + * @time :2023/8/23 18:28 | ||
| 34 | + */ | ||
| 35 | + public function getAccessToken() | ||
| 36 | + { | ||
| 37 | + $cacheKey = 'access_token'; | ||
| 38 | + if (Cache::has($cacheKey)) { | ||
| 39 | + return Cache::get($cacheKey); | ||
| 40 | + } | ||
| 41 | + $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $this->appid . '&secret=' . $this->appSecret; | ||
| 42 | + $client = new Client(); | ||
| 43 | + $response = $client->get($url); | ||
| 44 | + $data = json_decode($response->getBody(), true); | ||
| 45 | + $accessToken = $data['access_token']; | ||
| 46 | + // 将accessToken缓存起来,避免多次请求 | ||
| 47 | + Cache::put($cacheKey, $accessToken, $data['expires_in'] / 60); | ||
| 48 | + return $accessToken; | ||
| 49 | + } | ||
| 50 | + /** | ||
| 51 | + * @remark :生成二维码 | ||
| 52 | + * @name :setQrcode | ||
| 53 | + * @author :lyh | ||
| 54 | + * @method :post | ||
| 55 | + * @time :2023/8/23 18:19 | ||
| 56 | + */ | ||
| 57 | + public function setQrcode($type,$accessToken){ | ||
| 58 | + $url = 'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=' . $accessToken; | ||
| 59 | + $client = new Client(); | ||
| 60 | + $response = $client->post($url, [ | ||
| 61 | + 'json' => [ | ||
| 62 | + 'expire_seconds' => 3600, | ||
| 63 | + 'action_name' => 'QR_STR_SCENE', | ||
| 64 | + 'action_info' => [ | ||
| 65 | + 'scene' => [ | ||
| 66 | + 'scene_str' => $type.uniqid().$this->alias, | ||
| 67 | + ], | ||
| 68 | + ], | ||
| 69 | + ], | ||
| 70 | + ]); | ||
| 71 | + $data = json_decode($response->getBody(), true); | ||
| 72 | + return $data; | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | +} |
| @@ -11,6 +11,7 @@ namespace App\Http\Controllers\Bside; | @@ -11,6 +11,7 @@ namespace App\Http\Controllers\Bside; | ||
| 11 | 11 | ||
| 12 | use App\Enums\Common\Code; | 12 | use App\Enums\Common\Code; |
| 13 | use App\Helper\Translate; | 13 | use App\Helper\Translate; |
| 14 | +use App\Helper\Wechat; | ||
| 14 | use App\Http\Logic\Bside\User\UserLoginLogic; | 15 | use App\Http\Logic\Bside\User\UserLoginLogic; |
| 15 | use App\Models\Service\Service; | 16 | use App\Models\Service\Service; |
| 16 | use App\Models\Sms\SmsLog; | 17 | use App\Models\Sms\SmsLog; |
| @@ -113,5 +114,17 @@ class LoginController extends BaseController | @@ -113,5 +114,17 @@ class LoginController extends BaseController | ||
| 113 | $this->response('success',Code::SUCCESS,strtolower($str)); | 114 | $this->response('success',Code::SUCCESS,strtolower($str)); |
| 114 | } | 115 | } |
| 115 | 116 | ||
| 116 | - | 117 | + /** |
| 118 | + * @remark :微信登录 | ||
| 119 | + * @name :wechatLogin | ||
| 120 | + * @author :lyh | ||
| 121 | + * @method :post | ||
| 122 | + * @time :2023/8/23 18:46 | ||
| 123 | + */ | ||
| 124 | + public function qrcode(){ | ||
| 125 | + $wechat = new Wechat(); | ||
| 126 | + $accessToken = $wechat->getAccessToken(); | ||
| 127 | + $data = $wechat->setQrcode('global-v6',$accessToken); | ||
| 128 | + $this->response('success',Code::SUCCESS,$data); | ||
| 129 | + } | ||
| 117 | } | 130 | } |
| @@ -338,4 +338,5 @@ Route::group([], function () { | @@ -338,4 +338,5 @@ Route::group([], function () { | ||
| 338 | Route::any('/stringTranslation', [\App\Http\Controllers\Bside\LoginController::class, 'stringTranslation'])->name('stringTranslation'); | 338 | Route::any('/stringTranslation', [\App\Http\Controllers\Bside\LoginController::class, 'stringTranslation'])->name('stringTranslation'); |
| 339 | Route::any('/sendLoginSms', [\App\Http\Controllers\Bside\LoginController::class, 'sendLoginSms'])->name('sendLoginSms'); | 339 | Route::any('/sendLoginSms', [\App\Http\Controllers\Bside\LoginController::class, 'sendLoginSms'])->name('sendLoginSms'); |
| 340 | Route::any('/autologin', [\App\Http\Controllers\Bside\LoginController::class, 'autologin'])->name('autologin'); | 340 | Route::any('/autologin', [\App\Http\Controllers\Bside\LoginController::class, 'autologin'])->name('autologin'); |
| 341 | + Route::any('/qrcode', [\App\Http\Controllers\Bside\LoginController::class, 'qrcode'])->name('qrcode'); | ||
| 341 | }); | 342 | }); |
-
请 注册 或 登录 后发表评论