<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title><![CDATA[EMLOG]]></title> 
<atom:link href="https://www.sevenit.cn/rss.php" rel="self" type="application/rss+xml" />
<description><![CDATA[使用emlog搭建的站点]]></description>
<link>https://www.sevenit.cn/</link>
<language>zh-cn</language>

<item>
    <title>从零到一：在本地部署 DeepSeek Harness，让 AI 智能体真正&quot;上手干活&quot;</title>
    <link>https://www.sevenit.cn/?post=12</link>
    <description><![CDATA[<p><img src="https://www.sevenit.cn/content/uploadfile/202608/dddc1786678576.png" alt="dddc1786678576.png" /></p>
<h2>前言：什么是 DeepSeek Harness？</h2>
<p>DeepSeek Harness（简称 <code>dsh</code>）是 DeepSeek AI 开源的智能体框架（Agent Harness），MIT 协议。它和你平时用的&quot;聊天机器人&quot;不同——它不只是对话，而是一个<strong>能读写文件、执行命令、调用工具、管理子任务和长期目标</strong>的智能体运行环境。</p>
<p>它的核心设计理念是 <strong>&quot;一切皆插件&quot;（everything is a plugin）</strong>：整个框架由约 220 个小型 npm 包（monorepo，pnpm workspace）拼装而成，底层基于 <a href="https://github.com/cordiverse/cordis">Cordis</a> 插件框架，通过&quot;配置分层（profile / bundle / patch）&quot;按需组合出不同形态的运行实例：</p>
<ul>
<li><strong>web 形态</strong>：带浏览器 Web UI 的完整交互环境</li>
<li><strong>headless 形态</strong>：一次性执行任务的命令行智能体</li>
<li><strong>base 形态</strong>：共享核心层，作为所有 profile 的基础</li>
</ul>
<p>目前项目处于 <strong>developer preview（开发者预览）</strong> 阶段，版本为 <code>0.1.0-rc.5</code>，迭代很快，官方明确提示&quot;会有破坏性变更&quot;——这既是风险，也是&quot;最早吃到螃蟹&quot;的机会。<br />
<img src="https://www.sevenit.cn/content/uploadfile/202608/95ec1786678576.png" alt="95ec1786678576.png" /></p>
<h2>环境准备</h2>
<p>部署前请确认本机满足以下条件：</p>
<table>
<thead>
<tr>
<th>依赖</th>
<th>要求</th>
<th>本文实测</th>
</tr>
</thead>
<tbody>
<tr>
<td>Node.js</td>
<td><code>^22.19.0</code> 或 <code>&gt;=24.0.0</code>（CI 覆盖 22.19 / 24 / 26）</td>
<td>v24.13.0 ✅</td>
</tr>
<tr>
<td>pnpm</td>
<td>仓库固定 <code>11.7.0</code>（建议通过 Corepack 启用）</td>
<td>11.7.0 ✅</td>
</tr>
<tr>
<td>Git</td>
<td>2.26+（用于安装仓库钩子）</td>
<td>✅</td>
</tr>
<tr>
<td>操作系统</td>
<td>跨平台（本文在 Windows 11 上验证）</td>
<td>Windows 11 ✅</td>
</tr>
<tr>
<td>DeepSeek API Key</td>
<td>可选但强烈建议（智能体需要 LLM 后端）</td>
<td>已配置 ✅</td>
</tr>
</tbody>
</table>
<blockquote>
<p><strong>小贴士</strong>：如果你没有启用 Corepack，先执行 <code>corepack enable</code>；否则 <code>pnpm --version</code> 可能解析不到固定版本。</p>
</blockquote>
<h2>部署步骤</h2>
<h3>第 1 步：获取源码</h3>
<pre><code class="language-bash">git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness</code></pre>
<h3>第 2 步：安装依赖</h3>
<pre><code class="language-bash">pnpm install</code></pre>
<p>这一步不只是装包——<code>postinstall</code> 会自动配置 Lefthook Git 钩子（提交前检查、推送前 typecheck 等）和翻译配对合并驱动。如果你的依赖是从缓存恢复导致钩子缺失，可以手动补一次：</p>
<pre><code class="language-bash">node scripts/install-lefthook.mjs</code></pre>
<h3>第 3 步：类型检查（可选但推荐）</h3>
<p>新克隆的仓库建议先跑一次：</p>
<pre><code class="language-bash">pnpm run typecheck</code></pre>
<p>通过即说明环境就绪。仓库的 TypeScript 采用 <strong>Host / Client 双聚合</strong>（<code>tsconfig.host.json</code> + <code>tsconfig.client.json</code>）的 Project Reference 结构，因为宿主端和浏览器端会对 Cordis 的 <code>Context</code> 接口做同名声明合并，拆成两个独立程序才能避免类型冲突——这也是这个仓库一个很有意思的工程细节。</p>
<h3>第 4 步：构建</h3>
<pre><code class="language-bash">pnpm run build</code></pre>
<p>构建链路为：Host 库（tsc + tsdown）→ Client 库（tsc + tsdown）→ Web 前端（Vite）。生产运行<strong>必须</strong>先构建出 <code>lib/</code> 产物和前端 <code>dist/</code>，这一点和&quot;开箱即跑&quot;的脚本项目不同。</p>
<h3>第 5 步：启动 Web UI</h3>
<pre><code class="language-bash">pnpm dsh web</code></pre>
<p><code>dsh web</code> 是 <code>dsh --profile web</code> 的别名。首次使用会自动从内置模板初始化 <code>web</code> profile（base + web-app 两个 bundle 的分层组合），然后在默认端口 <strong>3080</strong> 启动，访问：</p>
<pre><code>http://127.0.0.1:3080</code></pre>
<p>如果端口被占用，可以指定端口：</p>
<pre><code class="language-bash">pnpm dsh --profile web --port 8080</code></pre>
<blockquote>
<p>也可以不走源码：直接 <code>npx @deepseek-ai/dsh web</code>，从 npm 安装运行。源码部署的好处是可以随时跟进最新提交、读代码、甚至自己写插件。</p>
</blockquote>
<h2>首次使用配置</h2>
<p>浏览器打开 Web UI 后，只需三步就能让智能体开始工作：</p>
<h3>1. 配置模型（LLM 后端）</h3>
<p>进入 <strong>Settings → Models</strong>，在 DeepSeek 卡片中填入你的 API Key 并保存。<strong>无需重启服务</strong>，配置立即生效。</p>
<p>安全细节值得点赞：密钥是&quot;只写&quot;的——界面回显的是脱敏后的描述符，真实密钥只保存在 <code>$DSH_HOME/.credentials.yaml</code>（Windows 下 <code>$DSH_HOME</code> 默认为 <code>C:\Users\&lt;用户名&gt;\.dsh</code>），设置文件里只留凭据引用。除了 DeepSeek，还支持 Anthropic、OpenAI 等目录内置厂商，以及任意 OpenAI 兼容的自定义端点（自定义 Provider ID 一旦创建即永久，重命名需新建后删除旧的）。</p>
<h3>2. 选择工作区</h3>
<p>点击 <strong>Choose workspace</strong>，把启动 <code>dsh</code> 的目录（或你想让智能体操作的任意项目目录）添加并选中。<strong>未选择工作区之前，会话输入框是不可用的</strong>——智能体默认以启动目录为文件系统根。</p>
<h3>3. 开始第一个任务</h3>
<p>新建会话，发送一句任务指令，比如：</p>
<blockquote>
<p>Summarize this repository and identify its main packages.</p>
</blockquote>
<p>你会看到智能体真的在&quot;动手&quot;：读取文件、梳理结构、给出结构化结论。需要审批的操作（按当前权限策略）会弹出确认框，由你拍板。</p>
<h2>实际体验：它真的在&quot;干活&quot;</h2>
<p>本次部署后我实际执行的任务包括：梳理仓库结构与主要包、核对构建工具链、阅读官方文档等。一个直观的感受是，它具备完整的工具链：</p>
<ul>
<li><strong>文件系统</strong>：读、写、编辑、搜索（受沙箱策略约束）</li>
<li><strong>命令执行</strong>：PowerShell / Bash，可持久化会话</li>
<li><strong>外部集成</strong>：Web 搜索、MCP 客户端、LSP、子进程管理</li>
<li><strong>编排能力</strong>：子智能体（subagent）并行委派、工作流（workflow）、长期目标（goal）、任务队列（jobs）</li>
<li><strong>上下文管理</strong>：会话持久化（JSONL/SQLite）、压缩（compaction）、溢出（spill）</li>
</ul>
<p>此外，<code>dsh</code> 还支持无 UI 的<strong>一次性任务模式</strong>：</p>
<pre><code class="language-bash">pnpm dsh --profile headless "summarize this workspace"</code></pre>
<p>适合脚本化调用；以及 ACP（Agent Client Protocol）自动化服务等高级形态，留给后续探索。</p>
<h2>架构亮点（为什么值得关注）</h2>
<ol>
<li><strong>一切皆插件</strong>：核心、工具、UI 全是 Cordis 插件，通过 <code>dsh.profile</code> 里的 <code>bundles</code> 列表按顺序分层叠加（安装包 bundle → profile 的 <code>cordis.patch.yml</code> → 用户级 <code>$DSH_HOME/cordis.patch.yml</code> → <code>--patch</code> 覆盖），后层覆盖前层，可精确到行级。</li>
<li><strong>开箱可扩展</strong>：社区生态用 <code>dsh-plugin</code> 话题发布插件，任何插件包只要在 <code>package.json</code> 里声明 <code>dsh.bundle.patch</code>，<code>pnpm add</code> 后即自动加入分层栈。</li>
<li><strong>工程严谨</strong>：200+ 个包的 monorepo 配了完整的 CI 门禁（构建、快照、覆盖率、产物校验、消费者兼容测试），还有大量 <code>scripts/</code> 生成器与校验器（模块图、工具目录、配置目录、文档图等），防止文档与源码漂移。</li>
<li><strong>安全默认值</strong>：文件沙箱、权限审批、凭据脱敏存储、Landlock（Linux）等机制内置。</li>
</ol>
<h2>注意事项与排错</h2>
<ul>
<li><strong>开发者预览警告</strong>：版本迭代快，升级可能引入破坏性变更，生产使用需谨慎评估。</li>
<li><strong>凭据安全</strong>：密钥走 UI 或环境变量（<code>DEEPSEEK_API_KEY</code>），永远不要提交真实密钥到仓库。</li>
<li><strong>常见报错速查</strong>（官方文档）：
<ul>
<li><code>MISSING_CREDENTIAL</code>：模型页未存密钥，或引用的环境变量未设置</li>
<li><code>UNKNOWN_MODEL</code>：选择已配置的模型，或把缺失模型加到自定义 Provider</li>
<li>拉取模型列表 401：检查密钥；自定义端点若未实现 <code>GET /models</code>，需手动填模型</li>
</ul></li>
<li><strong>端口冲突</strong>：用 <code>--port</code> 指定其他端口。</li>
<li><strong>构建先行</strong>：改动源码后需重新 <code>pnpm run build</code>，Web UI 才会加载新产物。</li>
</ul>
<h2>结语</h2>
<p>从拉取代码到智能体在 Web UI 里跑通第一个任务，整个过程没有遇到文档之外的问题——这本身就是一个好项目的标志。DeepSeek Harness 让我印象最深的是它把&quot;Agent 框架&quot;做成了<strong>可组合的乐高积木</strong>：不绑定某个模型、不限定某种形态，插件即一切，配置即架构。</p>
<p>对于想深入 Agent 工程、或者想自己写插件扩展能力的开发者来说，这是一个非常值得跟进的项目。开发者预览期正是参与社区、影响方向的好时机——仓库的 Discussions 和 Discord 社区都欢迎反馈。</p>
<blockquote>
<p>参考链接：</p>
<ul>
<li>项目主页：<a href="https://github.com/deepseek-ai/deepseek-harness">https://github.com/deepseek-ai/deepseek-harness</a></li>
<li>官方文档（Web UI 指南 / 模型配置 / 开发指南）：仓库 <code>docs/</code> 目录，含中英双语</li>
<li>Cordis 框架：<a href="https://github.com/cordiverse/cordis">https://github.com/cordiverse/cordis</a></li>
</ul>
</blockquote>]]></description>
    <pubDate>Fri, 14 Aug 2026 11:31:18 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>https://www.sevenit.cn/?post=12</guid>
