@ funnelsgrove/ sdk (英语)
在网络应用中直接嵌入已出版的FunnelsGrove付费墙. 没有后端, 需要密钥,或付费墙会话。 一揽子计划没有框架依赖性.
npm install @funnelsgrove/sdk
执行是释放候选人。 npm 目前包含
仅限元数据 0.0.0-bootstrap.0 保留,没有可执行的SDK代码.
在前端挂载
import { mountPaywall } from '@funnelsgrove/sdk';
const paywall = mountPaywall({
container: '#paywall',
paywallUrl: 'https://pay.example.com/paywall',
...(currentUser.funnelsGroveUserId
? { userId: currentUser.funnelsGroveUserId }
: { email: currentUser.email }),
returnUrl: '/billing/complete',
onReady: ({ userId }) => console.log('Paywall ready for FG user', userId),
onComplete: () => console.log('Payment confirmed'),
onError: (error) => showPaymentError(error.message),
});
// On route change, modal close, or component cleanup:
paywall.destroy();
paywallUrl 是已公布的付费墙路由,没有查询参数或一个
碎片。 生产中使用HTTPS;支持本地host HTTP进行开发.
已出版的漏斗供应其公开的FG密钥和漏斗配置.
提供 FG userId 或电子邮件. userId 是现有的 FG 公开 user_id范围
到这个漏斗和测试/生活环境。 这不是你申请的账号
或者FG的内部行ID。 未知的ID 失败而不创建用户或退后
到电子邮件。 仅通过电子邮件,FG实现常态化并再用,或创建犬类用户.
同一邮件的同步请求汇合到一个用户上 。 如果两个字段都是
但是,它们必须匹配或解析失败。 决议不会改变
现有用户的电子邮件或购买历史. onReady({ userId }) 显示选中的
FG ID; 挂载保存用于后续的提供者返回 。 如果电子邮件表在
paywall 解决另一个所有者, 它显示在 iframe 内部的冲突并保留
当前购买者; 从应用程序中重新打开以选择不同的账户.
这遵循了FG的公测身份模式. 浏览器提供的ID/电子邮件不是 证明一个经认证的应用账户的所有权。 此 SDK 不改变 现有公共用户API的访问模式.
补全并返回 URL
returnUrl 是可选的。 相对的 URL 在应用页面中解决 。 在FG之后
校验成功离职,SDK呼叫 onComplete 每个挂载一次
导航父窗口到 returnUrl。没有它,呼叫者处理
导航 尚未支付或未支付的付款没有重新定向。 目的地被保留下来了
; 无法替换儿童信息。 已配置的重定向仍然运行
若为 onComplete 抛出; 使用回调同步通知和处理
在您的应用程序中调用错误 .
使用已核实的帐单webhooks/订阅状态来批准和取消访问, 包括延期和取消。 浏览器调用和重定向只告诉 用来刷新状态的应用程序.
onError 收到一个 PaywallError 与 code数字 :
paywall_unavailable:重开付费墙或纠正其配置/身份.confirmation_pending: 保留框并使用 检查付款状况。 。 。 .payment_failed: 保留机框让买家再试一次.
SDK 检查消息来源、发送窗口和 iframe 实例,并调整
iframe高处. 设置使用 postMessage; 用户身份和
应用程序返回 URL 在 ifram/ 提供者 URL 中缺失 。 提供者的成功/失败
返回 重新装入 FG 付费墙并恢复原挂载的设置
亲子关系。 在重定向时保持母机挂起 。 被替换的父母或
提供者返回到顶级窗口需要从应用程序重新打开.
固门还原也使用了 sessionStorage 用于其退出 ID; 被屏蔽
存储可以防止重定向恢复。 内置取出不需要存储 .
支付安排和推出
漏斗使用其现有的 Stale/ Solidgate 检查出局,包括符合条件
钱包。 iframe已经 allow="payment *"登记/核查应用程序和漏斗
用于 Apple Pay 的域名,并与提供者配置 Google Pay 。 托管
frame-ancestors 应用 frame-src 政策必须允许预期的起源.
真正的钱包和 3DS 需要提供者/浏览器接受; 本地定着不
建立这种支持.
按依赖顺序公布SDK、运行时间、分析和付款,部署 匹配 API,然后重建目标漏斗。 旧漏斗不懂 这个嵌入式协议。 API 图像在本地 SDK/ 运行时 tarball 之前创建本地 SDK/ runtime tarball npm发布,但促销的CLI门需要公布的包件文物.
这是一套无害环境管理方案。 类型脚本支持 moduleResolution: "NodeNext" 或者说
"Bundler"。没有导入服务器; @funnelsgrove/sdk/embed 是内部
FG跑时桥. 犬科行为和测试绘图在
docs/product-specs/sdk.md。 。 。 .