js_domain = MinaHelper::getDomain(); return $this->render('development', [ 'settings' => $settings, 'others' => $others ]); } /** * 小程序开发设置-保存 */ public function actionDevelopmentSave() { $result = new stdClass(); $result->success = false; $result->code = null; $result->datas = []; if (false == $this->request->isPost) { return $this->renderJson($result); } $appId = $this->request->post('appId'); $appSecret = $this->request->post('appSecret'); $settings = MinaHelper::getMinaSetting(); $settings->appid = trim($appId); $settings->appsecret = trim($appSecret); if ($settings->save()) { $result->success = true; } return $this->renderJson($result); } /** * 小程序域名设置 */ public function actionDomain() { $settings = MinaHelper::getMinaSetting(); return $this->render('domain', [ 'settings' => $settings ]); } /** * 小程序域名设置-保存 */ public function actionDomainSave() { $result = new stdClass(); $result->success = false; $result->code = null; $result->datas = []; if (false == $this->request->isPost) { return $this->renderJson($result); } $domain = $this->request->post('domain'); $payDomain = $this->request->post('payDomain'); $settings = MinaHelper::getMinaSetting(); $settings->domain = trim($domain); $settings->pay_domain = trim($payDomain); if ($settings->save()) { $result->success = true; } return $this->renderJson($result); } /** * 小程序微信支付设置 */ public function actionPayment() { $settings = MinaHelper::getMinaSetting(); $payment = new stdClass(); // 商户号 $payment->mch_id = isset($settings->mch_id) ? $settings->mch_id : ''; // API秘钥 $payment->api_key = isset($settings->api_key) ? $settings->api_key : ''; // API证书 $payment->ssl_cert_exists = !empty($settings->ssl_cert_content) ? true : false; // API秘钥 $payment->ssl_key_exists = !empty($settings->ssl_key_content) ? true : false; // CA证书 $payment->ssl_rootca_exists = !empty($settings->ssl_rootca_content) ? true : false; unset($settings); return $this->render('payment', [ 'payment' => $payment ]); } /** * 小程序微信支付设置-保存 */ public function actionPaymentSave() { $result = new stdClass(); $result->code = null; $result->success = false; $result->datas = []; $settings = MinaHelper::getMinaSetting(); if (!$settings) { $result->code = 101; // 操作有误,请重新操作 return json_encode($result); } $mch_id = $this->request->post('mch_id'); $api_key = $this->request->post('api_key'); if (!empty($mch_id)) { $settings->mch_id = $mch_id; } if (!empty($api_key)) { $settings->api_key = $api_key; } if ($settings->save()) { $result->success = true; } return json_encode($result); } /** * 小程序微信支付设置-上传API证书文件: apiclient_cert.pem */ public function actionPaymentUploadCert() { $result = new stdClass(); $result->success = false; $result->error = null; $settings = MinaHelper::getMinaSetting(); if (!$settings) { $result->error = '小程序不存在'; return json_encode($result); } // 检查文件后缀是否正确(.pem) $file = $_FILES['cert']; $tmp = explode('.', $file['name']); $suffix = end($tmp); if ($suffix != 'pem') { $result->error = '文件格式有误'; return json_encode($result); } // 检查上传证书内容大小 $fileContent = file_get_contents($file["tmp_name"]); if (empty($fileContent) || strlen($fileContent) > 2048) { $result->error = '文件大小有误'; return json_encode($result); } // 将上传的证书文件保存到证书存储目录(certs/) $certRoot = Yii::getAlias('@certs'); $certDir = $certRoot . '/mina'; if (!file_exists($certDir)) { mkdir($certDir, 0777, true); } $savePath = $certDir . '/' . 'apiclient_cert.pem'; move_uploaded_file($file["tmp_name"], $savePath); // 将上传证书文件内容保存到数据库 $settings->ssl_cert_content = $fileContent; if ($settings->save()) { $result->success = true; } else { throw new ErrorException(implode("\r\n", $settings->getFirstErrors())); } /** * 后台操作日志 */ AdminLogs::doImport('小程序-API证书文件', 1); Yii::$app->session->setFlash('success', '更新成功'); return $this->renderJson($result); } /** * 小程序微信支付设置-上传API秘钥文件: apiclient_key.pem */ public function actionPaymentUploadKey() { $result = new stdClass(); $result->success = false; $result->error = null; $settings = MinaHelper::getMinaSetting(); if (!$settings) { $result->error = '商城不存在'; return json_encode($result); } // 检查文件后缀是否正确(.pem) $file = $_FILES['key']; $tmp = explode('.', $file['name']); $suffix = end($tmp); if ($suffix != 'pem') { $result->error = '文件格式有误'; return json_encode($result); } // 检查上传证书内容大小 $fileContent = file_get_contents($file["tmp_name"]); if (empty($fileContent) || strlen($fileContent) > 2048) { $result->error = '文件大小有误'; return json_encode($result); } // 将上传的秘钥文件保存到证书存储目录(certs/) $certRoot = Yii::getAlias('@certs'); $certDir = $certRoot . '/mina'; if (!file_exists($certDir)) { mkdir($certDir, 0777, true); } $savePath = $certDir . '/' . 'apiclient_key.pem'; move_uploaded_file($file["tmp_name"], $savePath); // 将上传证书文件内容保存到数据库 $settings->ssl_key_content = $fileContent; if ($settings->save()) { $result->success = true; } else { throw new ErrorException(implode("\r\n", $settings->getFirstErrors())); } /** * 后台操作日志 */ AdminLogs::doImport('小程序-API秘钥文件', 1); Yii::$app->session->setFlash('success', '更新成功'); return $this->renderJson($result); } /** * 小程序微信支付设置-上传CA证书: rootca.pem */ public function actionPaymentUploadRootca() { $result = new stdClass(); $result->success = false; $result->error = null; $settings = MinaHelper::getMinaSetting(); if (!$settings) { $result->error = '小程序设置不存在'; return json_encode($result); } // 检查文件后缀是否正确(.pem) $file = $_FILES['rooca']; $tmp = explode('.', $file['name']); $suffix = end($tmp); if ($suffix != 'pem') { $result->error = '文件格式有误'; return json_encode($result); } // 检查上传证书内容大小 $fileContent = file_get_contents($file["tmp_name"]); if (empty($fileContent) || strlen($fileContent) > 2048) { $result->error = '文件大小有误'; return json_encode($result); } // 将上传的秘钥文件保存到证书存储目录(certs/) $certRoot = Yii::getAlias('@certs'); $certDir = $certRoot . '/mina'; if (!file_exists($certDir)) { mkdir($certDir, 0777, true); } $savePath = $certDir . '/' . 'rooca.pem'; move_uploaded_file($file["tmp_name"], $savePath); // 将上传证书文件内容保存到数据库 $settings->ssl_rootca_content = $fileContent; if ($settings->save()) { $result->success = true; } else { throw new ErrorException(implode("\r\n", $settings->getFirstErrors())); } /** * 后台操作日志 */ AdminLogs::doImport('小程序-CA证书', 1); Yii::$app->session->setFlash('success', '更新成功'); return $this->renderJson($result); } /** * 小程序基本信息设置 */ public function actionInfo() { $settings = MinaHelper::getMinaSetting(); // 资料设置 $setting = new stdClass(); // 名称 $setting->name = isset($settings->name) ? $settings->name : ''; // 简介 $setting->intro = isset($settings->intro) ? $settings->intro : ''; $setting->logoUrl = $settings->logo_path ? ImageManager::getUrl($settings->logo_path) : false; return $this->render('info', [ 'setting' => $setting ]); } /** * 小程序基本信息设置-保存 */ public function actionInfoSave() { $result = new stdClass(); $result->success = false; $result->code = null; $result->datas = []; $name = $this->request->post('name'); $intro = $this->request->post('intro'); $settings = MinaHelper::getMinaSetting(); if (!$settings) { $result->code = 101; // 操作有误,请重新操作; return json_encode($result); } $settings->name = $name; $settings->intro = $intro; if ($settings->save()) { $result->success = true; } return json_encode($result); } /** * 小程序基本信息设置-上传LOGO */ public function actionInfoUploadLogo() { $image = $_FILES['logo']; // 图片路径数据整理 $tmp = explode('.', $image['name']); $suffix = end($tmp); $savePath = ImageManager::getMinaSettingImgPath($suffix); $settings = MinaHelper::getMinaSetting(); if (empty($settings->logo_path)) { ImageManager::add($image["tmp_name"], $savePath); } else{ ImageManager::replace($settings->logo_path, $savePath, $image["tmp_name"]); } $settings->logo_path = $savePath; $settings->save(); /** * 后台操作日志 */ AdminLogs::doImport('小程序LOGO更新', 1); return json_encode([ 'success' => true ]); } /** * 小程序服务协议版本设置 */ public function actionServiceAgreement() { $settings = MinaHelper::getMinaSetting(); // 资料设置 $setting = new stdClass(); // 服务协议版本号 $setting->agreement_version = isset($settings->agreement_version) ? $settings->agreement_version : ''; // 服务协议版本更新描述 $setting->agreement_update_desc = isset($settings->agreement_update_desc) ? $settings->agreement_update_desc : ''; return $this->render('service-agreement', [ 'setting' => $setting ]); } /** * 小程序服务协议版本设置-保存 */ public function actionServiceAgreementSave() { $result = new stdClass(); $result->success = false; $result->code = null; $result->datas = []; $agreement_version = $this->request->post('agreement_version'); $agreement_update_desc = $this->request->post('agreement_update_desc'); $settings = MinaHelper::getMinaSetting(); if (!$settings) { $result->code = 101; // 操作有误,请重新操作; return json_encode($result); } $settings->agreement_version = $agreement_version; $settings->agreement_update_desc = $agreement_update_desc; if ($settings->save()) { $result->success = true; } return json_encode($result); } }