建立一个像Paypal一样完整的在线支付网关

169

这个问题不是关于将现有的支付网关集成到我的网站中。这更像是一个架构问题。

我想要构建一个类似于Paypal的系统。现在,我知道Paypal在一个平台下提供了很多功能,而且我不能一次性实现所有功能。我想要实现Paypal和其他类似服务的核心功能。

所以我的问题(或者说讨论)是如何构建这样一个系统。以下是需要讨论的一些要点:

  1. 通过现有银行处理支付。我猜想我需要访问当地银行协议才能做到这点。
  2. 允许用户安全地存储和处理他们的付款
  3. Paypal如何处理交易?

有什么想法吗?


3
这个问题得到了很多赞。我想知道现在是否更难获取白皮书等信息,因为这些平台不希望这些信息容易被获取。 - filthy_wizard
非常正确。我看到很多好问题不幸被打击了。 - Ralph Dingus
2个回答

231
你所说的是成为一个支付服务提供商。我曾经做过这个,大约10年前比现在容易得多,但如果你有大量时间、金钱和耐心,仍然有可能实现。
你需要联系一家收单银行。你没有说你在世界的哪个地区,但我的意思并不是当地的银行分支机构。每家主要银行通常都会有一个独立的卡收单部门。所以在英国,我们有(例如)Natwest银行,它使用Streamline(或Worldpay)作为其收单部门。尽管我们有许多主要银行,但它们最终都会使用五个左右的卡收单。
令人高兴的是,所有英国的卡收单都使用标准的授权请求通信协议和日终结算。你会发现一些收单银行支持一些功能并具有略微不同的语法的小问题,但差异相当小。英国标准由Association for Payment Clearing Services (APACS)(现在称为UKPA)发布。这些标准仍然通常被称为APACS 30(授权)和APACS 29(结算),但现在正式称为APACS 70(书1至7)。
尽管APACS标准在英国广泛得到支持(Amex和Discover也接受此格式的消息),但其他国家并不使用该标准,每个国家都有自己的标准。例如:法国的Carte Bancaire、意大利的CartaSi、西班牙的Sistema 4B、丹麦的Dankort等。正在努力统一欧洲的协议 - 参见EPAS.org
与收单银行的通信可以通过多种方式进行。同样,这将取决于您的地区。在英国(和大多数欧洲国家),我们有一个通信网关,可提供与所有主要收单机构的连接,它们被称为TNS,有许多通过它们与收单银行通信的方式,从拨号9600波特调制解调器、ISDN、HTTPS、VPN或专用线路。最终,授权请求将转换为X25协议,这是这些收单银行彼此通信时使用的协议。
因此,总之:这完全取决于您的地区。
  • 联系一家大型银行,并尝试联系他们的卡收购部门。
  • 解释您正在设置为支付服务提供商,并请求有关授权请求和日终结算文件通信格式的详细信息
  • 设置测试商户帐户,并开发授权/结算软件并通过认证过程。大多数收单机构会免费帮助您完成此过程,但当您想注册为认可的PSP时,一些收单机构会要求收取费用。
  • 您还需要遵守一些法规,例如您可能需要注册为支付机构
一旦您注册并获得认证,您就可以代表银行接受客户并设置商家账户(请记住,每个收单机构通常支持多个银行)。根据需要使用其他收单机构进行重复操作。
除此之外,您还将面临许多其他问题,主要是与PCI-DSS有关。这是一个完全不同的话题,在本网站上已经有一些问答。就像我所说的,这是一个惊人的任务-即使对于一个相当规模的团队来说,可能也需要数年时间,但这是可行的。

1
谢谢Paul,这是很好的信息。这正是我在寻找的。我们的一个客户正在寻找在南亚实施的解决方案。我们不是100%确定,因此在SO上提出了问题。 - Obaid
1
感谢@PaulG,我也很感激你的回答。请问一下,什么是卡收购部门?这是否与提供商家银行处理器的机构相同?你能否给我提供任何相关参考资料? - Frank Myat Thu
@GaretClaborn 你好,我在哪里可以找到与我的后端集成的卡网络API?这些API可以在线找到还是我需要先联系收单银行,他们会提供我所需的API? - kd12345
1
@kd12345 这有点取决于你的目标。肯定有像Square和Stripe这样的卡片API,可以让你接受卡片付款。还有像Payum这样的库,或者更好的Payum服务器,可以让你使用一个更简单的API控制50多个支付网关API。许多银行都提供API,例如Chase和Wells Fargo,具有公共开发人员文档,用于其他交易。https://cryptoapis.io/是连接许多加密货币交易API的示例API。当然,如果你有银行联系,你可能会获得更专业的私人金融API的访问权限。 - That Realty Programmer Guy
@Multiplexor,我怎么能联系到你? - Ibrahim Hammed
显示剩余3条评论

-11

大任务,你不应该重复造轮子,而是使用现有的轮子(如PayPal)。

然而,如果你坚持继续。从小做起,你可以使用信用卡处理设施(Moneris、Authorize.NET)来处理信用卡。大多数提供商都有API可供使用。请注意,您可能需要使用不同的提供商,具体取决于卡类型(Discover、Visa、Amex、Mastercard)和国家(美国、加拿大、英国)。因此,请构建它,以便您可以与多个信用卡处理API进行通信。

如果您正在存储信用卡和付款详细信息,则安全性至关重要。确保您正确地加密了这些内容。

再次强调,不要重复造轮子。最好使用现有的提供商,并将开发注意力集中在解决难以轻易购买的问题上。


18
像Venmo这样的公司现在非常成功。因此认为你不能创造一个更好的轮子就因为像PayPal这样的公司已经存在是疯狂的想法。PayPal最新的移动应用程序看起来实际上是重新设计得像Venmo一样。 - Moustache_Me_A_Question
Paypal拥有Venmo。 - Kusal Hettiarachchi
尝试使用LED构建轮子,需要拥有该轮才能这样做。 - Charanjit Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接