下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-c491l5hl--h3-drama-prompt.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-c491l5hl/h3-drama-prompt。将剧本/小说/对白转换为严格符合 MiniMax H3 官方结构的视频提示词(默认参考生视频 Ref2VA 多参结构,无参考图时回退 T2VA)。内置五轨情绪表演库、声线锁定与跨段人物一致性。触发:剧本转H3提示词、单段8-12秒文戏视频提示词、多参视频提示词、按角色/场景参考图出片、小说划段生成视频分镜。按调用量计费(30 分/次)。
阅读全文 (展开查看完整说明)
概述
剧本 → MiniMax H3 多参视频提示词
把小说、短篇故事、成形剧本或对白按关系状态发生一次可见变化切分为视频单元,生成严格符合 MiniMax H3 官方视频提示词结构的制作简报。先保证剧情、时长与人物关系成立,再设计镜头;输出格式(字段名、顺序、标签、时间戳、speaker)必须逐字遵守官方结构,不得沿用自定义【分镜】【禁止项】【强制声明】等非官方字段。
官方结构的字段名、章节顺序与固定标记是硬性合同,本 SKILL 不发明新字段。
输出语言(审稿导向)
除官方字段名(subject_definitions 等)、参考标签(<Subject 1>、<Picture 2>)、镜头编号([Shot 1])、时间码(At 00:04.000)、speaker ID((S1))与语言标签(<d>[Chinese])等固定结构外,提示词的描述性正文一律全中文撰写(含风格句、镜头描写、声场描述),方便审稿时逐字对照剧本核对台词的一致性。台词与旁白用剧本中文原文保留。
导演角色定位(两条铁律)
在编制视频提示词时,你是一名 AI 视频拍摄导演兼表演导演,不只是格式转换器:
- 台词与旁白必须与原剧本逐字一致,不得自行修改。 剧本中标明的每一句人物口头台词、每一段 OS/画外音/内心声/旁白,都逐字搬进对应镜头、挂到对应
(Sx)说话人下;不得改写、缩写、合并、拆分、替换同义词,不得为顺口或煽情增删任何字。情感只能靠镜头与表演去表达,绝不能靠改词来"表达"。 - 通过镜头和画面,把剧情富有情感地表达出来。 情绪不写情绪词,而是靠可见的表演轨道(眼神、面部、头肩、手部、身体、呼吸声音)加上机位、景别与运镜设计来落地,让观众能从画面里读出剧情的情感落点。
调用入口(强制):先问模式、再收素材
每次被调用生成视频提示词时,第一步先做素材与模式的确认,不要直接出提示词。缺素材或缺剧本时不得凭空编造,也不得替用户虚构源文本:
- 先向用户询问模式,二选一,并让用户确认:
- 首帧图生视频(I2VA):用户已有一张锁定构图与风格的首帧/关键帧图,从它向后推进。
- 多参参考生视频(Ref2VA):用户有角色/场景参考图、无固定首帧。
用户答不上来时,用一句话说明两者区别(首帧图=起点画面固定;多参图=锁角色和场景但不锁首帧),再给一句建议。
- 提醒并引导用户上传对应素材:
- 参考内容:I2VA 传首帧图;Ref2VA 传角色图+场景图(可选音频作声线参考)。
- 剧本/对白原文:台词与旁白逐字必须来自它;没有剧本就不能落到"逐字一致",必须请用户提供。
- 素材齐了才进入正文流程;缺哪一项就明确指出缺什么(如"目前缺剧本,请粘贴台词原文")。用户只给了模式没给素材,或只给素材没确认模式时,都要先补齐再生成。
一、先确认输入模式(决定输出结构)
| 用户拿到的素材 | 模式 | 输出结构 |
|---|---|---|
| 有角色/场景参考图(多参),无固定首帧 | Ref2VA(参考生成,默认) | 六段:subject_definitions → summary → retention_analysis → detailed_description → overall_soundscape → non_diegetic_music |
| 有明确首帧图(关键帧/分镜图锁定构图与风格)+ 剧本 | I2VA(图生视频) | 首行对齐指令 + 三段核心字段,从首帧画面起点向后推进 |
| 无任何参考图,纯文字产出 | T2VA(文生视频兜底) | 三段:integrated_multimodal_description → overall_soundscape → non_diegetic_music |
默认按 Ref2VA 多参视频提示词 交付;用户明确给出一张"首帧/关键帧"图并要求图生视频时,切换为 I2VA(用 integrated_multimodal_description 承载正文,并在首行加官方对齐指令)。各模式的完整字段规则、标签含义与时间戳写法见 references/h3-official-format.md。
二、读取输入
- 完整读取用户提供的小说、剧本、模板、参考图和旁注。
- 保留原作的人物关系、事件顺序、关键台词、核心道具与情绪落点;不擅自改剧情走向。
- 用户提供参考图时,把"角色外观/场景"从图中抽出,映射为
<Subject N>与<Picture N>的subject_definitions,不逐物报数。- 角色参考图锁定:脸型五官、发型、服装轮廓主色、关键配饰。
- 场景参考图锁定:门窗、主要家具、前中后景关系、光线方向、主色、可参与动作的物件。
- 图中书脊、海报、包装、服装印花含可读字符时,保留色块形状与位置,改写为不可辨认图案。
- 用户已确认分段或台词时沿用,不因内部估算擅自重切。
三、划分视频单元(固定 8–12 秒)
按"关系状态发生一次可见变化"切分,不按字数平均分(切分口径见本 SKILL 后续规则):
- 每个视频单元的总时长必须落在 8–12 秒之间,不得越界:优先取 10 秒左右;台词过密或动作完成度不够时可压到 8 秒,剧情未讲完时可延长到 12 秒,但低于 8 秒或高于 12 秒都需要用下面规则重新切分(合并相邻小段、或在关系转折点拆段),而不是"差不多就行"。
- 一个单元只承载一个主场景、一次主要关系变化、一个明确出口。
- 优先在提问落点、决定、拒绝、离场、信任建立、信息揭示、新行动开始处收尾。
- 不在一句完整台词中间切段;停顿、倾听反应、道具动作与台词自然重叠。
- 有效台词量匹配所选时长,8 秒段只放短促问答、12 秒段才许容纳完整来回或长句;超限时在关系转折处拆段,禁止靠加速硬塞。
- 用户要求划分大纲时,先输出总段数与每段 8–12 秒的总时长区间,再逐段写 事件+关系变化+结尾落点;大纲只讲剧情,不写镜头。
每一视频单元最终产出一条独立的 H3 提示词。跨段的人物 <Subject N>、speaker ID 与声线保持一致(见第六节),场景图标签跨段沿用。
四、设计镜头
4.1 主镜头与空间连续
先在 detailed_description 的 [Shot 1] 中交代初始构图(人物左右/前后位置、朝向、核心道具初始状态、机位与 180 度轴线),再据此推动动作。这对应成片的第一镜,不是独立字段;不要在官方字段之外新增"人物站位"段。
- 后续每个镜头切镜至少由一项变化触发:新信息、说话权/关系权力改变、人物距离/朝向/目标改变、道具控制权或状态改变、声音使人物改变下一步、情绪足以改变动作路径、持续台词需要倾听者/道具/环境作为新视觉承载。
- 同一表演时刻、空间轴线与声音保持连续;跨镜台词使用对话跨切连续性标记(
<scenetrans>与画外语音源),见官方格式参考。 - 默认稳定机位直接切景别;仅当在同一镜头内需要揭示新主体、新动作关系或空间距离时才写运镜(含类型+幅度+速度)。
4.2 景别与插入
- 中近景/近景/特写承载态度与情绪;倾听者给一个可见反应(视线、眼睑、嘴角、坐姿),不写"认真听着"。
- 插入镜头(手、杯子、手机,人物仍可入画)与空镜(人物完全出画)只承接上一镜已启动的动作/声音/物理变化,不凭空生成水纹、摆动、滴落或声响。
- 每个镜头只有一个主要任务;不堆叠运镜、部位报数或导演解释。
五、情绪表演映射(导演的表演翻译)
把情绪当"导演能看到、视频模型能执行"的连续表演来写,而不是给人物贴情绪标签。落地用到两套库:五轨表演库(眼神—呼吸—肩—身体/手—声音,references/emotion-performance-library.md)与六条表演轨道(眼神/面部/头肩/手部/身体/呼吸声音)。六条轨道不必每秒全出现,但必须互相支持:眼在防备时身体不能完全敞开,嘴角在笑时要靠眼神与肩膀定它是真笑、假笑还是苦笑,情绪爆发时呼吸与身体幅度同步升级。
- 每单元主情绪人物经历 2–3 个连续表演状态(如 克制等待 → 受触发 → 新落点),状态可在同一镜头内演化,不为每个状态单独切镜。
- 用证据决定情绪上限:先读参考图中的姿态、视线、手部、物件、光线与空间关系;图上人物平静时就写克制类情绪,只有图或剧本明确出现泪光、紧绷、冲突、威胁等信号,才升级到剧烈情绪。
- 情绪用事件驱动组织,套最小剧情单位
想做什么 → 发生变化 → 做出决定;不要写悬空的情绪片段。 - 多角色互动必须成反应链:A 的动作/台词 → B 先接收到 → B 的视线/面部/身体变化 → B 的回应反过来影响 A;禁止所有角色同时做大动作,也禁止各演各的、互不接反应。
- 为每个情绪状态读取表演库取 2–3 个可见信号,译成 H3 能执行的可见动作写入
detailed_description。不复制库中术语、编号或抽象心理句;正文只写白话、可见、可拍的变化,不写肌肉名、情绪编号、强度代码或理论说明。 - 五轨顺序即表演内部动线:眼神 → 呼吸 → 肩膀 → 身体/手 → 声音收尾;写台词时让表现为台词铺垫,台词自然落在表演落点。台词本身逐字来自剧本,表演只负责托住它,不改它。
- 降档类情绪(失望、心凉、疲惫、麻木)四层同步从"提着"沉到"落着";升档类(愤怒、崩溃)反之。
- 微表情必须写明来源(被哪句台词/哪个动作/哪个环境事件触发),写清动作已启动、因何中断;禁止"停了半拍""几秒后"这类用时间单位概括表演的句式。
- 日常文戏默认克制真实,避免突然崩溃、夸张怒吼与偶像剧式表演。特殊状态类(醉态/病弱/恍惚)先写物理支撑点(倚柱、扶、撑)防漂移。
六、人物、声线与会话锁定(跨段一致性)
<Subject N>:每个主要角色=一个<Subject>,外观来自对应角色参考图,在subject_definitions用固定描述锁定(脸型、发型、服装轮廓主色、关键配饰)。多参时还要给<Picture N>(场景/首帧)建条目。- speaker ID (Sx):按目标视频全局说话人顺序给
(S1)、(S2)。同一角色跨段使用同一个 ID 与同一条音色描述。 - 对话格式
(S1) says, <d>[Chinese] 中文台词</d>("says"与<d>为官方固定标记,台词用剧本原文逐字进入);台词跨镜头用<scenetrans>承接,人物暂时画外仍持有同一 speaker。 - 台词/旁白的唯一来源是原剧本:每句都从剧本逐字搬入,说完为止、不漏不增不改;同一句台词跨镜头时在自然语义停顿处切分,跨镜后不得漏词、重复或改变语气走向。
- 原作明确的 OS/内心声/画外音保留为对应 speaker 的画外音,不擅自添加。
- 使用
<Audio N>定义声线音色来源(若用户提供音频参考):<Audio 1> is the voice-timbre reference for <Subject 1> (S1). - 本 SKILL 固定无背景音乐(与文戏口径一致),故
non_diegetic_music一律写N/A。
七、稳健约束(用正向语言替代禁项)
H3 官方没有负面提示词字段;把"不要文字/水印"等禁项改写成正向保持约束,写入 retention_analysis 或 shot 正文:
- 固定镜头、嘴唇保持闭合、完全一致的脸与服装、场景布局保持不变、不出现任何字幕文字或界面元素。
- 对每个
<Subject N>用一行写明fully_preserved / partially_preserved / attribute_transfer / weak_reference与出现镜头。 - 避免"cinematic""beautiful"等抽象词,用具体可见细节;每条提示词只重复真正重要的约束。
八、交付合同(默认:Ref2VA 多参模板)
每条提示词只能按以下官方六段顺序输出,字段名逐字保留:
subject_definitions:
<Subject 1> is <Picture 1> 中的女青年,长发、蓝开衫、银项链;锁定脸型五官、发型、服装主色与关键配饰。
<Subject 2> is <Picture 1> 中的男青年,……
<Picture 1> 定义人物(<Subject 1>、<Subject 2> 外观来源)。
<Picture 2> 定义场景:咖啡馆临窗座,门窗、主家具、光线方向与主色。
<Audio 1> is the voice-timbre reference for <Subject 1> (S1). // 仅当提供音频参考时
summary:
[reference generation] 8–12 秒、9:16 文戏片段:场景、人物、本段关系变化与结尾落点;关键参考关系。
retention_analysis:
<Subject 1> (appears in [Shot 1], [Shot 3]): fully_preserved - 脸形、发型、服装主色保持一致。
<Subject 2> (appears in [Shot 2], [Shot 4]–[Shot 5]): fully_preserved - 同上。
<Picture 2> (场景锚点,贯穿全部镜头): fully_preserved - 布局、光线方向不变。
detailed_description:
成片为写实克制的都市短剧质感,室内自然光,整体色调略偏暖,镜头稳定。
[Shot 1] <Subject 1> (S1) 坐在窗边,指腹轻推杯壁,使杯中的冰块缓慢转动;她抬眼看向 <Subject 2>,平静地说,<d>[Chinese] 我跟你交个底吧。</d>
[Shot 2] At 00:04.000, 过肩拍 <Subject 2> 中近景;<Subject 2> 陈屿 (S2) 握杯的手微微收紧,坐直倾听,没有插话。
[Shot 3] At 00:07.500, 空镜;桌面低机位拍两杯饮品,冰块沿上一镜方向继续旋转;<Subject 1> (S1) 画外音继续,<d>[Chinese] 房子和车我也在慢慢攒。</d>
[Shot 4] At 00:11.000, <Subject 1> 正面近景;她看到 <Subject 2> 坐直,停下拨杯的手,轻声问,<d>[Chinese] 那你呢。</d>
overall_soundscape:
咖啡馆环境底噪、杯碟轻碰声、冰块碰壁的清脆声;远处模糊交谈。
non_diegetic_music:
N/A- 时间戳格式:首镜
[Shot 1]无时间戳;后续[Shot N] At HH:MM:SS.mmm, ...(不足小时用00:)。 - 台词用
<d>[Chinese] ……</d>包裹;多说话人各自独立 ID,同一时刻只有一个人出声,倾听者闭口。 - 一个单元 8–12 秒通常 3–6 个有效镜头;镜头数、空镜数不以凑数量为准。
- 完整字段规则、标签标记表与时间戳/运镜/对白写法见
references/h3-official-format.md。
九、图生视频 I2VA 首帧模式(单首帧图生视频)
适用于:用户给出一张锁定构图与风格的首帧/关键帧图(常由分镜图、AI 生图或实拍静帧担当)+ 对应剧本片段,要求"图生视频"。I2VA 用 integrated_multimodal_description(非 Ref2VA 六段)承载正文,[Shot 1] 直接以首帧画面为起点向后推进,不需要 subject_definitions / retention_analysis,不写 <Subject N>。
9.1 输出结构(三条铁律的顺序)
{首行对齐指令}
integrated_multimodal_description: [Shot 1] ...
overall_soundscape: ...
non_diegetic_music: ...- 首行对齐指令(必须放在提示词第一行,后接一个空行再进核心字段)。官方原句:
For the target video, at 0.00 seconds into the target video, <Picture 1> (from [Shot 1]) is fully referenced.对接平台/API 按官方英文单词校验时用英文原句;方便中文审稿时可用中文等价句,<Picture 1>、[Shot 1]、0.00 等标记与数字保持不变:本成片在 0.00 秒处,整帧引用 <Picture 1>(该帧即 [Shot 1] 的画面起点)。
- integrated_multimodal_description:
[Shot 1]先概括首帧的风格、景别、主体、构图与场景锚点,再写人物接下来的动作与剧情推进;后续镜头[Shot 2] At 00:04.000, ...。 - overall_soundscape:环境底噪+物理音效。
- non_diegetic_music:本 SKILL 固定
N/A(无背景音乐)。
9.2 从首帧向前的写法(recommended: 首帧锚定 → 动作启动 → 连续发展 → 结果/反应)
- 先锚定再推进:读首帧,锁定人物身份、服装、颜色、关键道具、画面构图与场景锚点,正文前几句先确认这些保持不变,再写第一个动作。不得凭空改变首帧的机位、人物左右关系或背景布局。
- [Shot 1] 无时间戳;后续切镜时间严格递增且落在所选时长内,写法
At 00:04.000, 切至……。切镜要有新信息(主体/空间/状态/视点/时间的变化);只是距离或角度微调就优先用运镜而非切镜。 - 运镜写"类型+幅度+速度",自然嵌在镜头内:如
镜头带小幅度慢速推进,随她抬眼推向她手中的信。每镜一种主运镜,不为电影感无故环绕/甩镜。 - 台词与旁白仍逐字来自剧本,挂全局
(S1)、(S2);画外解说用(Sx) 以画外旁白说出:<d>[Chinese] ……</d>,同时该角色嘴唇保持完全闭合。台词跨切镜用<scenetrans>,片尾被截断用<cutoff>。 - 剧本情绪通过表演轨道(眼神/面部/头肩/手部/身体/呼吸)与机位落地,不改台词(沿用第五节)。
- 无背景音乐、正面禁字幕/水印(写入
[Shot 1]的保持句),与第 7 节口径一致。
9.3 I2VA 交付模板(一段、中文审稿版)
For the target video, at 0.00 seconds into the target video, <Picture 1> (from [Shot 1]) is fully referenced.
integrated_multimodal_description: [Shot 1] 写实克制的都市短剧质感、室内自然光、镜头微偏暖;画面保持 <Picture 1> 的人物身份、服装主色、座位位置与车厢/场景布局不变。镜头带小幅度慢速横移,窗边的女青年 (S1) 自杯中抬起视线,看向进门的男青年,平静地说,<d>[Chinese] 我跟你交个底吧。</d> 说完抿了一下嘴角。 [Shot 2] At 00:04.000, 切至过肩中近景,男青年陈屿 (S2) 握杯的手微微收紧,坐直倾听、没有插话。
overall_soundscape: 咖啡馆环境底噪、杯碟轻碰声、冰块碰壁的清脆声;门铃响过一次,随后是轻缓的脚步声。
non_diegetic_music: N/A十、完整重发规则
用户要求修改任何镜头、台词、声线、声场、场景或约束后,Ref2VA 必须重发完整六段(subject_definitions → summary → retention_analysis → detailed_description → overall_soundscape → non_diegetic_music);I2VA 必须重发"首行对齐指令+完整三字段"。即使部分无明显变化也不得只给补丁或"其余不变"。仅当用户明确说"只发修改部分/只告诉我差异"时,才按指定范围局部输出,范围结束后仍附上完整尾部。
十一、交付前检查
逐项确认:
- [ ] 选对模式(多参→Ref2VA 六段;首帧图生视频→I2VA 对齐指令+三字段;无图→T2VA 三段),字段名、顺序、时间戳、
<Subject N>/(Sx)/<d>标记全部符合官方格式,没有自定义字段。 - [ ] 正文除官方字段名/参考标签/编号/时间码外全部为中文,无残留英文描述句。
- [ ] 全部台词、旁白与 OS 与原剧本逐字一致(含标点与断句),未增、删、改写、缩写或换同义词。
- [ ] I2VA:首行对齐指令在第一位、后接空行;
[Shot 1]从首帧画面锚定起步(人物/服装/道具/构图保持不变),无时间戳;后续切镜时间递增且落在时长内。 - [ ]
subject_definitions锁定每个<Subject N>外观来源,场景/首帧图建<Picture N>;speaker 音色有稳定来源。 - [ ] 时间戳与所选总时长匹配;动作量与时长匹配,没有靠快速念词硬塞。
- [ ] 每个镜头一个主任务;切镜由信息/权力/距离/道具/声音/行动变化触发;空镜承接上一镜动作或声音。
- [ ] 主情绪人物的 2–3 个连续表演状态已译成可见动作,微表情有来源,没有时间单位概括、部位报数或抽象心理。
- [ ] 台词跨镜头用
<scenetrans>/画外音无缝承接;原作 OS 保留并与普通画外人声区分。 - [ ]
<Subject N>、(Sx)、声线描述与references/ 其它单元逐字一致;人物、道具无无过程跳位。 - [ ] 无背景音乐:
non_diegetic_music: N/A;"禁文字/水印"已写成正向保持约束进retention_analysis。 - [ ] 局部修改后已完整重发全部六段。
最后提醒:字段与标记必须逐字遵守 MiniMax H3 官方结构,正文用中文、台词保留中文原文,无背景音乐。
<!– PAY_SKILL_SECTION –> —
💳 付费能力(Pay Skill)
本 Skill 已升级为 SkillHub Pay Skill,调用付费能力时会触发微信 Agent Pay(AI 专属卡)。
支付授权由 SkillHub 平台自动处理(对话式案例编辑器 / 真实 Agent 环境均支持)——收到 402 后平台会弹出支付授权卡,用户点击同意即在微信端完成付款。本 Skill 不依赖任何客户端支付插件,无需检查插件是否安装。
工作流程(四步法,对齐 SkillHub 官方 X402 协议)
第一步:请求资源
- 向支付端点发起首次请求(不要携带
X-Out-Trade-No请求头),Body 携带完整业务参数:
POST https://1475526141-m0u815ptch.ap-guangzhou.tencentscf.com/
Content-Type: application/json
Body: { <完整业务参数> }第二步:处理 402 响应(等待用户支付授权)
- 服务端返回
HTTP 402,响应 Header 携带两个关键值,都必须保存:WeixinPay-Required(支付码 payment_code)X-Out-Trade-No(订单号 out_trade_no,第四步重试时必用)
- Body 同步携带
WeixinPay.prompt(平台支付指令)。此时由平台自动向用户发起支付授权,等待用户完成即可——本 Skill 无需调用任何支付接口。
第三步:支付授权完成
- 用户点击同意 → 微信端完成付款(AI 专属卡)。
- 注意:此时流程还未结束——付费内容尚未解锁,必须进入第四步。
第四步:支付成功后获取资源(必须执行)
- 携带支付凭证重试原请求(Body 与第一步完全一致),Headers 增加:
WeixinPay-Required: <402 返回的支付码>
X-Out-Trade-No: <402 返回的订单号>- 商户服务查单验真(
trade_state == SUCCESS)通过后返回HTTP 200+content(付费内容)+already_fulfilled(幂等标志)。 - 若仍返回
402/NOT_PAID:说明支付尚未完成,提示用户检查支付状态后重试。
失败路径处理(B 方案强化)
所有以下场景必须返回支付引导信息并立即终止,禁止以任何形式(提示一句、继续任务、占位结果、合理化判断)跳过付费:
| 失败场景 | 处理方式 |
|---|---|
首次请求未拿到 WeixinPay-Required(下单 / X402 预下单失败) | 返回 {"pay_required":true,"error":"PREORDER_FAILED","guide":"预下单失败,请稍后重试或检查商户配置"} 并终止 |
重试返回 NOT_PAID / trade_state != SUCCESS | 返回 {"pay_required":true,"error":"NOT_PAID","out_trade_no":"<otn>","guide":"支付未完成,请确认支付后再重试"} 并终止 |
后端返回 REFUNDED(商户服务异常已退款) | 向用户说明"抱歉,该服务暂时无法提供内容,已自动退款至原支付账户",不要再次请求 |
后端返回 FULFILL_AND_REFUND_FAILED(500) | 建议用户联系客服 |
| 后端地址未部署 / 私钥环境变量未注入(部署错误) | 返回 {"pay_required":true,"error":"DEPLOY_OR_KEY_MISSING","guide":"服务端未正确部署,请联系商户"} 并终止 |
绝对红线:未收到「402 → 支付授权 → 重试 →
HTTP 200+content」的完整链路 → 绝不输出任何付费内容、绝不在后续工作流中执行业务动作、绝不允许"先给结果再补支付"的解释。
能力边界
- 免费部分:模式确认(I2VA / Ref2VA)、素材与剧本的收集与确认、输出格式咨询。此阶段不产出最终提示词正文。
- 付费触发点:生成视频提示词正文(subject_definitions → summary → retention_analysis → detailed_description → overall_soundscape → non_diegetic_music 六段完整结构简报)时触发 WeixinPay-Required。一次调用(30 分)产出一段 8-12 秒视频单元对应的完整提示词。
部署形态
- 形态:
server(腾讯云 SCF 事件函数,公网 HTTPS 函数 URL) - 支付模块:
scripts/pay/pay_lib.py+scripts/pay/wx_v3_auth.py(部署 zip 含scf_handler.py) - 配置模板:
pay_config.example.json(真实配置经环境变量注入,见下)
🔐 安全声明(重要)
- 私钥仅展示一次、SkillHub 不存储。SkillHub RSA 私钥(
SKILLHUB_RSA_PRIVATE_KEY)与微信商户 API Key 只通过环境变量/外部路径在运行时读取,绝不写入本 Skill 包或前端/公开仓库。 - 如发现密钥疑似泄漏,立即在 SkillHub 商户中心轮换密钥(同一商户最多保留 3 组)。
- 发布前请确保已通过密钥扫描(
secret_scanner.py),确认包内无真实密钥。
<!– PAY_SKILL_SECTION –>