法典 · III

买按钮

买按钮

买按钮是你粘贴到任意页面上的几行 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,买按钮就能在那里工作。

属性参考

属性必填接受什么备注
endpointURL 字符串几乎总是省略它。按钮会自动检测其 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 代码,或你自己的单位名银行卡/加密货币渠道用 USDEUR 等。邮寄付款渠道接受任意字符串(例如 GBK),因为是商家自己结算这笔交易。规则与 amount 相同:严格模式下省略,临时模式下对不在目录中的商品必填。
label字符串按钮文字。默认为 Buy。用它来区分同一页面上的多个按钮。
customer-ref字符串,格式由你选买家在你自己系统里的不透明标识符,比如一个登录用户 id。按钮把它作为 metadata.customerRef 转发给 worker,worker 用它给交易打标。之后你就能用你自己的 id 来问“我的哪些用户付过款?”,而我们不持有任何真实的客户数据。匿名结账时省略它。
themedarklight为按钮和弹窗一并选定内置配色方案。默认为 dark。设 theme="light" 用浅色方案。你的 CSS 变量会覆盖其中任一个。见样式指南
editable-amounttruefalse当为 true 时,弹窗会显示一个由买家填写的金额框(打赏、捐款、随心付)。默认为 false,此时你设定的 amount 是固定的且不出现输入框。在金额变为正数之前,付款按钮保持禁用。

一页上的多个按钮

脚本只注册按钮一次,之后任意数量的实例都能在页面上渲染。每个实例彼此独立。下面的例子使用严格模式(默认):HTML 里没有 amountcurrency,因为 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>

如果你的项目处于临时模式(捐款组件、打赏罐),每个按钮也会包含 amountcurrency。完整情况见严格模式 vs 临时模式

按钮主题样式

买按钮在一个 Shadow DOM 里渲染,这意味着你页面上已有的 CSS 都触及不到它。这是有意为之:它让按钮在每个站点上看起来都一致,并阻止一条乱入的 * { box-sizing: ... } 规则破坏选择器弹窗。你从自己的样式表通过两个表面来给它做样式:用于颜色、字体和形状的 CSS 自定义属性,以及用于其余一切的 ::part() 选择器。不涉及任何 JavaScript。

每一个变量和部件都记录在样式指南里,并附有你可以点击和复制的实时示例:

打开交互式样式指南 →

成功与取消网址

当你在后台的“渠道”标签里连接 Stripe 或 NOWPayments 时,你会设置两个网址:

  • 成功网址,买家在付款成功后落到这里。Stripe 和 NOWPayments 会追加一个查询参数(Stripe 是 ?session_id=...,NOWPayments 是 ?NP_id=...),让你的成功页能识别是哪笔交易完成了。大多数静态站点只是显示一句通用的“谢谢,你的付款正在处理中”,并依赖后台作为事实的来源。
  • 取消网址,买家在付款前退出时落到这里。常常和你的购物车页相同。

两个网址都在后台里逐渠道配置,元素无需知道它们。

准备好接起来了吗?

免费档覆盖绝大多数站点,且从不向你要银行卡。