</item>
<item>
    <title>企业知识产权避坑手册</title>
    <link>https://www.sevenit.cn/?post=11</link>
    <description><![CDATA[<p>前言</p>
<p>知识产权是企业的核心无形资产，更是品牌竞争、市场盈利、合规经营的核心壁垒。多数企业知识产权纠纷，并非恶意侵权，而是合规意识薄弱、流程缺失、操作不规范导致的被动踩坑，轻则赔付罚款、产品下架、品牌受损，重则停业整顿、刑事追责。</p>
<p>本手册聚焦企业高频踩坑场景，覆盖商标、专利、版权、商业秘密四大核心板块，汇总事前预防、事中管控、事后维权全流程实操方法，无专业晦涩术语，全员可学、可落地、可执行，助力企业规避知识产权风险、守住核心资产。</p>
<p>第一章通用总则：企业知识产权核心避坑原则</p>
<p>所有知识产权风险均可遵循“三不三要”核心原则，从根源规避80%以上纠纷：</p>
<p>三不原则</p>
<ol>
<li>
<p>不盲从：不随意使用网络免费图片、字体、素材、模板，免费资源大概率暗藏版权风险；</p>
</li>
<li>
<p>不滞后：不等到产品爆火、品牌出圈、技术落地后再确权，优先确权、再商用推广；</p>
</li>
<li>
<p>不侥幸：不忽视小体量侵权风险，单张图片、单个字体、微小设计抄袭均可引发诉讼赔付。</p>
</li>
</ol>
<p>三要原则</p>
<ol>
<li>
<p>要检索：研发、设计、宣传、注册商标前，必做在先权利检索排查；</p>
</li>
<li>
<p>要留证：创作过程、合作沟通、授权凭证、研发资料全程留存归档；</p>
</li>
<li>
<p>要确权：自有技术、品牌、设计、文案及时完成专利、商标、版权确权登记。</p>
</li>
</ol>
<p>第二章商标板块：品牌避坑（最高发、最易忽视）</p>
<p>一、高频致命坑点</p>
<ol>
<li>
<p>注册滞后坑：品牌名称、LOGO、Slogan先使用、后注册，被同行、代理商抢注，辛苦打造的品牌无法自用，被迫更名、高价回购；</p>
</li>
<li>
<p>类别不全坑：仅注册主营产品类别，未注册关联类别、防御类别，被他人抢注衍生品类、电商平台、服务类商标，遭遇傍名牌、山寨侵权；</p>
</li>
<li>
<p>近似侵权坑：自行设计LOGO、品牌名，未做检索，与他人在先商标近似，构成侵权，面临商标驳回、行政处罚、侵权赔偿；</p>
</li>
<li>
<p>闲置作废坑：商标注册后连续3年不使用，被他人申请“撤三”撤销，商标权益直接流失；</p>
</li>
<li>
<p>转让授权坑：商标转让、授权合作无书面协议，未备案，后续出现权属纠纷、二次转授权争议；</p>
</li>
<li>
<p>域名忽视坑：品牌爆火后发现核心域名被抢注，被迫高价收购或更换域名，影响品牌公信力。</p>
</li>
</ol>
<p>二、落地避坑操作</p>
<ol>
<li>
<p>先确权后商用：确定品牌名称、LOGO后，第一时间检索、提交注册，未拿到受理通知书前，谨慎大规模宣传推广；</p>
</li>
<li>
<p>全类别布局：核心主营类别必注册，上下游产品、电商、广告、服务等关联类别做防御注册，杜绝傍名牌空间；</p>
</li>
<li>
<p>留存使用证据：持续保留商标使用凭证，包括产品包装、宣传海报、电商链接、合同发票、线下物料，避免“撤三”风险；</p>
</li>
<li>
<p>定期监测维护：每季度监测商标状态、近似注册公告、市场山寨品牌，发现侵权、抢注及时提出异议、无效宣告；</p>
</li>
<li>
<p>规范授权转让：商标对外授权、转让必须签订正式书面协议，明确使用范围、期限、地域、违约责任，完成官方备案。</p>
</li>
</ol>
<p>三、突发问题应急处理</p>
<ol>
<li>
<p>收到商标侵权律师函：立即下架侵权产品、停止使用争议标识，核对对方商标权属、注册时间，协商和解或委托专业机构答辩；</p>
</li>
<li>
<p>商标被抢注、被山寨：及时公证取证（产品截图、线下门店、宣传物料），通过商标异议、无效宣告、行政投诉、民事诉讼维权；</p>
</li>
<li>
<p>收到撤三通知：15日内整理近3年完整使用证据，按时答辩，保住商标权益。</p>
</li>
</ol>
<p>第三章专利板块：技术避坑（研发、产品核心风险）</p>
<p>一、高频致命坑点</p>
<ol>
<li>
<p>研发不检索：产品、技术、外观研发前未检索现有专利，投入大量成本研发后，发现技术已被注册，无法落地商用，甚至构成侵权；</p>
</li>
<li>
<p>公开后再申请：技术方案、新品外观提前发布、参展、宣传、销售，导致丧失新颖性，无法申请专利保护；</p>
</li>
<li>
<p>职务成果流失：未与研发员工约定职务成果归属，员工离职带走核心技术、私自申请专利，企业无权追责；</p>
</li>
<li>
<p>专利布局单一：仅申请核心发明专利，未布局实用新型、外观专利，产品外观、小众技术点被抄袭，无维权依据；</p>
</li>
<li>
<p>年费遗忘失效：专利授权后未按时缴纳年费，专利自动失效，技术沦为公开通用技术；</p>
</li>
<li>
<p>合作研发无约定：校企合作、联合研发未明确专利权属、使用权，后续成果归属、商业化产生纠纷。</p>
</li>
</ol>
<p>二、落地避坑操作</p>
<ol>
<li>
<p>研发前置检索：立项研发前，全面检索同类专利、现有技术，排查侵权风险，规避重复研发，锁定可创新、可确权技术点；</p>
</li>
<li>
<p>先申请后公开：所有新技术、新外观，先提交专利申请，再参展、发布、销售、宣传，严格守住新颖性原则；</p>
</li>
<li>
<p>固化职务成果：入职研发岗必签《知识产权归属协议》《保密协议》，明确在职期间所有研发成果、技术方案归企业所有，禁止私自申报、外泄；</p>
</li>
<li>
<p>多层次专利布局：核心技术申报发明专利，产品结构、细节申报实用新型，产品外观、包装申报外观专利，构建全方位保护壁垒；</p>
</li>
<li>
<p>建立年费台账：专人负责专利年费监控、期限提醒，定期梳理专利清单，淘汰无价值专利，留存核心有效专利；</p>
</li>
<li>
<p>合作前置确权：所有联合研发、委托开发项目，合作前书面约定专利权属、使用权限、收益分配、侵权追责方式。</p>
</li>
</ol>
<p>三、突发问题应急处理</p>
<ol>
<li>
<p>产品被起诉专利侵权：立即暂停销售、封存产品，比对专利技术特征，排查对方专利稳定性，积极应诉或协商专利许可；</p>
</li>
<li>
<p>发现竞品抄袭专利：固定侵权证据（公证购买、产品拆解、技术比对、销量取证），通过行政投诉、诉讼追责，索要侵权赔偿；</p>
</li>
<li>
<p>专利被宣告无效：及时答辩举证，补充技术佐证，维护专利有效性。</p>
</li>
</ol>
<p>第四章版权板块：内容避坑（新媒体、设计、运营重灾区）</p>
<p>一、高频致命坑点</p>
<ol>
<li>
<p>免费素材商用侵权：运营、设计随意使用网络免费图片、字体、视频、音乐、模板，用于海报、短视频、官网、产品包装，被版权方起诉索赔，是中小企业最高发侵权场景；</p>
</li>
<li>
<p>外包作品权属不清：外包设计、文案、视频、程序开发，未约定版权归属，付费后无法商用、无法登记，甚至被外包方追责侵权；</p>
</li>
<li>
<p>自有内容未存证：原创文案、海报、短视频、软件代码未做版权登记、未留存创作底稿，被抄袭后无法自证原创，维权无依据；</p>
</li>
<li>
<p>篡改拼接侵权：修改他人图片、文案、视频后直接商用，误以为“修改即原创”，仍构成剽窃、篡改版权侵权；</p>
</li>
<li>
<p>盗版软件办公：企业使用未授权PS、CAD、办公软件、设计插件，被版权方稽查、发律师函、追责处罚。</p>
</li>
</ol>
<p>二、落地避坑操作</p>
<ol>
<li>
<p>商用素材正规授权：所有对外商用内容，仅使用正版商用图库、字体库、音乐素材、模板平台，留存授权合同、付费凭证、授权期限截图；坚决杜绝百度、小红书、朋友圈随手下载的素材商用；</p>
</li>
<li>
<p>外包必签权属协议：所有外包创作项目，合同中明确约定全款付清后，作品版权归企业独家所有，禁止外包方二次转让、授权，明确违约责任；</p>
</li>
<li>
<p>原创内容及时存证：原创海报、文案、短视频、软件代码、设计作品，定期做版权登记，留存分层底稿、源文件、创作日志、发布记录，固定原创证据；</p>
</li>
<li>
<p>禁止拼接篡改商用：不修改、拼接他人受版权保护的作品用于商业用途，原创内容坚持独立创作；</p>
</li>
<li>
<p>全员正版化办公：统一采购正版办公、设计、开发软件，定期排查员工私人盗版软件办公风险，规避企业集体侵权责任。</p>
</li>
</ol>
<p>三、突发问题应急处理</p>
<ol>
<li>
<p>收到字体、图片、软件版权律师函：第一时间下架、删除侵权内容，停止使用盗版软件，整理合规素材替换，优先协商和解止损；</p>
</li>
<li>
<p>自有内容被抄袭搬运：公证截图、留存发布时间证据，发起平台投诉、下架侵权内容，情节严重的提起民事诉讼索赔。</p>
</li>
</ol>
<p>第五章商业秘密板块：核心壁垒避坑（技术、客户、数据）</p>
<p>一、高频致命坑点</p>
<ol>
<li>
<p>无保密制度无协议：未制定商业秘密管理制度，未与核心员工、合作方签订保密协议，技术数据、客户信息外泄后无法追责；</p>
</li>
<li>
<p>竞业限制不规范：与核心技术、销售员工未签订竞业限制协议，或未支付经济补偿金，协议无效，员工离职后跳槽竞品、带走核心资源；</p>
</li>
<li>
<p>涉密管理松散：核心配方、技术参数、客户名单、报价数据无加密、无权限管控，全员可查看、随意外传、截图留存；</p>
</li>
<li>
<p>对外合作无保密约束：对接供应商、合作商、投资方时，随意披露核心商业数据、技术方案，无保密条款约束，造成秘密泄露；</p>
</li>
<li>
<p>离职管控缺失：员工离职未回收涉密资料、未注销权限、未做保密告知，带走企业核心资源。</p>
</li>
</ol>
<p>二、落地避坑操作</p>
<ol>
<li>
<p>建立完整保密体系：制定《商业秘密管理制度》，划分涉密等级（绝密、机密、普通涉密），明确涉密范围、接触权限、管控责任；</p>
</li>
<li>
<p>全员签约合规协议：核心技术、销售、运营、管理岗位，入职必签《保密协议》，核心岗位同步签订《竞业限制协议》，按规定按月支付经济补偿金，保障协议合法有效；</p>
</li>
<li>
<p>物理+线上双重管控：涉密办公区域权限隔离、禁止随意进入；涉密文件、数据、服务器加密存储，设置分级查看、下载、转发权限，禁止私人设备拷贝涉密资料；</p>
</li>
<li>
<p>合作前置保密约定：所有对外合作、投融资、技术对接合同中，增设严格保密条款，明确泄密赔偿标准、追责方式；</p>
</li>
<li>
<p>规范员工离职流程：员工离职强制回收纸质涉密资料、注销系统权限、清空私人设备涉密数据，重申保密义务与违约责任，做好离职交底记录。</p>
</li>
</ol>
<p>三、突发问题应急处理</p>
<p>发现商业秘密泄露、员工带走核心资源：立即固定证据（聊天记录、文件传输记录、客户流失凭证），冻结相关权限，发律师函制止侵权，情节严重的启动民事诉讼、报警追责，最大程度止损。</p>
<p>第六章高频场景专项避坑指南</p>
<p>一、新媒体/短视频运营场景</p>
<ol>
<li>
<p>禁止直接搬运、剪辑他人影视、综艺、博主作品商用；</p>
</li>
<li>
<p>视频配乐、配图、字幕字体全部使用正版授权资源；</p>
</li>
<li>
<p>文案借鉴仅限思路参考，禁止大段复制粘贴，避免文字版权侵权。</p>
</li>
</ol>
<p>二、产品包装/电商详情页场景</p>
<ol>
<li>
<p>包装图案、文案、LOGO全部自查版权、商标权属；</p>
</li>
<li>
<p>宣传标语不蹭知名品牌、热点IP，避免商标混淆、不正当竞争；</p>
</li>
<li>
<p>产品卖点、技术描述不虚假宣传，不擅自使用他人专利、荣誉背书。</p>
</li>
</ol>
<p>三、员工入职/离职场景</p>
<ol>
<li>
<p>入职核查：禁止员工携带上家公司技术资料、客户数据、设计作品入职，避免连带侵权；</p>
</li>
<li>
<p>离职核查：全面回收涉密资源、关停权限、留存保密履约记录。</p>
</li>
</ol>
<p>四、对外合作/代工场景</p>
<ol>
<li>
<p>代工生产、贴牌合作，提前核验对方商标、专利授权资质，避免代工侵权；</p>
</li>
<li>
<p>合作过程中披露的核心技术、数据，全程落实保密约束。</p>
</li>
</ol>
<p>第七章风险应急与长效管理机制</p>
<p>一、侵权突发应急流程（通用）</p>
<ol>
<li>
<p>止损：立即下架侵权产品、删除侵权内容、停止侵权行为，防止损失扩大；</p>
</li>
<li>
<p>取证：留存对方权属证明、侵权通知、沟通记录、自身使用凭证；</p>
</li>
<li>
<p>研判：排查侵权真实性、对方权利稳定性、自身过错程度；</p>
</li>
<li>
<p>处置：小额纠纷优先协商和解，大额、复杂纠纷委托专业知识产权律师处理；</p>
</li>
<li>
<p>复盘：整改合规漏洞，建立台账，杜绝二次踩坑。</p>
</li>
</ol>
<p>二、企业长效合规管理动作（每月/每季度）</p>
<ol>
<li>
<p>每月：素材合规自查、软件正版化排查、涉密权限核查；</p>
</li>
<li>
<p>每季度：商标、专利状态监测，年费、续展期限核对，市场侵权监测；</p>
</li>
<li>
<p>每年：全员知识产权合规培训、知识产权资产盘点、风险漏洞全面整改。</p>
</li>
</ol>
<p>第八章核心避坑总结（全员必背）</p>
<ol>
<li>
<p>品牌先注册、技术先申请、内容先授权，绝不先商用后补手续；</p>
</li>
<li>
<p>网络免费素材、免费字体、免费模板，默认禁止商用；</p>
</li>
<li>
<p>外包作品、合作成果，无书面权属协议，绝不商用；</p>
</li>
<li>
<p>核心技术、客户数据、商业信息，全程加密管控、全员签保密协议；</p>
</li>
<li>
<p>所有知识产权风险，事前预防成本远低于事后维权赔付成本。</p>
</li>
</ol>
<p>附则：手册适用与落地说明</p>
<p>本手册适用于企业全体员工，涵盖行政、运营、设计、研发、销售、商务、管理层所有岗位，可作为企业知识产权合规培训、日常自查、风险防控的标准依据。企业可根据自身行业特性，细化内部知识产权管理制度，常态化落实合规自查</p>]]></description>
    <pubDate>Tue, 11 Aug 2026 20:52:55 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>https://www.sevenit.cn/?post=11</guid>
