订阅移动开发RSS CSDN首页> 移动开发

【CTO讲堂】支付接入开发的陷阱有多深?

发表于2015-10-27 15:04| 次阅读| 来源CSDN| 0 条评论| 作者蒲婧

摘要:支付开发都面临哪些挑战?支付渠道接入背后都有哪些技术陷阱?数据备份方面是如何规划的?“仅需3行代码,无需SDK,一键轻松接入”这轻松实现的背后都用到哪些技术?本文为Beecloud创始人黄君贤在CTO讲堂的分享。

为了帮助IT从业者职业之路拥有更多收获,在诸多C粉的殷切期待下,由CTO俱乐部打造的CTO线上讲堂自登场以来获得大家好评。本期邀请Beecloud创始人黄君贤带来“支付接入开发的陷阱有多深? ”的主题分享。

欢迎加入CTO讲堂微信群与业界大咖零距离沟通,10月29日本期讲堂报名方式拖至文末查看。


分享嘉宾:Beecloud创始人 黄君贤

嘉宾简介:黄君贤,现任比可网络科技有限公司董事长兼CEO。清华大学本科毕业后获得美国密歇根大学全额奖学金攻读并获得计算机博士学位。曾在微软亚洲研究院,微软硅谷研究院,AT&T研究院和Google硅谷总部从事计算机网络和移动互联网研发。

2014年4月从美国硅谷回国,创办比可网络科技有限公司(BeeCloud),专注于支付云服务。目前,已获得FreeS峰瑞资本与极客帮资本的天使轮投资。 作为典型的技术型创始人,他自己本身就是名骨灰级的移动开发者,09年学生时候就作为个人开发者开发过百万级用户的APP,深知移动开发的痛点。

公司简介:BeeCloud为开发者和企业提供一站式支付解决方案。通过提供易用友好的支付SDK,几行代码高效实现网页、APP支付功能,并提供可靠稳定可靠的分布式云后端服务,保障支付流程安全流畅。BeeCloud现已支持移动支付、网页支付、线下扫码多种支付场景,支持PC,iOS,Android,H5等多开发平台,让开发者无需后端服务器即可高速集成支付宝、银联、微信等主流支付渠道。

产品介绍

  • “秒支付”是BeeCloud针对支付集成这一痛点推出的系列产品,开发者不需要自己搭建支付模块写冗长代码直接接入“秒支付”,几分钟就可快速完成支付功能开发。

  • 继秒支付SDK之后,团队今年5月份推出颠覆性产品秒支付Button,完全无需SDK,三行代码即可完成网页支付的集成。除了为开发省力,BeeCloud 也同时支持支付订单管理统计以及企业级私有云部署等定制化支付方案设计。

以下是10月23日CTO讲堂现场完整速记:

主持人:今天CTO讲堂正式开始啦,嘉宾是BeeCloud的创始人兼CEO黄君贤,请您给大家做个自我介绍吧。

黄君贤:大家好  我叫黄君贤,是BeeCloud的创始人兼CEO。BeeCloud是一家提供一站式支付解决方案的公司。

我本人本科毕业于清华大学计算机专业,之后去美国密歇根大学攻读博士学位。毕业后在Google硅谷总部从事计算机网络和移动互联网研发,14年回国创立BeeCloud。今天很高兴和大家在CTO讲堂做分享和探讨。

主持人:很开心您能来分享,那么是在什么情况下您开始了BeeCloud创业之旅,最初的创业方向是怎么确定的呢?

黄君贤:我应该算是全球最早的一批移动开发者之一。2008年在美国密歇根大学读博时,我选择的研究方向是移动互联网。那年,苹果刚刚推出了iPhone SDK,当时应用商店的应用寥寥无几。那期间,我开发了一款App,是一个基于手机壁纸的社交网络,用户可以上传自己喜欢的壁纸,同时可以Like别人上传的壁纸,这款应用累计有超过300万用户。

这个产品与后来的instagram还挺像的,虽然最后没有成功成为我的第一个正式的创业项目,但是过程中,在我心中种下了为开发者服务的种子。后来回国创业,经历了各种打磨,最后决定专注于做支付方向。行业里面有很多不同的团队围着共同的目标做着方式不同的努力,我觉得是好事。

