81 lines
2.3 KiB
PHP
81 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace app\services;
|
|
|
|
use app\api\library\ApiException;
|
|
use app\common\library\Token;
|
|
use EasyWeChat\Factory;
|
|
use EasyWeChat\Kernel\Exceptions\InvalidConfigException;
|
|
use EasyWeChat\MiniProgram\Application;
|
|
|
|
class WorkerService extends BaseService
|
|
{
|
|
public function bindPhoneNumber(string $code, string $vendorToken)
|
|
{
|
|
//getPhoneNumber 方法通过魔术方法 __call 获取
|
|
// $phoneInfo = $this->getMiniProgramApp()->getPhoneNumber($code);
|
|
//
|
|
// if (empty($phoneInfo)) {
|
|
// $this->apiError('获取手机号失败', 0, $phoneInfo);
|
|
// }
|
|
//
|
|
// if ($phoneInfo['errcode'] !== 0) {
|
|
// $this->apiError('获取手机号失败', 0, $phoneInfo);
|
|
// }
|
|
//
|
|
// $phone = $phoneInfo['phone_info']['phoneNumber'];
|
|
|
|
$phone = '18628195903';
|
|
$tokenData = Token::get($vendorToken);
|
|
if (!$tokenData) {
|
|
$this->apiError('vendor_token 无效');
|
|
}
|
|
|
|
$workerVendorId = $tokenData['user_id'];
|
|
dump($phone);
|
|
}
|
|
|
|
public function login(string $code)
|
|
{
|
|
// $app = $this->getMiniProgramApp();
|
|
// try {
|
|
// $info = $app->auth->session($code);
|
|
// } catch (InvalidConfigException $e) {
|
|
// $this->apiError('登录失败', $e);
|
|
// }
|
|
//
|
|
// if (isset($info['errcode']) && $info['errcode'] !== 0) {
|
|
// $this->apiError('登录失败', 0, $info);
|
|
// }
|
|
|
|
$info['openid'] = 'oNgcn42DRwoG_qE6jjvsCSbM4cX8';
|
|
$workerVendor = $this->getWorkerVendorService()->getVendorByOpenid($info['openid']);
|
|
|
|
//创建
|
|
if (empty($workerVendor)) {
|
|
try {
|
|
$this->getWorkerVendorService()->createWechatMpVendor($info['openid']);
|
|
} catch (\Exception $e) {
|
|
$this->apiError('登录失败', $e, $info);
|
|
}
|
|
|
|
$workerVendor = $this->getWorkerVendorService()->getVendorByOpenid($info['openid']);
|
|
}
|
|
|
|
return $workerVendor->toArray();
|
|
}
|
|
|
|
/**
|
|
* 获取小程序 App
|
|
* @return Application
|
|
*/
|
|
private function getMiniProgramApp(): Application
|
|
{
|
|
$config = [
|
|
'app_id' => config('mini_program.app_id'),
|
|
'secret' => config('mini_program.secret'),
|
|
];
|
|
return Factory::miniProgram($config);
|
|
}
|
|
}
|