部署
从一句话到可访问的线上网站
1. 平台自动托管
在创作台描述页面、业务和数据结构。智能体生成多文件项目后,平台自动执行 db.sql、打包 Worker、部署并生成预览。默认地址是 <空间编号>.uuni.cc,活动期间平台自动托管免费。
这是默认模式,不需要 Cloudflare 账号,也不需要填写 API Token。
如果需要绑定自己的域名,可以自行部署到自己的 Cloudflare,或通过微信/WhatsApp 联系客服 +86 155 2940 6364 协助操作。
2. OAuth 独立部署到自己的 Cloudflare
独立部署全程使用 OAuth 授权,不填写 Account ID,也不粘贴 API Token。OAuth 授权完成后会自动读取可用的 Cloudflare 账号。
先绑定付款方式并开通 R2
R2 需要单独开通订阅。免费额度内通常不会产生费用,但在 Cloudflare 完成 checkout 前不能创建 Bucket,Worker 也不能绑定 R2。
- 进入 Cloudflare Manage Account → Billing → Payment,添加可用付款方式。支持 Visa、Mastercard、PayPal、Apple Pay、Google Pay 和银联等。
- 进入 Storage & databases → R2 → Overview,完成 R2 开通 checkout。R2 是月度订阅。
- 确认 R2 已启用并且可以创建 Bucket,然后回到本页点击「CF 部署」。
CF 部署
确认已经开通 R2 后,从这里开始 OAuth。授权成功会自动创建 D1、R2、执行数据库并部署 Worker;失败时会在这里显示原因。
平台还没有配置 Cloudflare OAuth Client。
- 绑定付款方式并完成 R2 开通。
- 回到本页点击「CF 部署」,在 Cloudflare 页面选择自己的账号并授权。
- 授权成功后平台自动创建或复用
uuni-<空间编号>的 D1 和 R2。 - 执行作品
db.sql,上传 Worker,并绑定 DB、FILE、BUCKET 和 PID。 - 如果启用了 workers.dev,会返回自己的 workers.dev 地址。
也可以导出项目后在自己电脑使用 Wrangler 部署:
# 部署到自己的 Cloudflare 账号
npm i -g wrangler
wrangler login
wrangler deploy
3. 购买域名并绑定 Worker
推荐在 Cloudflare Registrar 搜索并购买域名。Cloudflare 支持 PayPal 结算;国内用户可以先在 PayPal 绑定银联卡,实际可用卡种和结算方式以 PayPal 与 Cloudflare 收银台为准。
- 在 Cloudflare Registrar 完成搜索、购买和续费设置。
- 结算选择 PayPal,必要时使用已绑定银联卡的 PayPal 余额或银行卡支付。
- Cloudflare 购买的域名默认使用 Cloudflare DNS;外部域名需要把 NS 改到 Cloudflare。
- 进入 Workers & Pages → 对应 Worker → Settings → Domains & Routes。
- 选择 Add Custom Domain,填写自己的域名并确认 DNS 与 HTTPS 证书。
- 验证根域名和
www跳转是否正常。
4. 上线前检查
- 手机和桌面都能正常打开。
- 表单、数据库增删改查和登录流程都能完成。
- 环境变量只放服务端,不能出现在浏览器源码。
- 数据库表已通过
db.sql创建,不依赖每次请求临时建表。 - 需要 AI 的功能已准备好自己的百炼 API Key。
小程序开发
uni-app、真机预览与发布
小程序使用 uni-app 前端和 Worker 后端。先告诉智能体要做的功能和页面,再准备 AppID、AppSecret 和代码上传密钥。
1. 注册小程序
打开 微信公众平台,注册「小程序」,完成邮箱激活和主体认证。
2. 获取三项凭据
AppID:开发管理 → 开发设置 → 开发者 ID。AppSecret:同一页的 32 位小程序密钥,只放服务端。private.*.key:小程序代码上传密钥,用于真机预览和上传版本。
3. 配置服务器域名
真机请求必须使用完整 HTTPS 地址,例如 https://<空间编号>.uuni.cc/api。在微信后台的 request、uploadFile 和 downloadFile 合法域名里加入同一个域名。
微信不支持通配符,一个空间一条,最多 20 条。开发者工具的「不校验合法域名」只对模拟器有效。
4. 预览与发布
对智能体说「预览」生成真机二维码,二维码约 25 分钟有效;说「发布」上传版本,最后到微信后台提交审核。
AI 大模型开发
百炼 Key、接口地址与 AIGC 提示词
1. 申请百炼 API Key
- 登录 百炼 API Key 页面。
- 按 官方 Key 获取说明 开通模型服务并创建 API Key。
- 把 Key 发给智能体后,才能开始编写语音、图片、视频、数字人、音乐和 3D 等 AI 功能。
- 部署时把 Key 配到服务端环境变量
DASHSCOPE_API_KEY,不要写进前端或源码。
https://bailian.console.aliyun.com/cn-beijing/model/settings/api-keyhttps://dashscope.aliyuncs.comhttps://dashscope.aliyuncs.com/compatible-mode/v12. 可生成的 AI 功能
3. AIGC 提示词模板
提示词里先说交付物、输入素材、数量、规格、风格和不能接受的偏差;生成视频时先定旁白和 SRT,再出分镜图。
文案与客服
根据我的商品和用户问题,生成一套客服话术、商品卖点和售后退款说明。语气自然,不夸大功效,不承诺无法保证的物流时效。
商品图
用统一的水彩绘本风生成 4 张 16:9 商品场景图,每张展示一个不同使用场景,主体保持一致,画面不要出现文字。
语音旁白
用温暖自然的女声朗读下面的文案,并附上同步字幕。字幕要跟旁白自然对齐。
声音克隆
使用我上传的 10–20 秒清晰人声样本创建专属音色。样本至少包含 5 秒连续朗读,不要背景音乐、噪音或其他人声。先确认我拥有声音本人的授权,再创建音色并用同一目标模型合成试听。
短视频
把一个产品卖点拆成 4 幕:痛点、方案、使用效果和行动提示。先写英文旁白,再为每一幕配一张画面,最后做成带同步字幕、自然转场的短视频。
数字人口播
用我上传的单人正面照片和一段旁白,做一个人物自然说话的口播视频。保持人物长相和画面风格一致,输出 16:9,声音和嘴型要自然对齐。
视频对口型
用我上传的人物视频和一段清晰音频做口型替换。保持原视频的人物、背景和镜头不变,只让嘴型跟音频同步,最后给我可以直接播放的视频。
AI 音乐
为「清晨手冲咖啡」生成一段 30 秒轻柔原声配乐,木吉他、轻打击乐、没有歌词,节奏舒缓,适合短视频背景,避免音量盖过旁白。
3D 模型
根据「低多边形咖啡杯」这个描述生成可导出的 3D 模型,棕色陶瓷杯身、白色杯垫、简洁卡通比例;同时生成一个可旋转查看的网页预览。
4. AI 代码安全规则
- Key 只从服务端环境变量或 Secret Store 读取。
- 浏览器网络请求不能携带百炼 Key。
- 日志只保留
request_id,不能打印 Authorization。 - 图片、视频等异步任务要保存 task_id、轮询、超时并及时转存结果。
跨境电商
店铺模板、PayPal、国际货源与履约
1. 先用「店铺模板」创建网站
在应用模板里选择「店铺模板」。它会生成商品、订单、设置、消息和媒体路由,数据库使用 D1,文件使用 R2。
先完善品牌名、货币、运费、退换货政策、隐私政策、联系方式和服务条款,再加入真实商品。
2. 接入自己的 PayPal
- 登录 PayPal Developer 创建应用。
- 先用 Sandbox 的 Client ID 和 Secret 跑通下单、付款和回调。
- 确认金额、币种、库存扣减和重复回调都正确,再切换 Live。
- Secret 只保存在店铺后台或服务端加密配置里。
sb-kudcs52819726@personal.example.comGn1?Cv%m3. 找货与选品
4. 有人下单后怎么发货
- 店铺订单先进入「待处理」,付款成功后才允许采购。
- 到供应商后台下单,收货地址填客户地址。
- 支付供应商后记录采购单号和预计处理时间。
- 供应商发货后,把承运商和追踪号写回订单。
- 客户可在订单页查物流;超时未发货时发送提醒或退款。
MVP 先采用人工采购履约最稳。供应商提供 API 后,再自动创建采购单和同步追踪号。
5. 虚拟商品自动交付
店铺模板除了实体商品,也适合卖课程、电子书、模板、软件授权和卡密。虚拟商品没有物流,订单付款成功后应立即创建一次性交付凭证。
付款后显示课程页、视频播放器或短时有效的下载地址。
从可用库存中原子领取一条,并绑定到订单;不能重复发给两个买家。
付款后写入会员档位和到期时间,由服务端在每个受保护页面校验。
给「店铺模板」增加虚拟课程商品:付款成功后自动解锁课程页,未付款用户看不到视频和下载地址。课程可以分章节,订单页能永久查看已购买课程。先接入 PayPal Sandbox,完成支付回跳、幂等和权限校验。
给「店铺模板」增加卡密商品:后台批量导入卡密,用户付款成功后原子领取一条并绑定订单,卡密不能重复发放。库存为零时停止销售,订单页可以随时重新查看已领取的卡密。
6. 跨境经营注意事项
- 明确售价是否含税、运费、关税和清关责任。
- 不要虚报库存和到货时间。
- 保存采购、物流和售后证据。
- 按目标市场处理隐私、退款、电子通信和消费者权益要求。
会员订阅变现
三级会员、到期与 PayPal
1. 会员网站怎么开发
用「店铺模板」做收费前台,或让智能体生成独立的会员网站;服务端维护套餐、订单和会员到期时间。用户付款后写入一条已支付订单;每个会员页面或 API 先调用统一的权益校验,再决定是否放行。
- 定义三级套餐和每档功能。
- 创建 PayPal 订单并记录本站订单号。
- 付款回跳后捕获订单,核对金额和币种。
- 写入会员到期时间,再发放权益。
- 每次访问受保护内容时检查登录身份和到期时间。
2. 三级套餐示例
基础课程、公开模板、赠送 1,000 点万能余额。
全部课程、商用模板、赠送 5,000 点万能余额和优先支持。
全部权益、月度源码包、团队席位和 15,000 点万能余额。
title 只表示权益:基础、专业、高级或单独的余额包;quota 是跨业务通用的万能余额。会员赠送余额和单独购买余额进入同一个余额池。
3. 一张订单表就够
参考 uuni-vue-ai:不单独建会员表、套餐表或余额表。每买一次会员或余额包就写一条订单;订单的 title 是会员套餐名称或余额包名称,quota 是可以扣所有计费项目的万能余额,expires_at 决定权益是否过期。
title:权益名称,例如“基础月会员”“专业月会员”“1000 点余额包”。kind:区分会员、万能余额包、虚拟商品、实体商品。quota:万能余额。按次、按 token、按张、按秒、按设备时长都先折算成余额单位,再从这里扣。status:pending / paid / refunded / cancelled。paid_at、expires_at:付款时间和权益到期时间。trade_no:PayPal capture id,用于对账和退款。
当前时间往前一年内、状态为已支付且未过期的订单,合起来就是用户当前的会员权益和可用余额。会员档位取有效订单中的最高档;万能余额把所有有效订单的剩余 quota 相加。
quota 余额池。4. 到期、续费与升级
- 有效会员:
status = 'paid' AND expires_at > 当前时间。 - 同级续费:从当前到期时间继续加 30 天;已过期则从现在开始加 30 天。
- 升级:新订单立即生效,访问权限取当前有效的最高档;旧订单仍保留用于对账。
- 降级:当前高级权益到期后,才回落到仍有效的低档订单。
- 每次请求都按数据库实时判断,不能只信浏览器 cookie 里的“会员已开通”。
续费写新订单,不改旧订单。会员是否有效实时读取订单表,不能只相信浏览器 cookie 或前端显示。
5. 接入 PayPal 订阅收款
- 服务端创建 PayPal Order,把本站订单号写入
custom_id或invoice_id。 - 用户批准后跳回站点,服务端 capture,不能只相信前端“支付成功”。
- 核对金额、币种、订单状态和本站订单号。
- 用唯一订单号和已支付状态做幂等,避免刷新回跳重复开通会员。
- 正式上线可增加 webhook,处理用户付款后没有回到网站的情况。
sb-kudcs52819726@personal.example.comGn1?Cv%m6. 可直接交给智能体的提示词
做一个会员网站:用邮箱作为用户身份,PayPal 收款,设置基础、专业、高级三级月付套餐。只建一张 orders 订单表,title 直接保存套餐名称,expires_at 保存到期时间。付款回跳后捕获 PayPal 订单并幂等开通 30 天;同级续费从当前到期时间顺延,升级立即生效。读取最近一年内已支付且未过期的订单,取最高档作为当前会员权益。先接入 PayPal Sandbox 完整测试支付、续费、过期和重复回跳。
给会员网站增加万能余额:每档会员赠送不同数量的 quota,title 表示套餐权益,quota 表示可用于所有按次、按 token、按张、按秒和按设备时长消费的通用余额。用户使用时按统一价目表把本次用量折算成余额并扣减,优先扣最快过期的有效订单。quota 用完时提示单独购买余额包或升级会员。
给网站增加单独购买万能余额的入口:余额包作为 kind=quota 的订单,title 写“1000 点余额包”等名称,不附带会员等级,PayPal 付款成功后增加 quota。余额和会员权益都从最近一年的有效已支付订单计算;每次按次、token、图片或时长的消费都写独立流水,但统一从 quota 扣减,重复回调不能重复加余额。
广告变现
AdSense、联盟广告与内容站
1. 创建一个独立内容站
在创作台描述分类、文章、后台和订单需求,用 Hono SSR、D1 和原生表单生成内容站。先持续发布原创内容,再申请广告。
2. 申请 Google AdSense
- 准备独立域名、清晰导航、关于我们、隐私政策、联系方式和原创文章。
- 在 Google AdSense 添加网站并完成所有权验证。
- 按提示放置审核代码或
ads.txt,等待审核。 - 通过后使用响应式广告位,不要把广告伪装成导航或下载按钮。
3. 联盟广告
可选择与内容主题匹配的 SaaS、旅游、工具或电商联盟。优先选择与受众真实需求一致的产品。
4. 广告位建议
- 文章标题下放一个横向广告,正文中段放一个原生广告。
- 移动端避免固定遮挡内容的悬浮广告。
- 广告和正文之间留出明显间距,加“广告”标识。
- 记录每个联盟链接的点击和转化,不要只看页面浏览量。
流量
SEO、AEO/GEO、Google 收录与三方流量
1. SEO 网站流量:先让 Google 能搜到
- 网站必须是公开 HTTP 200,不能有全局
noindex,也不能只靠 JavaScript 才有正文。 - 每页有唯一
title、description、H1 和 canonical。 - 生成
sitemap.xml和robots.txt,不要在 robots 里误屏蔽整站。 - 把网站加入 Google Search Console 并验证所有权。
- 提交 sitemap,对首页和新文章请求编入索引,再到 Pages 报告检查抓取和收录状态。
- 新站通常需要几天到几周被发现和收录,不是提交后立即排名第一。
2. AEO / GEO:让大模型更愿意推荐
先做好 SEO,再做 AEO(Answer Engine Optimization)和 GEO(Generative Engine Optimization)。SEO 保证网站能被搜索和抓取;AEO/GEO 进一步让搜索引擎摘要、ChatGPT、Gemini、Perplexity 等答案引擎更容易理解、引用和推荐你的页面。
检查 robots.txt 和 Cloudflare 安全策略,不要把合法 AI 搜索爬虫全部挡掉。若希望被检索,至少保留 OpenAI、Google、Perplexity 等搜索相关爬虫的公开访问。
页面开头用 2–4 句直接回答核心问题,再用定义、步骤、对比表、价格和 FAQ 展开。大模型更喜欢结构清楚、可独立引用的段落。
统一品牌名、产品名、价格、所在地、服务范围和联系方式;加入 Organization、Product、FAQPage、Article、LocalBusiness 等 JSON-LD schema。
标注作者、更新时间、数据来源和引用链接。第三方媒体报道、行业目录、真实评价和一致的公司资料能增强模型对品牌的信任。
- 每个页面只解决一个明确问题;标题直接写用户会问的话。
- 用表格回答“是什么 / 多少钱 / 怎么选 / 和谁对比”这类高频问题。
- 可以生成
llms.txt帮助 AI 工具发现核心页面,但它不是保证收录的标准。 - 在 Google Search Console 和访问日志里观察 AI 来源,给链接加 UTM 记录 ChatGPT、Perplexity、Gemini 等 referrals。
- 持续更新内容,保持同一事实在全站和第三方平台一致,禁止批量生成无信息量的页面。
3. 三方平台流量
三方平台负责曝光和信任,网站负责承接、留存和成交。同一个核心主题可以拆成短视频、图文、问答和长教程,但必须针对平台重新表达。
- 视频平台:YouTube、TikTok、抖音、B 站、Instagram Reels。
- 图文平台:小红书、公众号、Instagram、Pinterest。
- 问答和社区:Reddit、Quora、行业论坛、相关微信群或 Discord。
- 主页或评论区给出清晰网站入口,不要每个平台都用同一套硬广文案。
4. 一条内容分发到多个平台
- 先写一篇可被搜索的完整教程,这是长期资产。
- 拆出一个 60 秒视频脚本和 3–5 个观点卡片。
- 生成 16:9、9:16 和 3:4 三个画幅版本。
- 每个平台用不同的标题、封面和开头,结尾引导访问网站。
- 网站链接统一加 UTM,区分平台和内容主题。
https://example.com/guide?utm_source=youtube&utm_medium=video&utm_campaign=paypal-guide
5. 衡量结果
不要只看播放量。完整链路是:Google 收录或平台曝光 → 网站点击 → 阅读或注册 → 加购或付费 → 复购。Search Console 看 SEO 曝光、点击和收录;分析工具看来源、落地页和转化;三方平台看主页点击与内容留存。
物联网变现
MQTT、智能设备、无人空间与按次收费
1. 适合先做的场景
扫码选时长或金额,付款后启动,按分钟或电量计费。真实汽车充电桩应使用支持 OCPP 1.6J / 2.0.1 的交流桩或控制器,不能拿普通智能插座替代。
付款后启动洗衣机,显示倒计时;门磁、漏水、断电和急停状态必须回传。商用洗衣设备建议通过干接点、继电器或厂商接口控制。
会员扫码开门,按时段或月卡收费;联动门禁、灯光、空调和储物柜。需要断网离线开门、消防应急开门和完整进出记录。
预订时段并付款后发送门锁密码,开始前开灯和空调,到时提醒并断电。门锁、电源和网络必须解耦,避免断网把用户锁在房内。
2. 平台 MQTT 怎么接
平台已有 MQTT 长连接和 HTTP 发送接口。服务端负责校验会员、余额、订单和设备权限,再向 MQTT 发布命令;浏览器永远不接触 MQTT 用户名和密码。
POST /mqtt/send
x-token: <服务端 MQTT 发送令牌>
{
"device": "DVES_93D417",
"payload": "ON",
"wait": true,
"timeoutMs": 5000
}
- 当前实现兼容 Tasmota 的
cmnd/<device>/POWER和stat/<device>/#。 - 量产时必须使用 TLS MQTT、每设备独立账号、主题 ACL 和命令幂等号。
- 付款成功不能直接等于设备执行成功,要记录“已支付 → 已下发 → 已回执 → 已完成”。
- 断网、超时、设备离线要自动退款或释放余额。
3. 买什么成品设备
原生支持 MQTT、HTTP 本地接口和功率计量,适合做 MVP 原型。购买:Shelly 官方商城,部分型号可在 Amazon 购买。
常见 ESP 系列智能插座,部分硬件可刷 Tasmota 或 ESPHome。购买:Sonoff 官网、ITEAD 官方店 或 AliExpress。购买前确认具体硬件版本兼容性。
成品多、适合批量找货,可用 Tuya Cloud API;要本地 MQTT 时需选择明确支持本地协议的产品。采购:涂鸦智能、1688 或阿里国际站。
4. 推荐标准固件
5. 收费和订单设计
继续复用一张订单表:会员月卡、按次启动、预充值万能余额和充电时长都能作为不同 kind / title 的订单。设备会话单独记录开始、结束、用量和从 quota 扣减的余额。
做一个共享设备小程序:用户扫码选择套餐并 PayPal 付款,服务端确认订单后通过 MQTT 启动设备。设备回执成功才进入使用中,显示倒计时;结束、离线或异常时停止计费并按规则退款。后台能查看设备在线状态、订单和每条 MQTT 命令。
做一个无人健身房会员系统:三档月会员附带不同数量的万能余额,最近一年有效订单计算会员权益和 quota。会员扫码开门按价目表扣除万能余额,并记录进出日志;余额不足时提示续费会员或单独购买余额包。
6. 上线前硬件检查
- 设备断电、断网、重启后能否恢复正确状态。
- MQTT 断线重连、重复命令和乱序回执。
- 急停、消防、漏电保护和人工远程断电。
- 设备身份、主题 ACL 和命令签名,禁止一个设备控制其他租户设备。
- 支付成功但设备启动失败的自动退款流程。
- 目标场所的消防、用电、经营许可和隐私要求。
7. 设备配置与扫码支付联动(原型)
正式接入时,设备配置从浏览器本地上传到平台,并绑定商家、支付商品和允许执行的 MQTT 命令。用户扫码付款后,服务端先验证支付回调,再把设备命令放入队列;只有设备回执成功,订单才进入“已完成”。
设备名称、节点、发布主题、状态主题、命令、参数格式、QoS、超时、回执字段、商家 ID、支付商品和上下线状态。
创建订单 → 生成扫码页或二维码 → 支付平台回调 → 验签和幂等 → 发布 MQTT 命令 → 等待设备 ACK → 更新使用状态。
设备保存到平台后,可以让智能体读取设备名称、命令、价格和支付方式,生成扫码支付网页或微信/支付宝小程序。商家必须先提供服务商身份和支付密钥,智能体只使用平台提供的下单接口,不接触密钥原文。
商家支付密钥必须通过平台后台加密绑定,不能填写在设备公开配置、提示词或二维码中。
pending → paid → dispatched → acknowledged → active → finished
paid → dispatch_failed → refunding → refunded
POST /api/iot/devices/:id/publish
{
"merchant": "merchant_01",
"product": "start-30-min",
"orderId": "order_123",
"command": "start",
"idempotencyKey": "merchant_01:order_123"
}
- 二维码只承载订单号,不直接承载设备私钥或 MQTT 凭证。
- 支付成功页不能直接触发设备,必须由服务端验签后的回调触发。
- 同一个订单重复回调只能发送一次命令,设备端也要按命令 ID 去重。
- 设备离线、超时或启动失败时应停止计时,并按规则退款或释放余额。
- 商家支付密钥只保存在服务端 Secret,前端和设备都不接触。
支付接入
微信、支付宝、PayPal、MoR、数字货币与统一订单
1. 先选支付渠道
支付方式按用户地区、经营主体和商品类型选择。所有渠道共用一套订单和 entitlement 逻辑,只把“创建支付、确认付款、退款”做成不同适配器。
适合中国大陆微信内和扫码场景。需要符合微信支付准入的商户主体;小程序虚拟商品还要核对平台虚拟支付规则。
适合中国大陆网页和扫码。通过支付宝开放平台申请应用,签约电脑网站支付或手机网站支付;主体要求以产品页面为准。
适合跨境和海外用户,个人可以先注册 PayPal 个人账户开始测试和收款;正式经营、信用卡和高级 API 能力通常建议升级商家账户。
由 Paddle、Lemon Squeezy 等厂商作为名义卖家代收款、税费、发票和退款,适合跨境数字商品和 SaaS。
仅适用于允许的地区和合规业务。需处理价格波动、链上确认、反洗钱、税务和退款,不能面向中国大陆提供人民币—加密货币兑换服务。
2. PayPal:个人可以先申请
- 注册 PayPal 账户并完成邮箱和身份验证;先用 Sandbox 跑通流程。
- 登录 PayPal 开发者后台 创建 REST App。
- 服务端使用 Client ID 和 Secret 创建订单、跳转审批、回跳 capture。
- 核对金额、币种、订单号和付款状态,幂等更新本地订单。
- 正式收款前检查账户能力、提现地区、费率、退款和消费者保护要求。
sb-kudcs52819726@personal.example.comGn1?Cv%m3. 微信支付与支付宝
mchid:微信支付商户号。appid:公众号、小程序或开放平台应用 AppID。APIv3 Key:32 位 API v3 密钥,用于回调解密。- 商户 API 证书序列号
serial_no。 - 商户私钥
apiclient_key.pem。 - 微信支付平台证书或平台公钥,用于回调验签。
notify_url:公网 HTTPS 支付通知地址。- JSAPI / 小程序支付还需要付款人的
openid。 - H5 支付还需要
app_name、app_url和scene_info。
MCH_ID=
APP_ID=
WECHAT_API_V3_KEY=
WECHAT_CERT_SERIAL_NO=
WECHAT_PRIVATE_KEY_PATH=
WECHAT_PLATFORM_PUBLIC_KEY=
WECHAT_NOTIFY_URL=https://example.com/pay/wechat/notify
app_id:开放平台应用 ID。APP_PRIVATE_KEY:应用私钥,只放服务端。ALIPAY_PUBLIC_KEY:支付宝公钥,用于验签。- 如果使用证书模式:应用公钥证书、支付宝公钥证书、支付宝根证书。
notify_url:异步通知地址,必须是公网 HTTPS。return_url:用户付款后浏览器回跳地址。sign_type=RSA2。- 电脑网站支付使用
product_code=FAST_INSTANT_TRADE_PAY。 - 手机网站支付需要签约对应的手机网站支付产品。
ALIPAY_APP_ID=
ALIPAY_PRIVATE_KEY=
ALIPAY_PUBLIC_KEY=
ALIPAY_NOTIFY_URL=https://example.com/pay/alipay/notify
ALIPAY_RETURN_URL=https://example.com/pay/return
ALIPAY_GATEWAY=https://openapi.alipay.com/gateway.do
ALIPAY_SIGN_TYPE=RSA2
4. MoR 记录商户厂商
MoR(Merchant of Record,记录商户)不是普通支付网关。它以厂商自己的名义向最终买家收款,代为处理销售税、VAT、发票、退款和部分合规责任,再把净收入结算给卖家。适合跨境 SaaS、课程、软件、会员和数字下载。
- 接入通常是托管 Checkout + webhook,不需要自己保存信用卡。
- 资金先进入 MoR,再按结算周期打给卖家;不是实时进入 PayPal。
- 费率通常高于普通支付网关,因为包含税务、合规和退款处理。
- 卖家所在国家、产品类型、提现银行和结算币种需逐家确认。
- 本地订单保存
channel=mor:{provider}、厂商订单号、状态、金额、退款和结算记录。
5. 数字货币接入
数字货币只作为跨境可选渠道。可以使用托管支付服务,也可以自建 BTCPay Server。订单金额需要锁定短时汇率,到账以链上确认为准,不能只相信钱包页面截图。
- 生成独立收款地址和应付金额,设置 15–30 分钟报价有效期。
- 监听链上交易并等待规定确认数,再标记 paid。
- 记录网络、币种、交易哈希、确认数、实际到账和汇率。
- 超额、少付、重复支付、过期和退款都要人工或规则化处理。
- 在法律、税务和支付合规未确认前,不要向用户开放该渠道。
6. 统一支付订单和代码结构
不同渠道共用一张订单表,用 channel 区分;数据库里保存统一金额、状态和渠道交易号,渠道原始响应放进 meta。
- 统一字段:
no、channel、trade_no、amount、currency、status、created_at、paid_at。 - 统一接口:
createPayment、capturePayment、verifyNotify、refund。 - 订单幂等键:
channel + no;会员或余额到账只能执行一次。 - 密钥全部放服务端 Secret,网页只拿必要支付参数。
7. 可直接交给智能体的提示词
做一个多支付渠道商城和会员网站:统一一张 orders 表,用 channel 区分微信、支付宝、PayPal、MoR 厂商和数字货币。MoR 渠道支持 Paddle、Lemon Squeezy、Creem、Polar 或 FastSpring 的托管 Checkout 与 webhook,记录厂商订单号、状态、退款和结算。每个渠道实现 createPayment、capturePayment、verifyNotify、refund 适配器;支付成功统一幂等更新订单,再按 title 开通会员或按 quota 增加万能余额。PayPal 支持个人账户申请,先接 Sandbox 并用测试买家账号跑通;微信、支付宝必须使用自己申请主体下的测试商户。数字货币只在符合当地法律的跨境场景启用。所有密钥只放服务端环境变量。
8. 上线前检查
- 不同渠道回调都验签、核对金额并支持重复通知。
- 少付、超额、币种错误、过期和退款都有明确状态。
- 会员和万能余额不能因为重复回调重复到账。
- 渠道密钥、平台证书和个人收款账户权限最小化。
- 每日对账:本地订单、渠道账单、退款和手续费一致。