123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <?php
- namespace App\Http\Controllers\Client;
- use App\Http\Controllers\Controller;
- use App\Http\Requests\Client\Wechat\GetAuthUrlRequest;
- use App\Http\Requests\Client\Wechat\HandleCallbackRequest;
- use App\Services\Client\WechatService;
- use Illuminate\Http\Request;
- class WechatController extends Controller
- {
- protected WechatService $wechatService;
- public function __construct(WechatService $wechatService)
- {
- $this->wechatService = $wechatService;
- }
-
- public function getAuthUrl(GetAuthUrlRequest $request)
- {
- $validated = $request->validated();
- $result = $this->wechatService->getAuthUrl(
- $validated['redirect_uri'],
- $validated['scope'] ?? 'snsapi_userinfo'
- );
- return $this->success($result);
- }
-
- public function handleCallback(HandleCallbackRequest $request)
- {
- $validated = $request->validated();
- $result = $this->wechatService->handleAuthCallback(
- $validated['code'],
- $validated['state'],
- $validated['invite_code'] ?? null
- );
- return $this->success($result);
- }
-
- public function getJsConfig(Request $request)
- {
- $url = $request->input('url');
- if (empty($url)) {
- return $this->error('URL不能为空');
- }
- if (!filter_var($url, FILTER_VALIDATE_URL)) {
- return $this->error('URL必须是一个有效的网址');
- }
- $config = $this->wechatService->getJsConfig($url);
- return $this->success($config);
- }
- }
|