</item>
<item>
    <title>字体预览</title>
    <link>https://www.sevenit.cn/?post=10</link>
    <description><![CDATA[<p>[font-preview id=&quot;f_0a9d9aa1&quot;]</p>]]></description>
    <pubDate>Sat, 18 Jul 2026 20:55:49 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>https://www.sevenit.cn/?post=10</guid>
</item>
<item>
    <title>ai评论一下吧</title>
    <link>https://www.sevenit.cn/?post=9</link>
    <description><![CDATA[<p>ai评论一下吧</p>]]></description>
    <pubDate>Mon, 02 Mar 2026 15:35:43 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>https://www.sevenit.cn/?post=9</guid>
</item>
<item>
    <title>小众神仙壁纸｜解锁手机新颜值</title>
    <link>https://www.sevenit.cn/?post=8</link>
    <description><![CDATA[<p>小众神仙壁纸｜解锁手机新颜值<br />
<img src="https://www.sevenit.cn/content/uploadfile/202601/34f81768216481.jpeg" alt="34f81768216481.jpeg" /></p>
<p><img src="https://www.sevenit.cn/content/uploadfile/202601/2a801768216481.jpeg" alt="2a801768216481.jpeg" /></p>
<p><img src="https://www.sevenit.cn/content/uploadfile/202601/e0051768216481.jpeg" alt="e0051768216481.jpeg" /></p>
<p><img src="https://www.sevenit.cn/content/uploadfile/202601/b68e1768216481.jpeg" alt="b68e1768216481.jpeg" /></p>
<p><img src="https://www.sevenit.cn/content/uploadfile/202601/f1e51768216481.jpeg" alt="f1e51768216481.jpeg" /></p>
<p><img src="https://www.sevenit.cn/content/uploadfile/202601/1d561768216481.jpeg" alt="1d561768216481.jpeg" /></p>]]></description>
    <pubDate>Mon, 12 Jan 2026 19:14:15 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>https://www.sevenit.cn/?post=8</guid>
