Payment Link
在控制台创建一个固定金额的链接(如 https://pay.35team.com/p/abc123), 发到微信群、邮件、短信、二维码海报,任何人打开都能付款,无需写一行代码。
什么时候用
- 卖标准商品 / 服务包,价格固定,不需要订单系统
- 1v1 收费场景:咨询、定金、私教、答疑
- 线下活动收款,海报印二维码
- 自媒体打赏 / 投稿稿费回收
如果你需要每个订单不同金额、要透传订单 ID、需要程序化创建链接 —— 请走 SDK 或 REST API。
创建一个链接
- 进入 控制台 → Payment Links
- 点"新建链接",填写:名称、金额(单位:元,自动转分)、币种、描述(选填)。 币种下拉框只列出你 已配置 provider 能收的币种; 选完币种会实时显示「客户付款时可用渠道:🟢 微信支付 · 🍋 Creem」
- 选会话有效期,详见 下文 TTL 选项
- 保存后得到一个
https://pay.35team.com/p/<id>链接
没配任何 provider?创建按钮会被禁用并提示去 支付渠道 配。 这样可以避免「选了 USD 但只配了微信」之类的死链:用户打开链接看到「商户暂未配置」。
会话有效期 (TTL)
TTL 是用户打开链接后那一次支付会话的有效期,不是链接本身的有效期。 链接只要"启用"状态,就一直可点;TTL 决定的是用户点开后那个收银台页面多久过期。
- 30 分钟(默认,扫码场景推荐)— 用户当场扫码当场付的典型节奏
- 1 / 2 / 6 / 24 小时— 异步发链接(短信、邮件、IM)推荐 24 小时档,留足往返时间
- 3 天 / 7 天— 销售跟进场景
- 自定义天数 1 ~ 365 天 — 例如活动报名截止前都能付
- 永久— 链接打开后会话永不过期,仅推荐内部 / 长期销售场景
选"永久"意味着已经打开但没付的会话永远占着不释放,控制台报表里也会一直挂着 "pending"。 非必要别选;用 365 天通常已经足够"长期可用"。
高级选项
透传 metadata
创建链接时可以填一段 JSON(控制台「高级 → 透传 metadata」),客户付完款时 webhook 的 data.metadata 会原样带上 + 再叠一个内部加的 paymentLinkId。 典型用法:标记链接来源、销售员 ID、活动场次。
// 创建链接时填的 metadata
{ "campaign": "新春活动", "salesperson": "alice" }
// 客户付完后 webhook 收到的 data.metadata
{ "campaign": "新春活动", "salesperson": "alice", "paymentLinkId": "lnk_xxx" }绑定指定 ProviderConfig
如果同一种 provider 配了多份(如「主号」+「个体户副号」,详见 providerHints), 创建链接时可以指定这个链接收的款只走某一份。 不绑定则按默认 config 走。绑定后退款也会自动走同一份。
用户的体验
- 用户打开链接,35pay 即时为这次访问创建一个新的支付会话(按链接的金额/币种)
- 跳转到托管收银台,根据用户环境自动推荐渠道(微信内 → 微信支付,PC → 桌面渠道)
- 支付完成 → 触发
payment.paidwebhook(如果配置了) - webhook 的
metadata.paymentLinkId可用来识别是哪个链接来的
每次打开都会创建一个独立的 session,所以同一个链接可以被多人使用、统计 useCount, 不会因为一个人付完就失效。
环境
Payment Link 始终走 live 模式,给真实客户付款用。 想测试请用 SDK + sk_test_ Key 走测试流程。
禁用 / 删除
- "停用"会让链接立刻 404,已发出去的链接打不开
- "删除"会硬删,无法恢复。已经付款的交易记录保留不受影响
- 需要改金额?建议新建一个链接,停用旧的(避免追溯歧义)
生成二维码
Payment Link 就是一个 URL,任何二维码生成器都能转成图片。控制台后续会内置二维码下载, 当前可以用 qr-code-generator.com 临时生成。