1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?php
- /*
- * This file is part of the Jiannei/lumen-api-starter.
- *
- * (c) Jiannei <longjian.huang@foxmail.com>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- namespace App\Support\Traits;
- use App\Repositories\Enums\ResponseCodeEnum;
- use App\Repositories\Enums\Xjc\AdminTypeEnum;
- use App\Repositories\Models\Base\Setting;
- use EasyWeChat\Factory;
- use Illuminate\Support\Facades\Log;
- trait WeChat
- {
- /**
- * 小程序:通过code获取openid
- * @param $app_id
- * @param $app_secret
- * @param $code
- * @return array
- * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
- */
- public function miniProgramByCodeGetOpenId($app_id, $code, $type)
- {
- // $app_secret = config('wechat.mini_program.default.secret');
- // $app_id = config('wechat.mini_program.default.app_id');
- $miniConfig = wechat_mini_config($type);
- if ($miniConfig['app_id'] != $app_id) abort(ResponseCodeEnum::HTTP_UNAUTHORIZED, 'AppID不对');
- $miniProgram = Factory::miniProgram($miniConfig);
- $data = $miniProgram->auth->session($code);
- if (isset($data['errcode']) && (int)$data['errcode'] !== 0) {
- Log::error($data);
- abort(ResponseCodeEnum::HTTP_UNAUTHORIZED, $data['errmsg']);
- }
- return [
- $data['session_key'],
- $data['openid'],
- isset($data['unionid']) ? $data['openid'] : false,
- ];
- }
- }
|