主持人:请介绍一下目前BeeCloud的情况以及技术团队构成。

黄君贤:最开始的时候,我们是一帮清华计算机系还有我和一些Google的朋友一起张罗的这个项目,现在我们有一个20人的团队,就像所有精炼的技术型创业公司一样,我们90%都是研发人员。目前在北京和苏州都有office。最近也正在北京招兵买马。我们在技术上追求极致,要做就做最好的。

主持人:欢迎大家加入BeeCloud~哈哈,那么现在请您谈谈支付开发都面临哪些挑战?

黄君贤:这一点,我小小展开讲一下,为我们,还有其他友商做点广告,因为现在大多数团队还是要么不知道我们这样的服务,要么对接入我们以及类似服务存在犹疑。

一方面,如果你是第一次做支付开发,项目需要同时接几个支付方式,那前期要分别向每个第三方支付(就是支付宝,微信这些),各银行申请账号,通道,或进行商务洽谈,每个渠道都要一两周左右的沟通审核期,加上后面研读每家的文档,分别coding、调试,非常费时费力,可能一两月都搞不定。而且下次你在做另外一个项目的支付接入时,还要几乎做同样重复费力的工作。我们最近就在帮一家机构做跨境支付的解决方案,这一方面的痛点尤为明显。

另一方面,就是支付流程的风险承担。因为涉及到资金交易,所以本身支付开发就比较敏感,每个环节要都要推敲。支付功能上,会涉及到支持退款,对账和差错处理的运营工作以及风险控制; 另外对不少创业团队来讲,服务器是否能支持支持高频次,高并发的支付请求也是一个挑战 (比如项目做营销活动时你的交易量可能突然暴涨);此外你还要防止中间人攻击导致支付数据泄露、订单被黑客恶意篡改等外在风险。

最后一方面就是支付体验的优化。比如客户下单时,发起支付响应时间过长会直接导致订单流失。现在支付场景的很多样化,应用内支付,网页支付,微信公众号支付,线下扫码支付,项目选择什么样的入口可以提高下单成功率、体验上更加流畅,这些可能是立项时就要考虑的。

还有与支付配套的数据统计分析服务,订单,退款,对账管理服务等SaaS服务,也都是必须的。作为一个程序员,我创立BeeCloud的初心就是为这个群体服务,避免大家重复造轮子。

主持人:请您介绍一下BeeCloud目前的产品及服务?最初的产品路线选择方面是怎么考量的?

黄君贤:BeeCloud目前提供一站式的支付集成、订单管理、后期运维服务。目前,我们的秒支付已集成支付宝 、银联、微信 、易宝、京东支付、百度钱包、快钱等主流第三方支付方式,支持iOS 、Android 、HTML5 、PC Web等主流开发平台。(部分直连银行的接口也会逐步加上,比如民生电商,平安银行等接口,这些主要是为大企业服务的)

除了开放的API,开源的SDK这些标准模块,BeeCloud也支持企业级私有云部署等定制化支付方案设计。

从支付场景上,除了普通的app支付以外,PC网页支付,线下扫码/被扫支付,跨境支付,B2C(商户给用户打钱)等都是我们支持的。总之我们的目标是让钱能够从源头安全流畅地流动到它需要去的地方,从某种程度上来说,这可以被理解为互联网时代的一个类似于高速公路的基础设施。

BeeCloud的产品设计思路是先深入切入某一些客户的全部需求,为这一部分客户提供极致的体验,然后再横向拓展到其他客户。作为一个创业团队,这样的产品路线规划能够保障团队能够更专注地为一批客户提供最优质的服务,而不是将“饼”摊得太薄。这一块我们也非常愿意直接与客户深入交流,获得第一手的反馈,来逐步打磨我们的产品。在我看来,真正好的产品绝不是设计出来的,而是用出来的,通过真实的使用快速迭代才可以的。

主持人:那么到底什么是秒支付呢?可否从实际客户案例的角度来阐述一下应用场景?

黄君贤:秒支付是一款友好易用的支付集成开发工具,开发者不需要自己写客户端和服务端的冗长代码,直接接入秒支付,短短几行代码就可实现移动支付功能。目前有秒支付SDK和秒支付Button两个产品系。双十一我们会推出线下收款新品“秒收款”。所有的产品,都是专注于为开发者与商户提供最好用的支付解决方案。

