买按钮
买按钮是你粘贴到任意页面上的几行 HTML。无需框架,你这边也没有安装步骤。按钮在首次绘制时就渲染出来;渠道选择器和各支付渠道的 SDK 会在买家第一次点击时按需加载。它在任何渲染 HTML 的站点或框架里都能用,包括那些允许你粘贴 HTML 嵌入的无代码建站工具。
已确认可用于:Angular、Hugo、Jekyll、纯 HTML、Webflow(Custom Code 嵌入)、Carrd(Embed 元素)、Framer(HTML 嵌入)、Squarespace(Code Block)、WordPress(Custom HTML 区块)、Ghost、Notion 站点(HTML 嵌入小组件)。只要你的站点允许你在页面上粘贴 HTML,买按钮就能在那里工作。
属性参考
| 属性 | 必填 | 接受什么 | 备注 |
|---|---|---|---|
endpoint | 否 | URL 字符串 | 几乎总是省略它。按钮会自动检测其 API 基址:生产环境为 https://api.coinmoebius.com,本地为 http://localhost:8787。只在不寻常的部署(例如 API 前面有一个自托管代理)中将它设为覆盖值。 |
project-id | 是 | 字符串,前缀 proj_ | 来自后台里你的项目页。可以安全地公开,它是一个标识符,不是凭据。 |
product-id | 是(在严格模式下)/ 推荐(在临时模式下) | 字符串,格式由你选 | 你的内部商品标识符。在严格模式(默认)下,worker 据此从你的目录里查找价格。在临时模式下,它仍会以 metadata.productId 透传到你的 webhook,以便你把交易对应回库存。见下方严格模式 vs 临时模式一节。 |
amount | 仅在临时模式下 | 以字符串表示的小数 | 以主单位计的价格(例如美元,而非美分)。必须为正。在严格模式下省略它。worker 会从你的目录读取权威价格,并忽略 HTML 里的任何值。仅在项目处于临时模式且 product-id 不在目录中时必填。 |
currency | 仅在临时模式下 | 三字母 ISO 4217 代码,或你自己的单位名 | 银行卡/加密货币渠道用 USD、EUR 等。邮寄付款渠道接受任意字符串(例如 GBK),因为是商家自己结算这笔交易。规则与 amount 相同:严格模式下省略,临时模式下对不在目录中的商品必填。 |
label | 否 | 字符串 | 按钮文字。默认为 Buy。用它来区分同一页面上的多个按钮。 |
customer-ref | 否 | 字符串,格式由你选 | 买家在你自己系统里的不透明标识符,比如一个登录用户 id。按钮把它作为 metadata.customerRef 转发给 worker,worker 用它给交易打标。之后你就能用你自己的 id 来问“我的哪些用户付过款?”,而我们不持有任何真实的客户数据。匿名结账时省略它。 |
theme | 否 | dark 或 light | 为按钮和弹窗一并选定内置配色方案。默认为 dark。设 theme="light" 用浅色方案。你的 CSS 变量会覆盖其中任一个。见样式指南。 |
editable-amount | 否 | true 或 false | 当为 true 时,弹窗会显示一个由买家填写的金额框(打赏、捐款、随心付)。默认为 false,此时你设定的 amount 是固定的且不出现输入框。在金额变为正数之前,付款按钮保持禁用。 |
一页上的多个按钮
脚本只注册按钮一次,之后任意数量的实例都能在页面上渲染。每个实例彼此独立。下面的例子使用严格模式(默认):HTML 里没有 amount 或 currency,因为 worker 会从你目录里的每个商品查找价格。
<coin-moebius-buy
project-id="proj_YOUR_ID"
product-id="t-shirt-medium"
label="T-shirt (medium)">
</coin-moebius-buy>
<coin-moebius-buy
project-id="proj_YOUR_ID"
product-id="mug-blue"
label="Blue mug">
</coin-moebius-buy>如果你的项目处于临时模式(捐款组件、打赏罐),每个按钮也会包含 amount 和 currency。完整情况见严格模式 vs 临时模式。
按钮主题样式
买按钮在一个 Shadow DOM 里渲染,这意味着你页面上已有的 CSS 都触及不到它。这是有意为之:它让按钮在每个站点上看起来都一致,并阻止一条乱入的 * { box-sizing: ... } 规则破坏选择器弹窗。你从自己的样式表通过两个表面来给它做样式:用于颜色、字体和形状的 CSS 自定义属性,以及用于其余一切的 ::part() 选择器。不涉及任何 JavaScript。
每一个变量和部件都记录在样式指南里,并附有你可以点击和复制的实时示例:
成功与取消网址
当你在后台的“渠道”标签里连接 Stripe 或 NOWPayments 时,你会设置两个网址:
- 成功网址,买家在付款成功后落到这里。Stripe 和 NOWPayments 会追加一个查询参数(Stripe 是
?session_id=...,NOWPayments 是?NP_id=...),让你的成功页能识别是哪笔交易完成了。大多数静态站点只是显示一句通用的“谢谢,你的付款正在处理中”,并依赖后台作为事实的来源。 - 取消网址,买家在付款前退出时落到这里。常常和你的购物车页相同。
两个网址都在后台里逐渠道配置,元素无需知道它们。