123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- <?php
- namespace app\admin\controller;
- use think\exception\ValidateException;
- use think\facade\Cache;
- use app\model\Config;
- use app\model\Uploadminiprogram;
- class UploadminiprogramController extends Base
- {
- function index()
- {
- $weid = weid();
- $path = input('post.path', '', 'serach_in');
- if ($path == "/config/uploadminiprogram") {
- $ptype = 1;
- } elseif (($path == "/config/techuploadminiprogram")) {
- $ptype = 2;
- }
- $query = Uploadminiprogram::where(['weid' => $weid, 'is_up' => 1, 'ptype' => $ptype]);
- $res = $query->order('id desc')
- ->paginate(getpage())
- ->toArray();
- $data['data'] = $res;
- return $this->json($data);
- }
- function listUpdate()
- {
- $data = only('id,status,sort');
- if (!$data['id']) throw new ValidateException('参数错误');
- Uploadminiprogram::update($data);
- return $this->json(['msg' => '操作成功']);
- }
- public function update()
- {
- $postdata = $this->request->post();
- //$updata = $this->uploadWinpro($postdata);
- $updata = $this->uploadmini($postdata);
- if ($updata['data']['code'] == 2000) {
- $postdata['is_up'] = Uploadminiprogram::where('id', $postdata['id'])->update(['is_up' => 1]);
- }
- return $this->json(['msg' => $updata['data']['msg'], 'data' => $postdata]);
- }
- function getInfo()
- {
- $path = input('post.path', '', 'serach_in');
- if ($path == "/config/uploadminiprogram") {
- $ptype = 1;
- } elseif (($path == "/config/techuploadminiprogram")) {
- $ptype = 2;
- }
- $res = Uploadminiprogram::getnewversion($ptype);
- return $this->json(['data' => $res]);
- }
- /**
- * @title 上传微信小程序
- */
- public function uploadmini($postdata)
- {
- $weid = weid();
- $wechatConfig = Config::getconfig('miniprogram');
- if ($postdata['ptype'] == 2) {
- $multiid = '1';
- $wechatConfig['app_id'] = $wechatConfig['techapp_id'];
- $wechatConfig['secret'] = $wechatConfig['techsecret'];
- $wechatConfig['private_key'] = $wechatConfig['techprivate_key'];
- } else {
- $multiid = '0';
- }
- if ($wechatConfig) {
- if (!$wechatConfig['app_id']) throw new ValidateException('请先配置小程序appId');
- if (!$wechatConfig['secret']) throw new ValidateException('请先配置小程序appSecret');
- if (!$wechatConfig['private_key']) throw new ValidateException('请先配置小程序上传密钥');
- } else {
- throw new ValidateException('请先配置小程序参数');
- }
- $domain = Author()::getdomainname();
- $configFiles = [
- [
- 'name' => 'siteinfo.js',
- 'path' => '/',
- 'content' => 'var siteinfo = {"uniacid": "' . $weid . '","acid": "' . $weid . '","multiid": "' . $multiid . '","version": "' . $postdata['id'] . '","siteroot": "https://' . $domain . '/app/index.php","design_method": "3"};module.exports = siteinfo;'
- ],
- ];
- $url = 'http://console.samcms.com/public/index.php/index/authorization/uploadminiprogram';
- $post = [
- 'appid' => trim($wechatConfig['app_id']),
- 'wxapp_private_key' => trim($wechatConfig['private_key']),
- 'version' => $postdata['version'],
- 'desc' => $postdata['desctext'],
- 'config_files' => json_encode($configFiles)
- ];
- $authorization = Author()::authorizationInfo();
- $post['secret'] = trim($authorization['secret']);
- $post['seed'] = trim($authorization['seed']);
- $post['biaoshi'] = config('database.app_name');
- $result = vit_http_request($url, $post);
- $result = json_decode($result, true);
- //var_dump($result);
- if (!$result || $result['code'] != 2000) {
- throw new ValidateException($result['msg'] ?? '请求错误.');
- }
- $result['msg'] = $result['message'] ?? '上传成功';
- return ['data' => $result];
- }
- //荫析小程序上传开始
- /**
- * @title 上传微信小程序
- */
- public function uploadwinpro($postdata)
- {
- $weid = weid();
- $code = $this->getSiteCode();
- $wechatConfig = Config::getconfig('miniprogram');
- if ($postdata['ptype'] == 2) {
- $multiid = '1';
- $wechatConfig['app_id'] = $wechatConfig['techapp_id'];
- $wechatConfig['secret'] = $wechatConfig['techsecret'];
- $wechatConfig['private_key'] = $wechatConfig['techprivate_key'];
- } else {
- $multiid = '0';
- }
- if (!$code) throw new ValidateException('请先配置在线更新');
- $pid = input('pid');
- if ($wechatConfig) {
- if (!$wechatConfig['app_id']) throw new ValidateException('请先配置小程序appId');
- if (!$wechatConfig['secret']) throw new ValidateException('请先配置小程序appSecret');
- if (!$wechatConfig['private_key']) throw new ValidateException('请先配置小程序上传密钥');
- } else {
- throw new ValidateException('请先配置小程序参数');
- }
- $domain = Author()::getdomainname();
- $configFiles = [
- [
- 'name' => 'siteinfo.js',
- 'path' => '/',
- 'content' => 'var siteinfo = {"uniacid": "' . $weid . '","acid": "' . $weid . '","multiid": "' . $multiid . '","version": "' . $postdata['id'] . '","siteroot": "https://' . $domain . '/app/index.php","design_method": "3"};module.exports = siteinfo;'
- ],
- ];
- $url = 'https://www.mzapp.cn/api/wxapp';
- $post = [
- 'code' => $code,
- 'goods' => getmzgoodsid(),
- 'pid' => $pid,
- 'appid' => trim($wechatConfig['app_id']),
- 'wxapp_private_key' => trim($wechatConfig['private_key']),
- 'version' => $postdata['version'],
- 'desc' => $postdata['desctext'],
- 'config_files' => json_encode($configFiles)
- ];
- $result = vit_http_request($url, $post);
- $result = is_null(json_decode($result)) ? [] : json_decode($result, true);
- if (!$result || $result['code'] != 1) {
- return $result['msg'] ?? '请求错误.';
- }
- return $this->queryUpload($result['data']['order_no']);
- }
- public function queryUpload($order)
- {
- if (empty($order)) {
- return;
- }
- $url = 'https://www.mzapp.cn/api/wxapp/upload';
- $post = [
- 'code' => $this->getSiteCode(),
- 'order' => $order
- ];
- $result = vit_http_request($url, $post);
- $result = is_null(json_decode($result)) ? [] : json_decode($result, true);
- if (!$result || $result['code'] != 1) {
- return $result['code'];
- }
- return $result;
- }
- /**
- * 获取站点code
- */
- public function getSiteCode($refresh = false)
- {
- if ($refresh) {
- return $this->getRefreshSiteCode();
- }
- $code = Cache::get('vit_site_code');
- if (!$code) {
- return $this->getRefreshSiteCode();
- }
- return $code;
- }
- /**
- * 重新获取新的站点code值
- */
- private function getRefreshSiteCode()
- {
- $url = 'http://console.samcms.com/public/index.php/index/authorization/getrefreshsitecode';
- $postparam = Author()::authorizationInfo();
- $postparam['biaoshi'] = config('database.app_name');
- $result = vit_http_request($url, $postparam);
- $result = is_null(json_decode($result)) ? [] : json_decode($result, true);
- if (($result['data']['appid'])) {
- $Configdata = $result['data'];
- } else {
- throw new ValidateException($result['msg']);
- }
- if ($Configdata['appid']) {
- $appid = $Configdata['appid'];
- $appkey = $Configdata['appkey'];
- $time = time();
- $sign = sha1($appid . $appkey . $Configdata['domain'] . $time);
- $url = 'https://www.mzapp.cn/api/code/get';
- $post = [
- 'domain' => $Configdata['domain'],
- 'appid' => $appid,
- 'sign' => $sign,
- 'time' => $time
- ];
- $result = vit_http_request($url, $post);
- $result = is_null(json_decode($result)) ? [] : json_decode($result, true);
- if (!$result || $result['code'] != 1) {
- return '';
- }
- Cache::set('vit_site_code', $result['data']['code'], '600');
- }
- return $result['data']['code'];
- }
- //荫析小程序上传结束
- }
|