request->param('code'); if( empty($code) ){ $this->sendOutput('code参数错误',ErrorCode::$paramError); } /* $miniprogramConfigData = Factory::config()->getAppoint('weixin','miniprogram'); if(empty($miniprogramConfigData)){ $this->sendOutput('小程序配置项错误',ErrorCode::$configEroor); }*/ // 获取当前登录企业的小程序配置 $objSystemCache = new SystemCache(); $miniprogramSetting = $objSystemCache->getAppIdByEnterpriseId($this->onlineEnterpriseId); if( empty($miniprogramSetting) ){ parent::sendOutput('后台小程序配置项为空', ErrorCode::$configEroor); } $miniprogramSetting = json_decode($miniprogramSetting,true); $objMiniprogram = new Miniprogram($miniprogramSetting['appid'], $miniprogramSetting['APPscrect']); $result = $objMiniprogram->jscode2session($code); if ($result->isSuccess()) { parent::sendOutput($result->getData()); } else { parent::sendOutput($result->getData(), $result->getErrorCode()); } } /** * 字节跳动小程序登陆接口 */ public function microappLogin() { $code = $this->request->param('code'); if( empty($code) ){ $this->sendOutput('参数错误',ErrorCode::$paramError); } $miniprogramConfigData = Factory::config()->getAppoint('byteDance','microapp'); if(empty($miniprogramConfigData)){ $this->sendOutput('小程序配置项错误',ErrorCode::$configEroor); } $objMicroapp = new Microapp($miniprogramConfigData['appid'], $miniprogramConfigData['appSecret']); $result = $objMicroapp->code2session($code); if ($result->isSuccess()) { parent::sendOutput($result->getData()); } else { parent::sendOutput($result->getData(), $result->getErrorCode()); } } /** * 生成字节调动小程序二维码 */ public function byteCreateQRCode() { $paramsData = $this->request->getRawJson(); $params = [ 'path' => isset($paramsData['path']) ? $paramsData['path'] : '', 'appname' => isset($paramsData['appname']) ? $paramsData['appname'] : '', // toutiao 今日头条 douyin 都应 ]; foreach ($params as $key => $value) { if (empty($value)) { $this->sendOutput($key . '参数错误', ErrorCode::$paramError); } } $miniprogramConfigData = Factory::config()->getAppoint('byteDance','microapp'); if(empty($miniprogramConfigData)){ $this->sendOutput('小程序配置项错误',ErrorCode::$configEroor); } $objMicroapp = new Microapp($miniprogramConfigData['appid'], $miniprogramConfigData['appSecret']); $result = $objMicroapp->token(); if (!$result->isSuccess()) { parent::sendOutput($result->getData(), $result->getErrorCode()); } $access_token = $result->getData(); $result = $objMicroapp->createQRCode($access_token, $params['path']); if ($result->isSuccess()) { parent::sendOutput($result->getData()); } else { parent::sendOutput($result->getData(), $result->getErrorCode()); } } /** * 生成微信小程序二维码 */ public function createwxaqrcode() { $paramsData = $this->request->getRawJson(); $params = [ 'path' => isset($paramsData['path']) ? $paramsData['path'] : '', 'params' => isset($paramsData['params']) ? $paramsData['params'] : 0, ]; foreach ($params as $key => $value) { if (empty($value)) { $this->sendOutput($key . '参数错误', ErrorCode::$paramError); } } /* $miniprogramConfigData = Factory::config()->getAppoint('weixin','miniprogram'); if(empty($miniprogramConfigData)){ $this->sendOutput('小程序配置项错误',ErrorCode::$configEroor); } $objOffiaccount = new Offiaccount($miniprogramConfigData['appid'], $miniprogramConfigData['appSecret']);*/ // 获取当前登录企业的小程序配置 $objSystemCache = new SystemCache(); $miniprogramSetting = $objSystemCache->getAppIdByEnterpriseId($this->onlineEnterpriseId); if( empty($miniprogramSetting) ){ parent::sendOutput('后台小程序配置项为空', ErrorCode::$configEroor); } $miniprogramSetting = json_decode($miniprogramSetting,true); $objOffiaccount = new Offiaccount($miniprogramSetting['appid'], $miniprogramSetting['APPscrect']); $result = $objOffiaccount->token(); if (!$result->isSuccess()) { parent::sendOutput($result->getData(), $result->getErrorCode()); } $access_token = $result->getData(); $objMiniprogram = new Miniprogram($miniprogramSetting['appid'], $miniprogramSetting['APPscrect']); $result = $objMiniprogram->getwxacodeunlimit($access_token, $params); if ($result->isSuccess()) { $url = MP_FILE_URL.$result->getData(); parent::sendOutput($url); } else { parent::sendOutput($result->getData(), $result->getErrorCode()); } } /** * 获取基础access_token接口 */ public function token() { $offiaccountConfigData = Factory::config()->getAppoint('weixin','offiaccount'); if(empty($offiaccountConfigData)){ $this->sendOutput('公众号配置项错误',ErrorCode::$configEroor); } $objOffiaccount = new Offiaccount($offiaccountConfigData['appid'], $offiaccountConfigData['appSecret']); $result = $objOffiaccount->token(); if ($result->isSuccess()) { parent::sendOutput($result->getData()); } else { parent::sendOutput($result->getData(), $result->getErrorCode()); } } /** * 获取网页access_token */ public function access_token() { $code = $this->request->param('code'); if( empty($code) ){ $this->sendOutput('参数错误',ErrorCode::$paramError); } $offiaccountConfigData = Factory::config()->getAppoint('weixin','offiaccount'); if(empty($offiaccountConfigData)){ $this->sendOutput('公众号配置项错误',ErrorCode::$configEroor); } $objOffiaccount = new Offiaccount($offiaccountConfigData['appid'], $offiaccountConfigData['appSecret']); $result = $objOffiaccount->access_token($code); if ($result->isSuccess()) { parent::sendOutput($result->getData()); } else { parent::sendOutput($result->getData(), $result->getErrorCode()); } } /** * app微信授权获取个人信息 */ public function userinfo() { $params = $this->request->getRawJson(); $params = [ 'openid' => $params['openid'], 'access_token' => $params['access_token'], 'source' => getArrayItem($params, 'source', StatusCode::$source['miniProgram']), ]; foreach($params as $key => $value){ if(empty($value) && $value !== 0){ $this->sendOutput($key.'参数错误', ErrorCode::$paramError ); } } if($params['source'] == StatusCode::$source['weiXinBrowser']){ $offiaccountConfigData = Factory::config()->getAppoint('weixin','offiaccount'); if(empty($offiaccountConfigData)){ $this->sendOutput('公众号配置项错误',ErrorCode::$configEroor); } $objOffiaccount = new Offiaccount($offiaccountConfigData['appid'], $offiaccountConfigData['appSecret']); $result = $objOffiaccount->userinfo($params['access_token'], $params['openid']); }else{ $objSystemCache = new SystemCache(); $miniprogramSetting = $objSystemCache->getAppIdByEnterpriseId($this->onlineEnterpriseId); if( empty($miniprogramSetting) ){ parent::sendOutput('后台小程序配置项为空', ErrorCode::$configEroor); } $miniprogramSetting = json_decode($miniprogramSetting,true); $objOffiaccount = new Offiaccount($miniprogramSetting['appid'], $miniprogramSetting['APPscrect']); $result = $objOffiaccount->userinfo($params['access_token'], $params['openid']); } if (!$result->isSuccess()) { parent::sendOutput($result->getData(), $result->getErrorCode()); } $userinfo = $result->getData(); parent::sendOutput($userinfo); } /** * js-sdk授权接口 */ public function getJsSdkConfig() { $offiaccountConfigData = Factory::config()->getAppoint('weixin','offiaccount'); if(empty($offiaccountConfigData)){ $this->sendOutput('公众号配置项错误',ErrorCode::$configEroor); } $objOffiaccount = new Offiaccount($offiaccountConfigData['appid'], $offiaccountConfigData['appSecret']); $result = $objOffiaccount->getJsSdkConfig(); if ($result->isSuccess()) { parent::sendOutput($result->getData()); } else { parent::sendOutput($result->getData(), $result->getErrorCode()); } } /** * 解密数据 */ public function decryptData() { $params = $this->request->getRawJson(); $params = [ 'openid' => isset($params['openid']) ? $params['openid'] : '', 'iv' => isset($params['iv']) ? $params['iv'] : '', 'encryptedData' => isset($params['encryptedData']) ? $params['encryptedData'] : '', ]; foreach($params as $key => $value){ if(empty($value) && $value !== 0){ $this->sendOutput($key.'参数错误', ErrorCode::$paramError ); } } /* $miniprogramConfigData = Factory::config()->getAppoint('weixin','miniprogram'); if(empty($miniprogramConfigData)){ $this->sendOutput('小程序配置项错误',ErrorCode::$configEroor); }*/ // 获取当前登录企业的小程序配置 $objSystemCache = new SystemCache(); $miniprogramSetting = $objSystemCache->getAppIdByEnterpriseId($this->onlineEnterpriseId); if( empty($miniprogramSetting) ){ parent::sendOutput('后台小程序配置项为空', ErrorCode::$configEroor); } $miniprogramSetting = json_decode($miniprogramSetting,true); $objMiniprogram = new Miniprogram($miniprogramSetting['appid'], $miniprogramSetting['APPscrect']); $result = $objMiniprogram->decryptData($params['iv'], $params['encryptedData'], $params['openid']); if ($result->isSuccess()) { parent::sendOutput($result->getData()); } else { parent::sendOutput($result->getData(), $result->getErrorCode()); } } }