主持人:“仅需3行代码,无需SDK,一键轻松接入”这轻松实现的背后都用到哪些技术?

黄君贤:这是说的我们团队今年4月份推出产品秒支付Button,完全无需SDK,三行代码即可完成网页支付的集成。群里都是技术大拿,我就直接跳进去讲讲技术细节。三行代码分别是做什么的呢?

第一行代码通过后台自动生成的JS将支付有关的UI组建,业务流程通过云端可控的方式动态加载;然后通过一行简单后端代码算得支付订单签名,防止支付信息被篡改;最后一行代码传入必须的支付参数,调起支付按钮。

我截个图给大家看看。


在PC浏览器里,秒支付Button点开之后就是这样一个可以选择不同支付方式的选择框。


在手机浏览器里,会自动适配成这样子的展现形式。如果在微信浏览器里,还会根据user-agent自动匹配成微信公众号内的支付,而不是PC网页上的微信扫码支付。

开发者如果需要在PC网页,移动网页或者微信众公号里加入支付功能,用3行代码即可。这一点我们不同于其他友商,秒支付Button的接入没有任何SDK,不需要升级维护。是一个纯动态加载的方案,开发者只需要在BeeCloud后台改配置即可。

主持人:相比其他公司类似产品,BeeCloud提供的服务竞争力体现在哪些方面?

黄君贤:一方面,对于复杂的交易场景和订单系统,BeeCloud可以为企业提供定制化服务,我们依托自己的技术优势,早期重在在服务一批大客户。

另一方面,BeeCloud的产品更贴近开发者,比如说秒支付Button这一产品,免去了SDK的需求,让开发者省掉了需要去定期update的烦恼;

又比如说iOS/Android的app支付,只需要做client端的开发,后端的开发由BeeCloud后台全部打包完成,包括对高并发的支持,灾备的支持,数据的自动备份,都由BeeCloud的后端云服务自动解决。

刚才也有同学问到,这一点是我们和国内其他服务商在技术模式上较大的区别。我们强调的是一站式的云服务,所以app与支付有关的后端我们全部打包做好。业务后端唯一要做的就是接收支付结果。

此外,BeeCloud会根据客户的需求不断创新推出适应不同支付场景的极致体验的支付产品,“秒收款”app就是我们针对线下收款场景即将推出的一款app,欢迎大家关注。


主持人:可否分享一下BeeCloud系统架构是怎样的?

黄君贤:


BeeCloud底层采用了分布式的数据库Cassandra,在其之上我们采用了Lucene作为索引引擎来提升查询效率,再上面就是分散在不同机房中的BeeCloud backend服务节点,为不同国家和地区的客户提供统一的REST API接口。依据REST API接口,我们对不同的平台(iOS/Android/PC网页/移动网页/微信公众号)与不同编程语言(Objective-C/Swift/Java/PHP/Python/.NET等)。

我们为这些平台与语言提供了开源的SDK。小伙伴们可以去github贡献代码,也可以拿去直接改成自己的应用。

主持人:请谈谈你们是从哪些方面来做好提升服务保障的?

黄君贤:


首先整个系统的设计没有任何单点瓶颈,无需任何down机时间,即可动态扩容;其次,对于每个服务节点有监控脚本,每分钟监控系统中每一个节点的服务状态,一旦有异常就会报警。

对于整个服务流程有end to end的监控,每一个REST API接口包括回调,都会有监控,来预警任何问题。同时我们会安排人员轮流值班,保障服务万无一失。To B的企业服务很多时候就是要帮助企业做好这些脏活累活,让客户能够更专注于自己的业务逻辑。

主持人:数据备份方面是如何规划的?什么是Cassandra?

黄君贤:Cassandra是最开始由Facebook公司开发的一套分布式数据库,历经多年的发展,现已被Apple, Instagram, eBay, Netflix, Comcast等1500+ 家公司使用,其中Apple 的Cassandra集群有 75,000服务器,存储了10PB数据。Cassandra系统里有一个概念叫做replication factor,比如设置成为5,就代表所有的数据会被复制成5个copy,随机放在不同的服务器上,在任意时间,只要是不超过5台服务器故障,数据都可以被恢复出来。对于账号信息这类核心数据,我们也是会通过脚本定期分别备份的。

