diff --git a/addons/shopro_wechat_trade/README.md b/addons/shopro_wechat_trade/README.md index 56ab78a..81fe0ea 100644 --- a/addons/shopro_wechat_trade/README.md +++ b/addons/shopro_wechat_trade/README.md @@ -13,13 +13,38 @@ ## 安装 ```bash -# 上传 addons/shopro_wechat_trade 后 +# 上传 addons/shopro_wechat_trade 后(推荐 SSH,不要只靠后台点启用) php think shopro_wechat_trade:install php think shopro_wechat_trade:verify ``` 后台:**系统管理 → 商城配置 → 微信交易合规** +### 启用报 Permission denied / 过一阵又变关闭 + +常见两类原因: + +1. **目录不可写**(截图里 `runtime/cache/... Permission denied`) + 后台「启用插件」会写 `info.ini`、`application/extra/addons.php`、`public/assets/js/addons.js` 并清缓存。PHP 运行用户(宝塔多为 `www`)必须可写: + - `runtime/`(含 `cache/`、`log/`) + - `addons/shopro_wechat_trade/info.ini` + - `application/extra/addons.php` + - `public/assets/js/addons.js` + + ```bash + cd /www/wwwroot/xgsc.gynhc.com + chown -R www:www runtime addons application/extra public/assets/js/addons.js + chmod -R u+rwX runtime + php think shopro_wechat_trade:install + ``` + +2. **代码部署覆盖 `info.ini`** + 仓库里若 `state = 0`,每次 git/rsync 全量同步会把线上已启用状态盖回关闭。本仓库默认 `state = 1`;若你方部署脚本会覆盖 `addons/*/info.ini`,请在服务器保留 `state = 1` 或部署后执行 `php think shopro_wechat_trade:install`。 + +### 后台提示「文件冲突」 + +启用时若提示与 `application/admin/.../shopro_wechat_trade/*` 冲突,属正常:插件要把后台菜单/页面复制到主工程。仓库已含这些文件时选 **继续操作** 即可;更稳的是只用 CLI `shopro_wechat_trade:install` 修复,不必反复在插件中心开关。 + ## 汇付配合 若使用汇付小程序支付,需同步部署最新 `shopro_huifu`(支付通知会落库微信 `transaction_id`)。 diff --git a/addons/shopro_wechat_trade/info.ini b/addons/shopro_wechat_trade/info.ini index 1e4ac5c..1607642 100644 --- a/addons/shopro_wechat_trade/info.ini +++ b/addons/shopro_wechat_trade/info.ini @@ -4,7 +4,7 @@ intro = 微信小程序购物订单与发货信息同步 author = Shopro website = https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/order_center/order_center.html version = 1.0.0 -state = 0 +state = 1 url = /addons/shopro_wechat_trade first_menu = shopro_wechat_trade/config license = regular diff --git a/addons/shopro_wechat_trade/library/Installer.php b/addons/shopro_wechat_trade/library/Installer.php index 2d8a106..3e73931 100644 --- a/addons/shopro_wechat_trade/library/Installer.php +++ b/addons/shopro_wechat_trade/library/Installer.php @@ -47,7 +47,11 @@ class Installer } } - Service::refresh(); + try { + Service::refresh(); + } catch (\Exception $e) { + self::log($output, ' [warn] 插件缓存刷新失败: ' . $e->getMessage()); + } self::log($output, '安装完成: /admin/shopro_wechat_trade/config'); } @@ -64,8 +68,20 @@ class Installer } else { $content = rtrim($content) . "\nstate = " . $state . "\n"; } - file_put_contents($file, $content, LOCK_EX); + if (file_put_contents($file, $content, LOCK_EX) === false) { + throw new \RuntimeException('无法写入 ' . $file . ',请检查 addons 目录权限(勿用 root 上传后未 chown www)'); + } \think\Config::set($name, null, 'addoninfo'); + \think\Config::set('addon-info-' . $name, null); + + if ($state === 1) { + try { + Service::refresh(); + } catch (\Exception $e) { + self::log($output, ' [warn] Service::refresh 失败: ' . $e->getMessage()); + self::log($output, ' [warn] 请修复 runtime/cache、application/extra/addons.php、public/assets/js/addons.js 写权限后重跑 install'); + } + } return true; }