分享

使用第三方支付集成到底有何风险?

 方珺逸 2015-11-15





作者:BeeCloud创始人兼CEO黄君贤


现在,互联网由于模式跟技术的进步,其对我们生活方式的改变几乎是无孔不入。诸多web、app等在不断满足人们的细分需求的同时,尽量将其提供的服务闭环化。

  而在这个闭环的服务过程中,支付无疑是一个重要的节点。诸如游戏、电商、视频、旅游、教育、医疗,甚至天气应用都开始在应用内推出付费服务。

然而,对于这些应用来说,横亘在开发者面前的就是,支付接入问题。微信支付、支付宝、银联支付……看似便捷的支付渠道,在真正对接的过程中,才会发现技术困难重重。

  因此,一些类似于BeeCloud这种专业的支付渠道集成商便开始出现。而许多人在考量使用第三方支付集成的时候,首先要担心的就是,把如此重要的支付环节让第三方来集成,是否有什么风险?(以下是BeeCloud创始人兼CEO黄君贤的观点)



使用第三方支付集成,风险有没有?确实有,主要在几方面:

1、 服务的稳定性



  使用了第三方的支付服务,势必会涉及与第三方的服务器通讯。比如BeeCloud的做法是把后端完全打包,客户端通过一个统一的REST API与BeeCloud通讯,BeeCloud负责与微信,银联,支付宝的服务器通信,这样开发者完全不用写后端的代码了。但是如果第三方支付集成的服务器挂掉,那支付就会受到影响。



2、支付参数的安全性



  如果使用第三方支付集成,难免涉及到与我们共享一些支付的参数,比如微信的AppID和AppSecret等。这些参数如果被偷,能够多大坏处,不好说,因为据我所知,黑客如果拿到这些参数,最多只能给商户打钱,而无法从里面取钱。所以风险在于支付参数的安全性,资金的安全性是完全无关的



3、客户端的bug



  如果是iOS和Android,需要引入第三方支付集成的客户端SDK,这个SDK中如果有一些bug,比如iOS里调用了一个nil对象的方法,Android里的NPE都会导致app崩溃,第三方SDK导致app crash是引入第三方SDK的最常见的问题之一。

  需要澄清的一点,有人会提到,资金安全方面,BeeCloud完全在资金的闭环之外,完全不参与资金的清算,钱直接从用户的账户到商户在微信支付宝银联的账户里,我们没有做代理清算。做了代理清算是不是不安全有待商榷,但是我们这样完全不做代理清算的话,资金安全由支付宝微信银联直接保证的,他们做的有多安全,用了我们的就有多安全。

  回到主问题,既然使用第三方支付集成存在这些风险,那么是否表示一定不能用这类第三方服务呢?

  我觉得不然,即使是站在一个客观的角度。

  节省开发周期,节约开发的时间和人工成本,快速接入,这些都是显而易见的好处,我暂且放下不说。针对我刚才提到的3点风险,我做一个分析:



1、服务端稳定性

  



  支付的服务是需要backend的支持的,比如算签名,比如从支付渠道那里接收支付结果的回调,比如记录支付结果,这一类的服务都需要云端的服务器的支持,因为这些事情是客户端不可能做到的。有了云端的服务器,就会有稳定性的风险,那这个选择就在于你是希望自己来take care一切,还是把其中的一部分(比如支付)的稳定性的保障交给一些人(比如BeeCloud)来take care?我回国之前就在美国硅谷上班,那里各种第三方技术服务的使用习惯很好,一个网站或者一个app基本都是各种第三方服务拼装起来的,我们的榜样stripe就是这个例子。国内目前对这个第三方服务的接受度也是在逐步提高的。我永远都不会说BeeCloud是完美的,但是我们一直在努力解决我们遇到的各种问题,比如如果一台服务器故障,如何保障服务不会宕掉,比如突发的高并发如何处理。无论是稳定性,还是性能都是影响终端用户付款体验的重要部分,无论是否使用第三方的集成服务,如果你们产品交易量不小的话,我建议都需要找一个专业的团队设计实现支付的后端架构,因为支付毕竟是产品的各种组件中至关重要的一个部分,如果出问题会带来直接的经济损失。



2、支付参数的安全性




  我个人觉得这个问题不大,我相信所有的第三方支付集成公司都会加密存储的,除非后端的服务器被黑了。但是这些参数与网上爆出的用户密码泄露不同,密码泄露有直接的坏处。可是支付参数的话,黑客拿到这些参数能干嘛呢?我想来想去他们能做的就是给你们的公司打钱,貌似也不是啥坏事。微信支付宝银联对于资金的管控还是比较严格的,我们在做SDK的时候,虽然对接他们的系统很复杂很麻烦,但是从安全的角度考虑,很多的步骤真的是必须的。



3、客户端的bug




  我觉得这个问题和1是一样的,还是那个选择的问题,你是愿意自己take care这些bug的处理(因为你就算自己实现,也有可能引入各种bug),还是把支付的客户端业务交给第三方的SDK提供方来take care。其实换一个角度,因为一个SDK被各种不同的客户用过,有各种bug肯定会被各种客户发现然后修正,经过了一段时间的积累,SDK的那部分代码出错的可能会远小于自己去从头实现一套自己的客户端。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多