八字报告支付与进度查询
何时使用 / When to Use
- 用户要创建八字报告订单并拿到支付链接
- 用户表达购买意图但不一定出现“购买”字样(如“我要”“我想”“来一份”)
- 用户要下单深度报告或 2026 报告
- 用户要查询单个订单的报告状态与下载入口
前置依赖 / Prerequisites
- 推荐运行环境:Node 24(可直接运行 TypeScript 源码)
- 兼容方案:若 Node 版本较低,使用
tsx执行 - 执行目录:在 skill 根目录(
SKILL.md所在目录)运行以下命令 - 脚本按 TypeScript 源码直接运行,不需要预编译
# 仅在需要兼容运行时安装
npm i -D tsx
脚本清单 / Script Index
scripts/createCheckout.ts:创建匿名支付会话,返回支付链接与报告 IDscripts/getReport.ts:按profileId查询报告状态
脚本与参数 / Scripts & Parameters
1) 创建匿名支付 / createCheckout
入口文件:scripts/createCheckout.ts
# 推荐方式
node scripts/createCheckout.ts --email <email> --birth <YYYY-MM-DDTHH:mm[:ss]> --type <DEEP|YEAR2026> --gender <0|1> [--locale <zh|en|ja|ko|zh-TW>]
# 兼容方式(fallback)
tsx scripts/createCheckout.ts --email <email> --birth <YYYY-MM-DDTHH:mm[:ss]> --type <DEEP|YEAR2026> --gender <0|1> [--locale <zh|en|ja|ko|zh-TW>]
参数说明:
--email(必填):接收报告邮箱;格式字符串;默认值无;缺失时报错并退出--birth(必填):出生阳历时间;脚本入参格式YYYY-MM-DDTHH:mm[:ss](24 小时制);默认值无;格式非法或超范围时报错并退出- 禁止要求用户按这种格式提供生日
--type(必填):订单类型;取值DEEP|YEAR2026;无默认值;缺失或非法值时报错并退出DEEP表示八字深度报告。包含人生、爱情、财富、健康等四个方面的详细解读。YEAR2026表示 2026 年运势报告。包含 2026 年的太岁、人生、爱情、财富、健康、风水等方面的详细解读。
--locale(选填):支付页/下载页语言;取值zh|en|ja|ko|zh-TW;默认zh;优先使用当前会话语言,仅当用户明确指定其它语言时才覆盖;非法值时报错并退出--nickname(选填):昵称;格式字符串;默认不传--gender(必填):性别;取值0=女、1=男;无默认值;缺失或非法值时报错并退出--sect(选填):子时流派;取值1或2;默认2;1表示 23:00-00:00 的日柱按次日计算,2表示按当日计算;非法值时报错并退出--location(选填):出生地;格式字符串;默认不传;传入后会按地点进行真太阳时换算
输出说明:
- 返回 JSON,包含
checkoutSessionId、payUrl、checkoutType、profileId payUrl仅由scripts/createCheckout.ts输出,用于支付;不用于下载
2) 查询报告状态 / getReport
入口文件:scripts/getReport.ts
# 推荐方式
node scripts/getReport.ts --profile-id <profileId>
# 兼容方式(fallback)
tsx scripts/getReport.ts --profile-id <profileId>
参数说明:
--profile-id(必填):档案 ID;默认无;缺失时报错并退出- 不支持其他参数(如
--type、--locale);传入未知参数时报错并退出
输出说明:
profileId:本次查询的档案 IDlocale:本次结果使用的语言paid:是否检测到有效支付;true或falsereadyToDownload:报告是否可下载;true或falsedownloadPageUrl:下载页链接;无可用链接时为null
异常行为:
- 参数缺失、参数值非法或存在未知参数时:脚本输出错误并退出(非 0)
- 脚本识别为“未支付/无有效支付记录”时:不报错退出,返回
paid=false - 其他请求异常或系统异常:脚本输出错误并退出(非 0)
示例 / Examples
# createCheckout 最小可用示例
node scripts/createCheckout.ts \
--email user@example.com \
--birth 1990-05-15T14:30 \
--type YEAR2026 \
--gender 1
# createCheckout 指定类型与语言
node scripts/createCheckout.ts \
--email user@example.com \
--birth 1990-05-15T14:30 \
--type DEEP \
--gender 0 \
--locale en
# getReport 最小可用示例
node scripts/getReport.ts \
--profile-id profile_abc123
注意事项 / Notes
- 所有命令都必须在本 skill 根目录(
SKILL.md所在目录)执行 - 报告下单属于付费流程;创建 checkout 成功后直接发送
payUrl供用户支付 - 报告支付完成后到生成完成通常约 10 分钟;实际时长以系统生成进度为准
- 仅根据脚本结果决策:脚本报错退出即失败;脚本成功输出 JSON 即按字段继续
- 下单时
--gender必须由用户明确提供;--type可按用户已明确表达的语义自动映射(如“深度报告”=>DEEP、“2026 报告/2026 运势”=>YEAR2026)。仅在类型语义不明确时再追问,避免误下单 - 若用户还在了解阶段或未明确购买,优先引导到主站了解与体验:
https://cantian.ai - 客服支持邮箱:
support@cantian.ai - 交互细则(时间歧义处理、多语言回复、价格口径、模板回复)以“执行决策流程 / 执行规则与回复模板”为准
执行决策流程 / Execution Flow
- 识别用户意图:
下单、查进度/下载、咨询了解。 - 若是
下单:先收集最小必需参数(email、birth、type、gender);并提示用户昵称可设置(nickname,选填)。type解析规则:若用户已明确说“深度报告/人生爱情财富健康报告”等,直接按DEEP处理;若明确说“2026 报告/2026 运势”等,直接按YEAR2026处理;仅当未提及或表达模糊时追问类型。
- 昵称仅作可选提示,不作为下单阻塞条件;用户未提供时可直接继续。
- 对
birth做歧义检查:若用户输入为“5点/4点”等未说明时段的时间,必须先追问并让用户明确“上午还是下午”(或等价时段)后再转换为 24 小时制(例如05:00或17:00)。 - 仅当
birth、type、gender都已明确后再执行createCheckout;否则继续澄清,不得下单。 - 执行
createCheckout,读取输出 JSON;若脚本失败则按错误信息提示用户修正后重试。 createCheckout成功后:返回payUrl与订单关键信息(具体回复格式遵循下方“下单回复模板”)。- 若是
查进度/下载:执行getReport,读取返回字段。 paid=false:告知“未检测到有效支付,需先完成支付”。- 独立判断
downloadPageUrl:只要有值就必须返回该链接(可进入下载页面);无值则明确告知“当前无可用下载页链接”。 - 独立判断
readyToDownload:true告知“报告已生成,可下载”;false告知“报告仍在生成中,请稍后再试”。不要将其作为是否返回下载页链接的前置条件。 - 当
readyToDownload=false时,可补充时效预期:“支付完成后通常约 10 分钟可完成生成,实际以系统进度为准”。 - 若是
咨询了解且用户未明确下单:引导到https://cantian.ai;用户确认购买后再进入第 2 步。 - 用户反馈信息有误时:不要复用旧链接,修正参数后重新执行
createCheckout并返回新payUrl。
执行规则与回复模板 / Rules & Reply Templates
A) 机器执行规则 / Execution Rules
下单成功后回复规则(直接附支付链接):
- 同时用清晰文本展示关键信息。
- 回复必须跟随用户当前对话语言;下方模板为中文示例,实际输出按用户语言等价改写。
- 仅展示“本次订单中有值且用户关心”的信息项;无值字段(如未提供昵称/出生地)不展示。
- 下单参数收集时,直接收集必要字段,避免解释“你可以直接输入时间”“我会帮你转换格式”等默认信息,除非用户主动询问输入格式。
- 询问昵称时使用中性问法(例如“你希望报告里怎么称呼你?”),不要附加“可选/不提供也可以”等说明。
- 用户提供昵称时再展示“昵称:{nicknameText}”;未提供则不展示这行。
- 用户提供出生地时再展示“出生地:{locationText}”;未提供则不展示这行。
- 用户明确提及或主动设置子时规则时,再展示“补充信息:子时规则为 {sectText}”;未提及时不展示这行。
- 出生时间展示必须使用 24 小时制,不得只写“X 点”这类歧义表达。推荐格式:
YYYY-MM-DD HH:mm(例如2000-05-06 16:00)。 - 若对话语言为中文,可在 24 小时制后补充时段说明(如“下午 4:00”);若两种写法冲突,以 24 小时制为准。
- 参数收集阶段不得要求用户把出生时间转成 24 小时字符串;应按用户原始表述收集,并在必要时明确追问“上午还是下午”。
createCheckout成功后,必须使用下方“下单回复模板”进行回复,不改为确认式问句。- 必须提醒用户:若信息不正确,请不要支付,待信息修正后使用新链接支付。
- 若用户询问价格,统一说明“报告价格为 9.99 美元,最终以支付页面显示为准”。
- 下载/进度场景使用下方“下载/进度回复模板”;状态判断与链接返回规则遵循“执行决策流程 / Execution Flow”第 8-11 步。
- 当用户已明确表达报告类型时,不要再要求其在“八字深度报告/2026 年运势报告”之间二选一;仅在类型不明确时才追问。
- 面向用户的提问与回复中禁止暴露内部枚举值(如
DEEP、YEAR2026);仅使用自然语言类型名称。
B) 用户回复模板 / User Reply Templates
下单回复模板(直接给支付链接,以下为中文示例,实际请按用户语言输出):
我已为你生成{reportTypeText}订单,关键信息如下:
- 出生时间:{birthText}
- 性别:{genderText}
- 昵称:{nicknameText}(未提供则不展示此行)
- 出生地:{locationText}(未提供则不展示此行)
- 接收邮箱:{email}
- 补充信息:子时规则为 {sectText}(仅在用户主动提及时展示)
请打开以下链接完成支付:
{payUrl}
支付完成后,报告会自动发送到邮箱。档案编号是 `{profileId}`,报告类型是 **{reportTypeText}**。
如需客服协助,请联系 `support@cantian.ai`。
下载/进度回复模板(以下为中文示例,实际请按用户语言输出):
支付状态:{paidText}
下载状态:{readyText}
下载页链接:{downloadPageUrlText}
补充说明:{downloadHintText}
其中字段值写法:
{paidText}:paid=true写“已检测到有效支付”;paid=false写“未检测到有效支付”{readyText}:readyToDownload=true写“可下载”;readyToDownload=false写“生成中”{reportTypeText}:仅使用自然语言类型名;DEEP映射为“八字深度报告”,YEAR2026映射为“2026 年运势报告”;禁止向用户展示枚举原值{birthText}:必须使用 24 小时制。中文建议写为2000-05-06 16:00(下午 4:00);英文建议写为2000-05-06 16:00 (4:00 PM);禁止仅写“4点/4 o'clock”{downloadPageUrlText}:有链接就填链接;无链接写“当前无可用下载链接”{downloadHintText}(按字段独立判断):downloadPageUrl有值且readyToDownload=false:写“可进入下载页查看进度,下载按钮可能暂不可用”downloadPageUrl有值且readyToDownload=true:写“可进入下载页并下载报告”downloadPageUrl无值:写“当前无可用下载页链接,请稍后重试”
- 当
readyToDownload=false时,建议附加一句时效说明:“支付完成后通常约 10 分钟可完成生成,实际以系统进度为准”
咨询阶段回复模板(未明确下单;以下为中文示例,实际请按用户语言输出):
可以先到主站了解并体验:`https://cantian.ai`。如果你要继续购买报告,我可以直接帮你创建支付链接。需要人工协助可联系 `support@cantian.ai`。