订阅:对 iDEAL 的支持

如何在订阅页面添加 iDEAL 支付?
我们在插件中输入的价格是含增值税还是不含增值税?

1 个赞

您能具体说明一下这是什么意思吗?

这取决于您,因为该插件仅作为与 Stripe 的接口,并非完整的产品计费服务。

1 个赞

iDeal 是一种常用的荷兰支付方式。

2 个赞

感谢澄清,@RGJ

@PatrickH 很遗憾,该插件目前仅支持 Stripe,且未来暂无计划支持其他支付处理器。

1 个赞

好的,但 Stripe 支持 iDEAL。那么我该如何实现呢?

1 个赞

哎呀,抱歉,我没看得够仔细。让我再看看。

编辑:看来我们需要在插件中为这种情况添加一些额外的处理。目前这并不在开发路线图上,但如果有足够的支持(或者有人提交相关 PR),我很乐意将其加入。

2 个赞

@justin 如果你能给我一些基本的指引,告诉我该往哪里看,我可以尝试提交一个 PR。

5 个赞

初看 iDEAL,其设置方式与 3DS 类似。请查看以下提交,了解相关更改的具体位置:

https://github.com/discourse/discourse-subscriptions/commit/9491f558eadb1fcfd2ed71f58bbc2046912cd8fc?branch=9491f558eadb1fcfd2ed71f58bbc2046912cd8fc&diff=unified

关键在于如何同时处理一次性付款和订阅。由于两者在 PaymentIntents 上的处理方式略有不同,因此可能需要进行一些特殊处理。

6 个赞

@RGJ 既然你亲自负责,请检查一下是否有可能添加 Multibanco 和 Klarna。:wink:(我认为它们仅支持单次支付,但还是要确认一下)

2 个赞

所以我花了一些时间研究如何添加 iDeal 支付。实际上,这并非关于 iDeal,而是关于 SEPA 直接扣款。这是一种全欧洲通用的标准,可自动、定期从借记账户中扣款。

SEPA 直接扣款流程需要一份授权书,其核心就是 IBAN(银行账号)。

流程大致如下(https://stripe.com/docs/billing/subscriptions/sepa-debit):

  • 客户选择“SEPA 直接扣款”作为支付方式
  • 显示一个 IBAN Stripe 元素,客户输入其银行账号
  • 为验证该账号,客户必须使用此银行账号成功完成一笔支付。
    这通常是订阅首个周期的扣款,或 0.01 欧元。
    在荷兰,此步骤使用 iDeal 支付(https://stripe.com/docs/sources/ideal/recurring)。如果使用 iDeal,客户需从下拉列表中选择其银行,随后被重定向至该银行网站。他们需使用双因素认证(2FA)机制(通常是智能手机上的应用扫描二维码,或硬件令牌)来授权支付。随后,他们可选择性地被重定向回原网站,而支付确认则通过直接 Webhook 完成(不经过浏览器,而是在支付处理器与网站之间直接进行)。
    看起来这仍处于测试阶段,而且目前使用 Stripe 接受 SEPA 支付似乎并不需要此验证步骤(?)
  • 客户接受标准授权文本
  • 创建一个 SetupIntent 对象

此后,流程与信用卡支付流程类似。

鉴于该插件的复杂性以及此流程的繁琐,我目前无法(即:技能尚不足)为此创建 PR。但我愿意提供帮助并提供测试资源。

支持 SEPA 将对欧洲市场迈出一大步,因为在欧洲,信用卡在广大消费者市场中仍不普及(我认为仅约 15% 的在线支付使用信用卡)。

9 个赞