</item>
<item>
    <title>小众神仙壁纸｜解锁手机新颜值</title>
    <link>https://www.sevenit.cn/?post=7</link>
    <description><![CDATA[<p>小众神仙壁纸｜解锁手机新颜值</p>]]></description>
    <pubDate>Mon, 12 Jan 2026 19:13:38 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>https://www.sevenit.cn/?post=7</guid>
</item>
<item>
    <title>更新啦</title>
    <link>https://www.sevenit.cn/?post=6</link>
    <description><![CDATA[<p>更新啦</p>]]></description>
    <pubDate>Mon, 12 Jan 2026 13:52:40 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>https://www.sevenit.cn/?post=6</guid>
</item>
<item>
    <title>111</title>
    <link>https://www.sevenit.cn/?post=5</link>
    <description><![CDATA[<p>11111</p>]]></description>
    <pubDate>Sun, 11 Jan 2026 21:30:37 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>https://www.sevenit.cn/?post=5</guid>
</item>
<item>
    <title>111</title>
    <link>https://www.sevenit.cn/?post=4</link>
    <description><![CDATA[<p>[#ArtifactTitle:斗拱考试实战：支付宝正扫+退款场景完整实现与踩坑记录]</p>
<pre><code class="language-markdown">---
title: 斗拱考试实战：支付宝正扫+退款场景完整实现与踩坑记录
date: 2026-01-07
author: 夏末浅笑
tags: [汇付支付, 斗拱考试, PHP, 支付宝, 退款]
categories: [技术实战]
---

# 斗拱考试实战：支付宝正扫+退款场景完整实现与踩坑记录

**作者**：夏末浅笑  
**博客**：[https://blog.ccswust.org/](https://blog.ccswust.org/)  
**创建日期**：2026-01-07

## 前言

最近需要完成斗拱考试的支付宝正扫+退款场景，整个过程中遇到了不少坑，特此记录下来，希望能帮助到后来者。本文将详细介绍如何使用汇付支付的PHP SDK实现PC端支付宝扫码支付和交易退款功能，并深入分析常见问题的解决方案。

## 一、项目背景

### 考试要求

- **聚合正扫**：调用聚合正扫API，`trade_type = A_NATIVE`
- **支付金额**：向个人账户内支付≤¥1.00金额
- **交易退款**：调用交易退款API，将支付款退还给用户
- **流水号格式**：`req_seq_id`必须包含用户ID和请求日期，格式为：`用户ID_日期_随机数`

### 技术栈

- **后端**：PHP 7.4 + 汇付支付SDK V2.0.23
- **前端**：原生JavaScript + 官方PC端SDK
- **部署环境**：Nginx + HTTPS

## 二、项目结构
</code></pre>
<p>huifu_exam_complete/<br />
├── api/                    # 后端API接口<br />
│   ├── pc_pay.php         # PC端支付宝扫码支付接口<br />
│   ├── pc_refund.php      # 交易退款接口<br />
│   ├── query.php          # 交易查询接口<br />
│   ├── notify.php         # 异步通知处理<br />
│   └── loader.php         # SDK加载器<br />
├── public/                # 前端页面<br />
│   └── pc/               # PC端收银台<br />
│       ├── cashier.html   # 收银台页面<br />
│       ├── refund.html    # 退款测试页面<br />
│       ├── pay.js         # 支付逻辑<br />
│       └── config/        # 配置文件<br />
└── sdk/                   # 汇付支付SDK<br />
└── BsPaySdk/          # PHP SDK核心文件</p>
<pre><code>
## 三、核心实现

### 3.1 支付接口实现

支付接口使用聚合正扫API，交易类型为A_NATIVE（支付宝扫码）。

```php
post("v3.trade.payment.jspay", $paramsInfo, '', 'default');

// 4. 处理响应
if (!$result || $result-&gt;isError()) {
    // 失败处理
} else {
    // 成功处理，返回二维码
}
?&gt;</code></pre>
<p><strong>关键点</strong>：</p>
<ul>
<li>流水号格式必须包含用户ID和日期</li>
<li>交易类型必须为A_NATIVE</li>
<li>支付金额必须≥0.10元（手续费限制）</li>
</ul>
<h3>3.2 退款接口实现</h3>
<p>退款接口使用V2版本的交易退款API。</p>
<pre><code class="language-php">post("v2.trade.payment.scanpay.refund", $paramsInfo, '', 'default');

    // 5. 处理响应
    if (!$result || $result-&gt;isError()) {
        // 失败处理
    } else {
        // 成功处理
    }
} catch (Exception $e) {
    // 异常处理
}
?&gt;</code></pre>
<p><strong>关键点</strong>：</p>
<ul>
<li>必须使用V2版本退款接口（<code>v2.trade.payment.scanpay.refund</code>）</li>
<li>必须使用汇付全局流水号（<code>hf_seq_id</code>）作为原交易标识</li>
<li>namespace声明必须在文件第一行</li>
</ul>
<h2>四、踩坑记录</h2>
<h3>坑1：SDK类加载失败</h3>
<p><strong>错误信息</strong>：<code>Fatal error: Class 'BsPaySdk\request\BaseRequest' not found</code></p>
<p><strong>原因</strong>：直接加载请求类文件，但没有加载SDK的init.php文件，导致父类BaseRequest没有被正确加载。</p>
<p><strong>解决方案</strong>：使用loader.php统一加载SDK，确保类加载顺序正确。</p>
<pre><code class="language-php">// loader.php
require_once dirname(__FILE__). "/../sdk/BsPaySdk/init.php";
use BsPaySdk\core\BsPay;
BsPay::init(dirname(__FILE__).'/../sdk/Composer/BsPayConfig.json', false);</code></pre>
<h3>坑2：商户私钥截断</h3>
<p><strong>错误信息</strong>：<code>api error</code></p>
<p><strong>原因</strong>：商户私钥在配置文件中只显示到&quot;...&quot;，导致签名验证失败。</p>
<p><strong>解决方案</strong>：确保BsPayConfig.json中的商户私钥完整，不要截断。</p>
<h3>坑3：namespace声明位置错误</h3>
<p><strong>错误信息</strong>：<code>Fatal error: Namespace declaration statement has to be the very first statement</code></p>
<p><strong>原因</strong>：namespace声明之前有其他代码或空行。</p>
<p><strong>解决方案</strong>：namespace声明必须在文件第一行，前面不能有任何代码或空行。</p>
<pre><code class="language-php">&lt;?php
namespace BsPayDemo; // 必须在第一行
use BsPaySdk\core\BsPay;
// 其他代码...</code></pre>
<h3>坑4：退款接口版本错误</h3>
<p><strong>错误信息</strong>：<code>原交易未入账</code></p>
<p><strong>原因</strong>：使用了V3版本的退款接口，但应该使用V2版本。</p>
<p><strong>解决方案</strong>：使用官方示例代码中的V2接口：<code>v2.trade.payment.scanpay.refund</code></p>
<h3>坑5：支付金额不足</h3>
<p><strong>错误信息</strong>：<code>交易金额不足以支付手续费</code></p>
<p><strong>原因</strong>：支付金额为0.01元，不足以支付手续费。</p>
<p><strong>解决方案</strong>：支付金额必须≥0.10元，建议使用0.50元。</p>
<h3>坑6：前端收到HTML而非JSON</h3>
<p><strong>错误信息</strong>：<code>Unexpected token '&lt;', "&lt;!doctype html&gt;..."</code></p>
<p><strong>原因</strong>：PHP文件未正确执行，返回了HTML错误页面。</p>
<p><strong>解决方案</strong>：</p>
<ul>
<li>检查文件路径是否正确</li>
<li>检查PHP环境是否正常</li>
<li>检查文件权限是否正确</li>
<li>增强前端错误处理，显示实际响应内容</li>
</ul>
<h3>坑7：退款参数错误</h3>
<p><strong>错误信息</strong>：<code>原交易不存在</code></p>
<p><strong>原因</strong>：退款时使用了错误的交易标识。</p>
<p><strong>解决方案</strong>：退款必须使用汇付全局流水号（<code>hf_seq_id</code>），而不是商户流水号（<code>req_seq_id</code>）。</p>
<h3>坑8：Content-Type拼写错误</h3>
<p><strong>错误信息</strong>：<code>Unexpected token '&lt;'</code></p>
<p><strong>原因</strong>：前端http.js中Content-Type拼写错误：<code>uft-8</code> → <code>utf-8</code></p>
<p><strong>解决方案</strong>：修正拼写错误：<code>Content-Type: application/json; charset=utf-8</code></p>
<h2>五、部署步骤</h2>
<h3>1. 环境准备</h3>
<ul>
<li>PHP 7.4+</li>
<li>Nginx/Apache</li>
<li>SSL证书（HTTPS）</li>
</ul>
<h3>2. 文件部署</h3>
<pre><code class="language-bash"># 上传文件到网站根目录
cd /www/wwwroot/yourdomain.com
unzip huifu_exam_complete.zip
cd huifu_exam_complete

# 设置目录权限
chmod -R 755 .
chmod -R 777 logs</code></pre>
<h3>3. 配置商户信息</h3>
<p>修改 <code>sdk/Composer/BsPayConfig.json</code>：</p>
<pre><code class="language-json">{
    "sys_id": "6666000108840829",
    "product_id": "YYZY",
    "rsa_merch_private_key": "完整的商户私钥",
    "rsa_huifu_public_key": "完整的汇付公钥",
    "huifu_id": "6666000109133323"
}</code></pre>
<h3>4. 配置Nginx</h3>
<pre><code class="language-nginx">server {
    listen 443 ssl;
    server_name yourdomain.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    root /www/wwwroot/yourdomain.com/huifu_exam_complete;
    index index.html;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}</code></pre>
<h3>5. 测试</h3>
<p>访问：<code>https://yourdomain.com/huifu_exam_complete/public/pc/cashier.html?price=0.5</code></p>
<h2>六、验证结果</h2>
<h3>支付成功</h3>
<pre><code class="language-json">{
    "resp_code": "000000",
    "resp_desc": "下单成功",
    "json_data": {
        "resp_code": "00000100",
        "resp_desc": "下单成功",
        "hf_seq_id": "002900TOP1A260107164650P355ac139d1100000",
        "req_seq_id": "1337734717469949952_20260107_888494"
    },
    "pay_info": "https://qr.alipay.com/xxxxx"
}</code></pre>
<h3>退款成功</h3>
<pre><code class="language-json">{
    "resp_code": "000000",
    "resp_desc": "退款成功",
    "json_data": {
        "resp_code": "00000000",
        "resp_desc": "交易成功",
        "hf_seq_id": "003100TOP1B260107185639P550ac139d6f00000",
        "req_seq_id": "1337734717469949952_20260107_888494",
        "trans_amt": "0.50"
    }
}</code></pre>
<h2>七、考试提交流水号</h2>
<p>根据日志分析，以下流水号已成功通过验证：</p>
<p><strong>退款请求流水号</strong>：<code>1337734717469949952_20260107_888494</code></p>
<p>此流水号符合考试要求：</p>
<ul>
<li>✅ 包含用户ID（1337734717469949952）</li>
<li>✅ 包含请求日期（20260107）</li>
<li>✅ 格式正确（用户ID_日期_随机数）</li>
<li>✅ 退款交易成功（resp_code: 00000000）</li>
</ul>
<h2>八、注意事项</h2>
<ul>
<li><strong>支付金额</strong>：不能低于0.10元（手续费限制）</li>
<li><strong>退款标识</strong>：必须使用汇付全局流水号（<code>hf_seq_id</code>）</li>
<li><strong>流水号格式</strong>：必须包含用户ID和日期</li>
<li><strong>HTTPS</strong>：必须使用HTTPS协议</li>
<li><strong>服务器时间</strong>：确保服务器时间准确</li>
<li><strong>完整密钥</strong>：商户私钥必须完整，不能截断</li>
<li><strong>namespace位置</strong>：必须在文件第一行</li>
</ul>
<h2>九、参考文档</h2>
<ul>
<li><a href="https://paas.huifu.com/open/doc/api/#/smzf/api_jhzs?id=ewm">聚合正扫API文档</a></li>
<li><a href="https://paas.huifu.com/open/doc/api/#/smzf/api_qrpay_tk?id=ewm">交易退款API文档</a></li>
<li><a href="https://paas.huifu.com/open/doc/guide/#/api_v2jqyq">V2接口加签验签</a></li>
<li><a href="https://paas.huifu.com/common-web/ossApi//assessment/%E5%BC%80%E5%8F%91%E8%80%85%E5%9F%B9%E8%AE%AD%E5%92%8C%E8%80%83%E6%A0%B8%E6%96%87%E6%A1%A3.html">开发者培训和考核文档</a></li>
</ul>
<h2>十、总结</h2>
<p>通过这次斗拱考试，我深入理解了汇付支付的API调用流程和常见问题。关键要点：</p>
<ol>
<li><strong>严格按照官方示例代码</strong>：不要随意修改官方示例代码的结构</li>
<li><strong>注意细节</strong>：namespace位置、密钥完整性、接口版本等细节很重要</li>
<li><strong>充分测试</strong>：每个环节都要充分测试，确保功能正常</li>
<li><strong>日志记录</strong>：详细的日志记录有助于问题排查</li>
</ol>
<p>希望这篇博客能帮助到正在进行斗拱考试的开发者。如果有任何问题，欢迎在我的博客留言交流。</p>
<p><strong>项目地址</strong>：<a href="https://github.com/yourusername/huifu_exam_complete">huifu_exam_complete</a><br />
<strong>作者博客</strong>：<a href="https://blog.ccswust.org/">https://blog.ccswust.org/</a><br />
<strong>创建日期</strong>：2026-01-07</p>
<pre><code></code></pre>]]></description>
    <pubDate>Wed, 07 Jan 2026 19:35:46 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>https://www.sevenit.cn/?post=4</guid>
</item>
<item>
    <title>📌 ShopXO 在宝塔面板中的详细部署教程（2025版）</title>
    <link>https://www.sevenit.cn/?post=3</link>
    <description><![CDATA[<p>以下是基于你提供的两个官方文档链接（<a href="https://www.kancloud.cn/yx2004000/shopxo_dev_yx/1279376">看云文档</a> 和 <a href="https://store.shopxo.net/doc-index-detail-20.html">ShopXO官方教程</a>），结合宝塔面板（BT Panel）环境，整理出的 ShopXO 商城系统在宝塔面板下的详细部署与配置教程。</p>
<p>📌 ShopXO 在宝塔面板中的详细部署教程（2025版）<br />
适用对象：有一定服务器基础的站长、开发者<br />
系统版本：ShopXO v6.6.0（当前最新稳定版）<br />
环境要求：Linux（推荐 CentOS 7+/Ubuntu 20.04+）、宝塔面板 7.9+、PHP 7.4/8.0、MySQL 5.7+、Nginx/Apache</p>
<p>一、准备工作</p>
<ol>
<li>获取 ShopXO 源码<br />
官网下载地址（需授权）：<a href="https://store.shopxo.net/">https://store.shopxo.net/</a><br />
或从已购买的渠道获取 shopxo.zip 压缩包</li>
<li>准备服务器环境<br />
安装 宝塔面板（官网：<a href="https://www.bt.cn/">https://www.bt.cn/</a>）<br />
在宝塔面板中安装以下环境：<br />
Web 服务器：Nginx 1.20+（推荐）或 Apache<br />
PHP：7.4 或 8.0（ShopXO v6.6.0 兼容 PHP 8.1，但建议 8.0）<br />
MySQL：5.7 或 8.0<br />
phpMyAdmin（可选，用于数据库管理）<br />
安装 PHP 扩展：<br />
fileinfo<br />
gd<br />
curl<br />
openssl<br />
mbstring<br />
zip<br />
pdo_mysql<br />
💡 提示：在宝塔「软件商店」中点击 PHP 版本 →「设置」→「安装扩展」</li>
</ol>
<p>二、上传并解压 ShopXO 源码</p>
<ol>
<li>创建网站<br />
在宝塔面板 →「网站」→「添加站点」<br />
域名：如 shop.example.com<br />
根目录：如 /www/wwwroot/shop.example.com<br />
PHP 版本：选择已安装的 7.4 或 8.0<br />
数据库：先不创建（安装时自动建）</li>
<li>上传源码<br />
将 shopxo.zip 上传到网站根目录（如 /www/wwwroot/shop.example.com）<br />
在宝塔文件管理器中解压：<br />
bash<br />
unzip shopxo.zip<br />
将 shopxo 文件夹内 所有内容 移动到网站根目录（覆盖）<br />
✅ 正确结构应为：</li>
</ol>
<p>/www/wwwroot/shop.example.com/<br />
├── public/<br />
├── app/<br />
├── config/<br />
├── runtime/ ← 需要写权限<br />
└── admin.php</p>
<p>三、设置运行目录（关键步骤！）<br />
方法一：推荐（更安全）<br />
在宝塔「网站」→ 点击站点「设置」→「网站目录」<br />
将 运行目录 改为：/public<br />
保存<br />
这样访问 <a href="https://shop.example.com">https://shop.example.com</a> 实际指向的是 public/index.php，隐藏了核心代码。<br />
方法二：兼容虚拟主机（不推荐）<br />
若无法设置运行目录（如某些虚拟主机），则保持根目录为运行目录<br />
但需确保 .htaccess（Apache）或 Nginx 伪静态规则正确<br />
Nginx 伪静态规则（宝塔中添加）：<br />
nginx<br />
location / {<br />
if (!-e $request_filename) {<br />
rewrite ^(.*)$ /index.php?s=$1 last; break;<br />
}<br />
}</p>
<p>四、设置目录权限</p>
<p>在宝塔「文件」中，对以下目录设置权限：</p>
<p>目录 权限 所有者</p>
<hr />
<p>runtime/ 755 或 777 www<br />
public/static/upload/ 755 www<br />
config/ 755（安装后建议改为 644） www<br />
⚠️ 注意：<br />
所有文件建议所有者为 www（宝塔默认 PHP 运行用户）<br />
若安装时报错“权限不足”，请全选文件 → 右键 →「权限」→ 所有者改为 www，权限 755</p>
<p>五、开始安装 ShopXO</p>
<ol>
<li>访问安装页面<br />
浏览器打开：<a href="https://你的域名/install.php">https://你的域名/install.php</a><br />
若提示 404，请检查：<br />
是否设置了运行目录为 /public<br />
Nginx/Apache 是否重启<br />
是否有 .htaccess 或伪静态问题</li>
<li>安装流程</li>
<li>协议同意 → 点击“同意”</li>
<li>环境检测 → 确保全部绿色（若 fileinfo 红色，请回宝塔安装）</li>
<li>数据库配置：<br />
数据库地址：127.0.0.1 或 localhost<br />
数据库端口：3306<br />
数据库名：新建一个（如 shopxo<em>db）<br />
用户名/密码：MySQL 的 root 或新建用户<br />
数据表前缀：可默认 shopxo</em> 或自定义<br />
数据库编码：utf8mb4</li>
<li>管理员账号：<br />
用户名：admin（可改）<br />
密码：务必修改！默认是 shopxo，极不安全<br />
邮箱：填写有效邮箱</li>
<li>点击“安装”，等待完成</li>
</ol>
<p>六、安装后安全设置</p>
<ol>
<li>删除安装文件<br />
删除网站根目录下的 install.php<br />
删除 install/ 文件夹（如有）</li>
<li>修改后台入口（可选但推荐）<br />
默认后台地址：<a href="https://你的域名/admin.php">https://你的域名/admin.php</a><br />
可重命名为 myadmin.php 等，提高安全性：<br />
bash<br />
mv admin.php myadmin.php<br />
后续通过 <a href="https://你的域名/myadmin.php">https://你的域名/myadmin.php</a> 登录</li>
<li>配置 HTTPS（推荐）<br />
在宝塔「网站」→「SSL」→ 申请 Let's Encrypt 免费证书<br />
开启强制 HTTPS</li>
</ol>
<p>七、多商户功能启用（根据官方教程）</p>
<p>若需开启 多商户（多店铺） 功能：</p>
<ol>
<li>后台开启<br />
登录后台 →「系统设置」→「基础配置」<br />
找到「多商户配置」或「店铺相关」<br />
启用：<br />
✅ 申请店铺开启<br />
✅ 开启经营类目资质<br />
✅ 启用店铺保证金<br />
✅ 启用店铺等级</li>
<li>配置店铺页面展示<br />
「店铺基础配置」中开启：<br />
商城首页展示店铺<br />
商品详情页展示店铺信息<br />
开启卖家中心入口</li>
<li>商家入驻流程<br />
前台用户可点击「卖家中心」→「申请开店」<br />
填写店铺信息、上传营业执照、缴纳保证金（如启用）<br />
详细操作参考：<a href="https://store.shopxo.net/doc-index-detail-20.html">https://store.shopxo.net/doc-index-detail-20.html</a></li>
</ol>
<p>八、常见问题排查</p>
<p>问题 解决方案</p>
<hr />
<p>安装页打不开 / 404 检查运行目录是否为 /public，检查伪静态<br />
权限错误（runtime 无法写入） 设置 runtime/ 权限为 755，所有者为 www<br />
图片无法上传 检查 public/static/upload/ 权限<br />
后台登录白屏 检查 PHP 是否开启 fileinfo、gd 扩展<br />
数据库连接失败 检查 MySQL 是否运行，账号密码是否正确，是否允许本地连接</p>
<p>九、后续维护建议<br />
定期备份：数据库 + 网站文件<br />
更新 ShopXO：通过官方渠道获取新版，不要直接覆盖，注意数据迁移<br />
安全加固：关闭调试模式（config/app.php 中 app_debug = false）<br />
使用 CDN 加速静态资源</p>
<p>✅ 至此，ShopXO 已成功部署在宝塔面板，并支持多商户功能！</p>
<p>如需进一步开发（插件、API、小程序对接），可参考看云文档中的「二开」章节。</p>
<p>📚 参考资料：<br />
ShopXO 安装文档：<a href="https://www.kancloud.cn/yx2004000/shopxo_dev_yx/1279376">https://www.kancloud.cn/yx2004000/shopxo_dev_yx/1279376</a><br />
多商户教程：<a href="https://store.shopxo.net/doc-index-detail-20.html">https://store.shopxo.net/doc-index-detail-20.html</a><br />
宝塔面板官方：<a href="https://www.bt.cn/">https://www.bt.cn/</a></p>
<p>如需我帮你生成 一键部署脚本 或 Nginx 配置模板，也可以告诉我！</p>]]></description>
    <pubDate>Tue, 21 Oct 2025 18:01:59 +0800</pubDate>
    <dc:creator>emer</dc:creator>
    <guid>https://www.sevenit.cn/?post=3</guid>
</item>
</channel>
</rss>