主持人:看到您简历中的过往学习及经历,算得上是位“学霸”了:)请结合您的切身体会谈谈一名优秀的技术公司创始人应该是什么样的?

黄君贤:一名优秀的技术创始人可能同时也是一个不错的产品人,因为市场最终检验的是产品和服务能否被用户接受,技术转化成产品的过程要求创始人需要有一定的产品思维。同时跟所有的创始人一样,技术创始人也需要能疏通里外资源,把握时机摸准方向。

不过创业与以前做学生的生涯差别还是非常大的。主要的区别在于,以前可能自己一个人单打独斗,埋头苦学即可。但是创业是团队的战斗。创始人如何能够把一群聪明人凝聚在一起,发挥1+1 > 2的力量,是很有艺术的,我也一直在努力探索。

主持人:从在美国工作到回国创业,谈谈您感受到的中美技术氛围的不同。

黄君贤:其实在程序员的世界里,我不觉得中美的氛围有太大不同,毕竟我们都用同样的编程语言。java在哪里都是那样的java。

若论文化氛围,整个硅谷,尤其是Google的开放的氛围也一直是为国内的创业圈推崇的。例如牵着狗上班(我可以证明在Google“牵着女朋友上班”是谣传),穿拖鞋T恤衫,短裤,随处可见的板书讨论各种问题等等。其实这一点上,Google和美国大学的氛围也挺像的,所以也有Google University这一说。开放,轻松,不被条条框框限制,追求极致的Geek精神,应该是硅谷文化中比较核心的一种气质。

国内其实有很多地方已经在追赶甚至超越硅谷了,我们这一批从硅谷回来的创业者的一个共同目标都是,从硅谷回来,以后再打会硅谷去(抢国际市场)。

主持人:在提升BeeCloud技术团队方面,有哪些经验分享?

黄君贤:一个好的技术团队需要一个很好的leader,哪怕每一个个体的能力很强,leader的作用都不会被过分强调。Leader需要制订产品路线与规划,把大家的工作有机地串起来,成为一个优秀的产品。计划的制定需要让每个人忙而不乱,这是一门艺术,我也一直在摸索这个度。

经验不多,但若论教训的话可以分享一条就是,需要让每个程序员遇到疑难问题多与团队讨论,而不是自己一个人独自战斗,之前有过一次某程序员调试了将近6个小时的一个bug,发现不过是字符串里多了一个“-”,这种卡壳很浪费时间,但如果多讨论的话,也许某个经验丰富的程序员一眼就能看出问题的所在,提升团队作为一个整体的效率才是最关键的。

另外,环境与氛围很重要,如果一个团队个体水平都比较一般,要想提高会有瓶颈,一个团队还是需要有那么几个技术极牛的人,才能把团队带起来。

所以我们一方面在努力提高团队,另一方面也在努力找世界最顶尖的一批程序员加入我们。在我眼里,所谓顶尖的程序员分为两类,一类是比较年轻的,参加过各种世界编程大赛的“小朋友”,智商超群;另一类是有多年实战经验的老兵。这两类在团队里都很需要,而且很互补。

主持人:可否跟大家谈谈BeeCloud的技术团队氛围是怎样的?公司招人过程中,您比较看重新人的哪些特质?不大接受哪一类型的人?

黄君贤:我们团队的氛围可以说严肃又活泼。市场变化很快,客户需求多又紧急,要求团队有快速作战的能力,整个开发的进度和排期比较紧凑,需求交叉,能同时交付不同的项目。但程序员本身就是一个很奇思妙想的物种,实际上我们同事都是一群非常聪明有趣的人,有趣的人才有创造力。

我们招人的时候比较看重他是否有优秀的学习力和职业能力之外的综合素质。因为你会发现在某领域很优秀的人,他在做其他事情的时候也是比较可以做得很好。扎实的功底、深入的思考力,加上靠谱的素质,优秀的方法论几乎可以在所有领域融会贯通,所以我们找人也是不拘一格。不大接受没有独立思考力的人,平庸的人。

大家听过各种关于Google面试的传闻,也大概了解Google招人的不拘一格的风格。这点上,我非常认同Google的这样的招人策略。

