收银台(Checkout)是最简单的集成方式——将用户重定向到 Waffo 托管的支付页面,无需处理敏感卡信息。Documentation Index
Fetch the complete documentation index at: https://waffo.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
工作流程
获取收银台 URL
orderAction 是字符串形式的 JSON。先解析它,再根据 actionType 选择 URL:
支付方式前置配置
- 微信支付:如果生产环境需要启用微信支付,请提前将生产域名提交给 Waffo,由 Waffo 向渠道报备
iframe 嵌入注意事项
如果通过 iframe 嵌入 Waffo 收银台,需要注意以下问题:必须配置
allow="payment"属性:iframe 标签必须添加allow="payment",否则 Google Pay 等支付方式在 Android 手机上无法使用- Referrer Policy:必须设置为
strict-origin-when-cross-origin,否则微信支付会失败
宽度自适应
禁止使用固定宽度(如width: 700px),否则在不同设备上内容会被截断。建议使用自适应布局:
已知限制
window.open 嵌入注意事项
使用 window.open 打开收银台时:
- 同步调用可以:点击事件中直接
window.open()没有问题 - 异步调用会被拦截:如果在
await之后调用window.open(),浏览器会拦截弹窗。解决方法:先window.open()打开空白页,异步获取 URL 后再赋值;或增加一个确认弹窗让用户手动点击打开 - Apple 移动端:用户手势检测比较严格,异步打开几乎必定被拦截
App WebView 集成注意事项
商户 App 通过 WebView 加载收银台时:- 外部跳转能力:确认 App 和 WebView 允许打开外部 App 或外部浏览器页面。部分钱包会通过 deeplink 或外部页面完成授权,如果限制了会导致支付无法继续
- 下载与复制能力:WebView 默认不一定支持文件下载、复制或长按保存。QR、OTC、银行转账等支付方式可能依赖这些能力
- 回跳 URL 保真:原生 App 与 WebView 之间传递 URL 时,不要改写 URL 或丢弃 query 参数。部分支付方式会在回跳 URL 上追加必要参数
userTerminal:传APP而非WEB,以获取适合 App 端的跳转链接- 支付方式特殊限制:PayPay Smart Payment、Google Pay、Apple Pay、JKOPAY 等限制,参见 支付方式集成注意事项