Stripe 集成
通过 Stripe 接收在线支付:银行卡、Apple Pay、Google Pay。
1. 概述#
Stripe 是一个全球支付平台。在 Cenaly 的目录中,Stripe 可在 46 个国家 集成。Cenaly + Stripe 集成支持:
- 💳 收款 银行卡(Visa、Mastercard、AmEx)
- 📱 Apple Pay / Google Pay — 一键支付
- 💰 收款到账 到您的银行账户
- 🔄 处理退款 从管理后台
- 💵 小费 — 客人在支付时添加小费
- 📊 报表 — 完整的财务分析
2. 要求#
- ✅ Cenaly 账户(在线支付适用于任何计划,包括免费计划)
- ✅ Stripe 账户(在 stripe.com 免费注册)
- ✅ 用于收款的银行账户(以您所在国家的货币)
- ✅ 验证所需文件(护照 / ID、公司文件)
支持的国家#
Stripe 可在 46 个国家集成:
| 地区 | 国家 |
|---|---|
| 欧洲(EEA) | 奥地利、比利时、保加利亚、克罗地亚、塞浦路斯、捷克、丹麦、爱沙尼亚、芬兰、法国、德国、希腊、匈牙利、爱尔兰、意大利、拉脱维亚、列支敦士登、立陶宛、卢森堡、马耳他、荷兰、挪威、波兰、葡萄牙、罗马尼亚、斯洛伐克、斯洛文尼亚、西班牙、瑞典 |
| 欧洲(非 EEA) | 英国、瑞士、直布罗陀 |
| 美洲 | 美国、加拿大、墨西哥、巴西 |
| 亚洲 | 日本、新加坡、香港、马来西亚、泰国、印度、印度尼西亚 |
| 中东 | 阿联酋 |
| 大洋洲 | 澳大利亚、新西兰 |
3. 创建 Stripe 账户#
步骤 1. 注册#
- 前往 stripe.com → Start now
- 输入邮箱并创建密码
- 确认邮箱
步骤 2. 企业验证#
Stripe 会要求:
| 文件 | 描述 |
|---|---|
| 企业类型 | 个体经营者、有限责任公司、个人 |
| 名称 | 法定名称和商号 |
| 地址 | 公司法定地址 |
| INN / Tax ID | 税务识别号 |
| 负责人证件 | 护照或 ID 卡 |
| 银行信息 | IBAN 或账号 |
| 业务描述 | “餐厅 / 咖啡馆 / 外卖” |
验证通常需要 1–3 个工作日。
步骤 3. 获取 API 密钥#
- 在 Stripe 仪表板中:Developers → API keys
- 复制:
- Publishable key (pk_live_...)
- Secret key (sk_live_...)
4. 连接到 Cenaly#
连接的是 您自己的 Stripe 账户:客人的钱直接进入您的 Stripe 余额,Cenaly 不持有这些资金。
打开 应用商店 → “财务”类别 → Stripe 卡片 → “设置” — 集成区块会以弹窗形式直接在商店中打开。常规路径同样可用:门店 → 门店卡片 → “支付”标签页(“客人支付”部分),Stripe 卡片旁的 “连接” 按钮。
连接向导(推荐)#
分步向导(约 10 分钟)引导您完成整个过程,并显示在 Stripe 仪表板中应点击的位置:
- 选择模式 — 测试或正式。Stripe 中的模式和 Cenaly 中的“测试 / 正式”开关必须一致。
- 复制密钥 — Developers → API keys:Secret key(
sk_test_…/sk_live_…)为必填,Publishable key(pk_…)为可选。 - 添加 webhook — Developers → Webhooks → Add endpoint,然后在 Endpoint URL 字段中粘贴向导通过“复制”按钮提供的 Cenaly webhook 地址。没有 webhook,Stripe 不会通知订单已支付,订单可能会停留在“等待”状态。
- 选择事件 — 在“Select events”区块中,务必添加
checkout.session.completed(正是它确认订单支付),对于延迟支付方式,还要添加checkout.session.async_payment_succeeded和checkout.session.async_payment_failed。然后点击“Add endpoint”。没有这些事件,webhook 虽已创建,但不会通知支付情况。 - 复制 Webhook signing secret(
whsec_…)— 可选字段,但有了它才能启用通知签名验证。 - 连接 — 输入的值会发送到受保护的后端。
简短表单#
如果您已经知道 Stripe 中各项的位置,请打开内联集成表单并填写相同的字段:Secret key、Webhook signing secret(可选)、Publishable key(可选)以及模式开关。
5. 支付方式设置#
银行卡#
连接 Stripe 时自动启用:
- Visa / Mastercard — 所有国家
- American Express — 大多数国家
- Diners Club / Discover — 部分国家
Apple Pay 和 Google Pay#
Cenaly 中没有单独的开关:支付在 Stripe Checkout 托管页面上进行,因此钱包在 Stripe 一侧启用。
- Google Pay — 连接 Stripe 后立即可用(Android、Chrome)。
- Apple Pay — Stripe 要求验证域名:Settings → Payment methods → Apple Pay → Add new domain。验证后按钮将出现在 iOS/Safari 上。
其他方式#
通过 Stripe Dashboard 可以启用:
| 方式 | 国家 | 说明 |
|---|---|---|
| iDEAL | 荷兰 | 银行转账 |
| Bancontact | 比利时 | 银行转账 |
| SEPA Direct Debit | EU | 从银行账户扣款 |
| Przelewy24 | 波兰 | 在线支付 |
| giropay | 德国 | 银行转账 |
| EPS | 奥地利 | 银行转账 |
| Boleto | 巴西 | 付款凭证 |
在 Stripe Dashboard → Settings → Payment methods 中启用所需方式。
6. 小费#
设置#
- 门店 → 门店卡片 → **“通用”**选项卡 → **“小费”**开关。
- 工作原理:
| 参数 | 说明 |
|---|---|
| 建议金额 | 预设值按门店所在国家/地区填入:美国为 18/20/25 %,加拿大为 15/18/20 %,格鲁吉亚为 10/15/20 %;在日本、中国和韩国,小费区块隐藏 |
| 自定义金额 | 客人输入自己的金额 |
| 默认小费 | 无 — 客人自行选择 |
| 分配 | 小费政策(直接给服务员或按工时池分配)在 员工 → 工资 部分设置 |
客人看到的样子#
选择菜品后付款时:
您的订单:45₾
添加小费?
[ 10% (4.50₾) ] [ 15% (6.75₾) ] [ 20% (9.00₾) ] [ 其他金额 ]
[ 无小费 ]
合计:49.50₾ [支付 →]
小费报表#
财务部分:
- **“概览”**选项卡 — 该期间的小费总额,并与上一期对比;
- **“销售”**选项卡 — 按服务员细分的小费。
7. 提现到您的账户#
Stripe 如何打款#
客人支付 → Stripe 扣留 → 经过 T+2 天 → 款项到达您的账户
| 参数 | 值 |
|---|---|
| 标准提现 | T+2(2 个工作日后) |
| 加速提现 | T+1(在部分国家可用) |
| 即时提现 | Instant Payouts(一小时内,收取额外手续费) |
| 最低提现 | 1€ / 1$ / 1₾ |
设置时间表#
在 Stripe Dashboard → Settings → Payouts:
- 每日(推荐)
- 每周(指定星期几)
- 每月
8. Stripe 手续费#
| 地区 | 手续费 | 示例 |
|---|---|---|
| 欧洲(EEA) | 1.5% + 0.25€ | 订单 50€ → 手续费 1.00€ |
| 英国 | 1.5% + 0.20£ | 订单 £50 → 手续费 £0.95 |
| 美国/加拿大 | 2.9% + $0.30 | 订单 $50 → 手续费 $1.75 |
| 国际卡 | +1.5% | 来自其他国家的卡额外收取 |
| 货币转换 | +1% | 如果卡币种 ≠ 账户币种 |
9. 退款#
通过 Stripe 退款可从两个地方发起 — 取决于订单的处理方式。
网店退款(RMA)#
- 退货部分 → 申请卡片。
- 选择退款模式:退回原支付方式(Stripe)、礼品卡(store credit)或换货。
- 勾选项目(全额或部分退款),并决定是否将商品退回仓库。
- 款项直接从页面发出;通常 5–10 个工作日到达客人卡上。
收银退款#
在 POS 中退款凭收据办理 — 全额或部分,也有带转售的换货。此时现金班次必须处于开启状态。
在 订单 部分的订单卡片中,可以看到已办理退款的标记及申请链接。
10. 安全#
PCI DSS#
- Cenaly 不存储卡数据 — 全部由 Stripe 处理
- Stripe 已通过 PCI Level 1 认证(最高级别)
- 卡数据经过加密和令牌化
3D Secure#
- 对 EU 卡自动进行 3D Secure 验证(SCA/PSD2)
- 降低欺诈和拒付
- 对客人:在银行应用中确认
Radar(防欺诈保护)#
Stripe Radar 自动阻止可疑交易:
- 异常的购买模式
- 黑名单中的卡
- 地理位置异常
11. 测试#
在投入生产前请测试:
Stripe 测试卡#
| 卡号 | 结果 |
|---|---|
| 4242 4242 4242 4242 | 支付成功 |
| 4000 0000 0000 3220 | 3D Secure |
| 4000 0000 0000 9995 | 被拒绝(余额不足) |
| 4000 0000 0000 0069 | 卡已过期 |
CVV:任意 3 位数字。日期:任意未来日期。ZIP:任意。
如何测试#
- 连接时选择 “测试模式” 开关(每个服务商都有自己的开关)。
- 使用测试密钥(pk_test_...、sk_test_...)— 以及在同一个 Stripe 测试模式下创建的 webhook。
- 下一个测试订单 → 用测试卡支付。
- 在 订单 部分检查订单状态 — 应变为“已支付”。
- 一切正常后 — 用 “生产” 模式下的正式密钥重新连接服务商。
12. 其他支付服务商#
对于不支持 Stripe 的国家,或作为补充——以下服务商已可接入:
| 服务商 | 国家 | 说明 |
|---|---|---|
| PayPal | 几乎全球 | 覆盖范围最广 |
| BOG iPay | 🇬🇪 格鲁吉亚 | Bank of Georgia,在格鲁吉亚很受欢迎 |
| TBC Bank | 🇬🇪 格鲁吉亚 | TBC 的电商收单 |
| Square | US, CA, GB, AU, JP, IE, FR, ES | 托管支付页面(Payment Links) |
| Airwallex | EEA, UK, APAC, 美洲, 以色列 | 多币种托管支付 |
| PayTabs | 沙特阿拉伯、阿联酋、埃及、科威特、阿曼、约旦、巴林、卡塔尔 | 海湾和中东地区 |
| iyzico | 🇹🇷 土耳其 | 银行卡和分期付款(taksit);分期手续费由客人在订单金额之外支付 |
另有 94 家服务商(Adyen、PayTR、ЮKassa、LiqPay、Mercado Pago、Razorpay 等)已在列表中,但显示为灰色——集成仍在测试中。完整概览见支付部分。
接入任何服务商:应用商店 → “财务”分类 → 服务商卡片 → “配置”,或通过常用路径门店 → 门店卡片 → **“支付”**标签页。
13. 常见问题#
我什么时候能收到钱?#
支付后 2 个工作日(T+2)。首次打款可能需要 7–14 天(Stripe 验证账户期间)。
客人想用现金支付——怎么办?#
“现金”和“货到刷卡”方式始终可用,无需支付服务商——客人在结账时选择,由收银员完成收款。此时不会使用 Stripe;如果您接入了税控硬件,收据在收银机开具(见税务合规)。
可以同时接入 Stripe 和 BOG iPay 吗?#
可以。在“支付”标签页可以同时启用多个服务商——结账时客人会看到每个服务商对应一个按钮,按钮上标注服务商名称。
Stripe 封禁了账户——怎么办?#
- 检查邮箱——Stripe 会发送原因
- 通常需要额外验证
- 联系 Stripe Support:support.stripe.com
- 封禁期间可以使用其他服务商
如何降低手续费?#
- 鼓励使用 EU 银行卡支付(1.5% 而非 2.9%)
- 大额款项使用 SEPA(0.35€ 固定费)
- 流水较大时(>100K€/月)——向 Stripe 申请专属费率
14. 支持#
- Stripe: support.stripe.com
- Cenaly: support@cenaly.com → 主题“Stripe / 支付”
- Stripe Status: status.stripe.com(检查运行状态)