主持人:对想在技术路线上走得更远的人,您都有什么建议和忠告吗?推荐一些您觉得非常不错的书籍吧。

黄君贤:根据我对我身边技术牛人的观察,要想在技术上走的远,都会或多或少对技术有一定的执念,那就是解决问题的办法一定要非常elegant,让自己满意。把一个问题解决的彻彻底底的成就感会促使你去征服下一个问题,这是一个良性循环。

最近可能创业与管理相关的书籍会看得多一些,比如《From 0 to 1》,《The hard thing about hard things》这些创业圈很火的书,没读过的话读读还挺有意思。

如果是技术的话,除了针对某些技术某些语言的各种宝典深度解析,比较推荐Knuth的经典大作《The Art of Computer Programming》,虽然难度对于准备Google面试而言都太难了,但是其中对于一些问题的深度思考以及一些闪光的想法,很能开阔眼界,也会极大增强对计算机这门学科的兴趣。这套书我到现在都没读完,不过读过的部分,都印象特别深刻。我在清华计算机系的时候,这本书也很受大家推崇。虽然计算机技术发展这么快,这本十多年快20年的书的思想永远不会过时的。

互动环节:想了解一下您对技术营销岗位的看法。
黄君贤:技术营销和普通的营销区别还是很大的,我觉得一个好的技术营销是真的能够理解技术的优势,并能够将其向客户展现出来。如果只是背诵技术特点12345,没有任何意义。我觉得技术营销的岗位很挑战。事实上,我到目前为止基本可以算是我们公司的首席技术营销。
互动环节:您分享中提到顶尖程序员,和您的看法。想问:您认为普通程序员可以称为顶尖程序员吗?工作中工作方式应该怎样改进,我还是相信有很多天才被埋没。
黄君贤:当然。我不觉得中国的大学之前的教育系统有多好,很多天才被埋没毋庸置疑。这就是为什么我很强调那些有多年实战经验的老兵。如果你没有华丽的教育背景,那么让一个公司认可你的只能是你的工作经历。在选择工作的时候,也尽量选择有自己发挥空间的,而不是重复性的没技术的会比较好,这个对成长有利。
互动环节:根据一些支付政策要求,客户账户和交易信息不能留存在第三方,beecloud的客户在使用支付云服务时,是如何避免这一点的,另外,客户还需要与各个通道签署协议吗?
黄君贤:我们有为客户提供私有化的云服务,数据完全由用户掌控。对于run在我们公有云上的app,我们不会存用户的账户信息,只会存一些第三方渠道返给我们的订单信息,以便为客户提供数据订单平台的服务。客户需要与各个通道签署协议。
互动环节:关于支付:还有一个是短信支付,有的产品也有用短信支付,消费的。这个你们支付场景后续会有吗?
黄君贤:短信支付之前也了解过,目前我们还不支持,主要原因是因为在我们看来,这个方式有点陈旧了,还不确定未来会有多大市场。如果市场需求很大,我们也会加上。
互动环节:你们和Ping++这样的平台是完全的竞争关系吗?
黄君贤:某些业务上,是的。很多业务上,大家各有侧重。
互动环节: beecloud和ping++的区别?貌似都是强调一站式云服务。
黄君贤:一些产品还是有较大区别的,比如秒支付Button还有我们即将推出的秒收款。秒支付SDK的话,解决了类似的问题,不过我们将云端服务层打包做了,ping的话应该是需要接一个server sdk。我们和他们是在解决相似问题上做的不同尝试。未来在细分场景上,我们会有更多区别,比如我们在做的一些跨境产品。期待多交流。
互动环节:对于传统的支付设备,比如POS,大多采用报文通讯方式与通道交互,这些设备能对接beecloud吗?
黄君贤:目前我们还没有接直连POS的接口。不过这个方向我们特别感兴趣。我们目前的接口都是基于HTTPS的REST API。
互动环节:1. 他们自己有支付牌照吗,如果没有那其实他自己做了一个网关转接的是,可以这么理解吗?2. 差错处理,他们怎么处理,还是只是对账就完事了?3. 提到了,爆款控制操作,请问beecloud怎么做的?
黄君贤:1.我们目前没有支付牌照,目前做的是技术接入,提供技术架构。2.目前的对账是数据层面的,帮助商户找到问题的所在,需要退款的话可以进行退款,其他的话需要人工来干预。3.架构上,我们支持高并发的,所以有爆款,系统本来就能支持。如果服务器不够,实时可以在线扩容,不需要关掉服务。
问:黄总,我认为你仅仅作了技术层面的解决。关于业务层面的处理,比如资金操作(财务处理)、运营规划、账户体系,其实不全,关于费率、佣金处理,每个商户级别、客户级别其实需求不完全一致。请问你们怎么做到灵活处置的呢?
黄君贤:这其实是to B服务的一个度的把握。服务的太深,不通用;服务的太浅,没啥用。我们现在正在努力寻找一种最好的平衡,我们的主要产品可以服务大多数客户;部分产品,甚至定制需求,服务您说的更深入需求的客户。商户级别我们目前都没有做区分,目前做的还是解决商户在不同场景下收钱付钱的问题。

