文件
xionggeshop/addons/shopro_wechat_trade
可乐加冰 727d8586e9 ```
feat(shopro_wechat_trade): 更新插件文档并改进安装流程

- 在 README.md 中添加详细的权限问题解决方案,包括目录不可写和代码部署覆盖两种常见场景
- 添加后台文件冲突提示的处理说明
- 将 info.ini 中 state 从 0 改为 1,默认启用插件
- 在 Installer.php 中添加异常处理,防止缓存刷新失败导致安装中断
- 增强文件写入错误检测,提供更清晰的权限问题提示
- 添加 Service::refresh 的异常捕获和警告日志
```
2026-10-08 13:56:24 +08:00
..
```
2026-10-08 13:56:24 +08:00
```
2026-10-08 13:56:24 +08:00
```
2026-10-08 13:56:24 +08:00

Shopro 微信交易合规插件

微信小程序购物订单 + 发货信息同步(upload_shipping_info / notify_confirm_receive)。

运营前置(必做)

在小程序后台(AppID 与商城配置一致)完成:

  1. 签署 订单中心授权协议(否则 update_order_detail_path 报错 10060034)
  2. 开通 发货信息管理服务(支付与交易 → 订单管理 / 购物订单)
  3. 满足实物交易类小程序运营规范

安装

# 上传 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
    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)。

CLI

php think shopro_wechat_trade:init-path
php think shopro_wechat_trade:backfill
php think shopro_wechat_trade:retry-failed

触发点

  • order_send_after → 异步 upload_shipping_info
  • order_confirm_after(全部 item 已收货)→ notify_confirm_receive

小程序跳转

默认订单详情路径:pages/order/detail?id=${商品订单号}(微信官方示例用 id 传商户订单号)

安装报 10060035「无效的路径」

  1. 先发布小程序:微信会校验 path 是否存在于当前线上版或提审版代码中;未发布 pages/order/detail 时会报此错
  2. path 格式:pages/order/detail?id=${商品订单号}(不要前导 /)
  3. 发布后再执行:php think shopro_wechat_trade:init-path
  4. 或在小程序后台 支付与交易 → 订单管理 手动填写相同 path