本页说明如何通过纯 iframe 嵌入方式,将 StablePay Checkout 集成到第三方网站中。
在该模式下,嵌入的 checkout 页面负责展示付款流程并处理用户在 iframe 内的操作;支付结果同步仍应由服务端业务流程和 Webhook 驱动,而不是依赖父子页面前端通信。
适用场景
适合以下场景:
- 希望将 StablePay Checkout 直接嵌入页面、弹窗或抽屉中
- 用户在嵌入页内完成完整付款流程
- 商户通过后端状态流转、订单系统和 Webhook 处理付款结果
不适合以下场景:
- 父页面需要实时感知付款成功或失败
- 父页面需要自动关闭弹窗、刷新订单状态或触发额外前端联动
- 需要父子页面之间通过
postMessage 进行通信
接入原则
- 接入方负责渲染
iframe
iframe src 应使用创建交易时返回的完整 checkout URL
- 不要在前端自行拼接、推导或改写 checkout 路由参数
- 当前 checkout 页面使用 Hash 路由,正式接入时必须保留
#/
- 付款结果确认请使用服务端状态与 Webhook,不要只依赖前端展示结果
推荐接入地址
推荐将创建交易时返回的完整 checkout 地址直接作为 iframe src 使用。
https://checkout.stablepay.co/#/pay/cs_demo_123456/tk_demo_abcdef?lng=en
例如,创建交易接口返回:
{
"payment_url": "https://checkout.stablepay.co/#/pay/cs_demo_123456/tk_demo_abcdef?lng=en"
}
接入要求:
- 接收到完整 checkout URL 后,直接原样放入
iframe src
- 地址中的
#/、语言参数和其他业务参数都必须原样保留
- 不建议接入方自行改写、裁剪或重新拼接路由
嵌入示例
标准示例:
<iframe
src="https://checkout.stablepay.co/#/pay/cs_demo_123456/tk_demo_abcdef?lng=en"
width="100%"
style="border:0;background:#fff;"
referrerpolicy="strict-origin-when-cross-origin"
allow="clipboard-write"
></iframe>
容器示例:
<div style="margin: 0 auto;">
<iframe
src="https://checkout.stablepay.co/#/pay/cs_demo_123456/tk_demo_abcdef?lng=en"
width="100%"
style="border:0;background:#fff;"
referrerpolicy="strict-origin-when-cross-origin"
allow="clipboard-write"
></iframe>
</div>
接入方开发要求
- 建议为
iframe 设置 border: 0
- 宿主页面中的布局、尺寸和滚动行为由接入方自行控制
- 建议预留足够空间,避免在关键付款步骤中出现裁切或双层滚动
安全与网关要求
如果宿主页面启用了 CSP,需要允许 checkout 域名被嵌入,例如:
frame-src https://checkout.stablepay.co;
child-src https://checkout.stablepay.co;
在 checkout 服务部署链路上,不应由网关、CDN 或 ingress 层额外引入以下限制:
X-Frame-Options: DENY
- 会拦截 iframe 嵌入的严格
frame-ancestors 策略
如果宿主页面必须使用 sandbox,建议至少放开以下能力:
allow-scripts allow-forms allow-same-origin allow-popups allow-top-navigation-by-user-activation
如果没有强制的 sandbox 要求,建议不要启用,以减少兼容性风险。
兼容性说明
- 桌面浏览器在纯嵌入展示场景下通常兼容性良好
- 在移动端,部分钱包内置浏览器可能限制 deep link 拉起行为
- 如果某些移动钱包无法在 iframe 内正常打开,建议改为新窗口或全页打开 checkout
- 本页不展开 iframe 之外的钱包专项兼容处理
联调验收项
建议在联调阶段至少验证以下内容:
- checkout 页面可以在 iframe 内正常加载
- 二维码、金额和地址信息展示正常
- 复制类操作可以正常执行
- PC 端付款流程表现正常
- 手机端付款流程表现正常
- 结果页可以在 iframe 内正常展示
- 宿主页面浏览器控制台中未出现 iframe 拦截相关报错
方案边界
- 本方案是纯嵌入展示方案
- 不包含父子页面回调能力
- 不包含支付状态实时前端通知能力
- 不包含自动关闭弹窗或自动跳转商户页能力
如需确定订单最终结果,请结合 Webhook 通知 和服务端订单状态处理。
相关页面
Last modified on June 4, 2026