互动环节:我有个问题想问一下黄总,我们公司目前除了用户向我们支付(入账)这个场景需求需要满足之外,还有和商家的结算与返佣场景(出账),以及财务的对账需求及统计需求。请问beecloud是否只是能够满足入账这块的需求?
黄君贤:我刚提到了,我们支持B2C下发的端口,即商户给用户打钱。
互动环节:请教一个具体的问题,支付转账有的时候是每日跨行结算的时候才会返回不成功,请问您那里是怎么处理的?
黄君贤:这些处理一般是渠道处理好的,这属于渠道内部逻辑了。
互动环节:用你们的秒付,客户支付完成后,商户收到的钱实质上在哪个地方?你们的内部虚拟账户?或者客户指定的某个银行的指定的账号上?
黄君贤:通过渠道X支付的钱,会直接到商户在渠道X的账号上,商户可以通过渠道X的后台提现到自己在该渠道绑定的银行账号上。我们目前没做二清。
互动环节:微信支付宝等为什么会愿意和beecloud做对接呢?
黄君贤:从某种程度上来说,我们降低了支付宝微信客服的压力。
互动环节:请问一下beecloud的结算周期是多少?
黄君贤:由渠道资深决定,依据渠道不同而不同,一般是T+1。



想与业界大咖零距离沟通,欢迎加入CTO讲堂微信群,参与CTO讲堂!

【CTO讲堂第21期预告】

分享主题:Growth Hacking背后,数据分析平台的架构调整



分享嘉宾:诸葛io 创始人&CTO  孔淼

嘉宾简介:孔淼,90后,诸葛io 创始人/CTO,毕业于华中科技大学软件工程专业。大学期间获得全球最大学生技术创新比赛微软创新杯两项一等奖,腾讯校园之星大赛全国第二,全国大学生计算机设计大赛一等奖,HTML5 code jam武汉冠军。曾受邀实习于创新工场,担任李开复博士的技术主力,负责处理工场各部门以及李开复的技术需求。毕业后放弃保研以及各大公司offer,加入37degree团队开始创业。在37degree期间,曾带领团队服务过CCTV、海尔、宝马等知名企业。过去4年间,孔淼专注于对数据分析、数据挖掘领域的探究,并于去年起打造了新一代的数据服务平台——诸葛io。

公司简介:诸葛io (zhugeio.com) ,作为国内首屈一指的精细化运营分析工具,一直强调数据分析的应用与价值。自2015年3月上线,已拥有围绕产品业务逻辑展开的一系列功能,如:自定义事件、自定义留存、漏斗转化、群组细分、用户画像等。诸葛io旨在以先进的用户跟踪技术和简单易用的集成开发方法,帮助产品与运营者挖掘用户的真实行为特征。产品上线运营半年,已拥有暴走漫画、墨迹天气、小影、寻医问药网的诸多样板客户,总覆盖设备数超过一亿。目前,诸葛io支持Android、iOS和HTML(JS)三个平台。 

分享时间地点:10月29日(本周四)10:30 , CTO讲堂群

加入方式:扫描二维码加“C粉儿小助手”好友,申请入群。

还不是CTO俱乐部成员的各公司技术负责人,欢迎立即加入俱乐部:cto.csdn.net 。

更多俱乐部动态,欢迎扫码关注微信号:

0
0