单个APP接入多个微信支付宝支付的一种解决方案

背景

最近在对接微信支付宝支付的时候出现了一个需求,因为咱们公司在不一样的地区有分公司,为了实现财务对帐方便,不一样公司的客户须要打款到相应的公司的帐户,也就是要实现接口分帐,一听到这个需求,我一脸懵逼,以前作商城的时候,一个APP的收款不论是微信仍是支付宝,都是只打到一个帐户里面去,如今须要实现无论对于微信支付仍是支付宝支付都须要有多个支付帐户,实现接口分帐,当时总经理提出这个需求,Android跟ios历史性地异口同声地说,这个作不到,而且从技术的角度在那儿跟总经理弹了一下子琴,毕竟仍是太年轻了,总经理说,这个确定是能够实现的,由于在他眼里,没有什么是实现不了的,而后咱们就回去搬砖了,而后思考这个问题的解决方案。ios

分析问题

  • 须要实现的技术点

    用户支付的时候,根据用户的uid,来把钱达到相应的帐户里面去,判断身份很简单,问题主要在于如何使得一个APP接入多个微信或者支付宝帐户,下面来逐个分析一下微信跟支付宝的接入方式微信

  • 微信

对接过微信支付的应该很熟悉上面的这些东西,首先你得去微信开放平台注册一个帐号,一年300块钱,而后再在这个帐号里面开通微信支付功能,因此一开始咱们尝试的就是不停地去骚扰微信客服,问问能不能经过一个微信支付帐号进行接口分帐,每次那边的回答都是不能够,而后又问一个APP能不能申请多个微信支付帐号,那边回答也说是不能够,卧槽,基本上到这个份上,咱们已是放弃了,由于若是一个APP不能申请多个微信支付帐号,那么微信基本上是作不了接口分帐了,当时IOS了解到的微信支付状况是这个样子的,下面看看支付宝的过程。测试

  • 支付宝

支付接入的时候其实也比较郁闷,苦逼之处在于支付宝之前是支持接口分帐的,也就是只须要注册一个支付宝主帐户,而后在注册几个子帐户就能够进行接口分帐,只是咱们的APP生不逢时,支付宝关闭了这个服务,并且那边的客服也是说一个APP只能注册一个支付宝帐户微信支付

发现但愿

基本上到这里,咱们已经打算放弃了,由于毕竟跟咱们最初的设想是同样的,可是仍是有点不甘心,由于在跟支付宝的技术客服,注意是技术客服,不是普通的人工客服,当时跟他说了一下咱们的使用场景,他说能够经过注册多个支付宝帐号,其实这一点跟我以前的设想是同样的,由于Android在介入支付宝的时候不须要应用的签名,能够经过服务端动态下发签名,从而调起支付宝支付,我忽然间好像明白了什么,由于以前的思路走不通的缘由在于老是想经过一个APP来注册多个支付宝帐号,没有想到用多个支付宝帐户来实线曲线救国。ui

支付宝实现接口分帐

  • 注册支付宝帐户

支付宝应用名称
支付宝应用名称

支付宝应用信息
支付宝应用信息

支付宝支付跟微信支付最大的区别在于Android客户端的接入,须要应用的签名,因此若是用两个APP注册的话势必会致使签名不一致,支付宝的注册只须要填写一个应用名称就行了,注意应用名称不能同样,不然会失败。3d

基本上到这里,支付宝实现接口分帐的链路打通了,测试也彻底经过,吼吼cdn

微信实现接口分帐

对于微信来讲,一个APP对应惟一的APPID,注册信息大体以下:blog

微信支付应用名称
微信支付应用名称

微信支付应用信息
微信支付应用信息

受到支付宝的启发,能不能注册在微信开放平台注册两个帐号,而后申请两个微信支付帐号,只不过这两个帐号除了名称不同之外,其他地全都同样,不过虽然这么想仍是有点虚,由于IOS在跟客服沟通的时候客服只是说同一个APP只能申请一个微信支付帐号,可是咱们反问客服微信的判断规则是什么的时候,微信那边却说不知道,若是是名称,那么就可以经过审核,若是是应用的包名或者bundleid那基本上微信接入原生的APP支付完全走不通了。接口

当时是分了两步走,总经理说微信支付必须得接入,万一不行只能接入微信H5支付,由于H5的话就能够实现动态下发了。因此当时H5支付跟原生支付的帐号同时在申请,服务端那边也是在作两手的准备,比较苦逼。最后万幸的是,微信是经过应用名称来判断APP的惟一性,很幸运,能够彻底放弃H5支付了,微信支付接口分帐也打通了。支付宝

小结

这篇文章没有涉及到任何技术,可是此次实现一个APP实现多个接口分帐,确实让我感触不少,不少时候,咱们在作一件事情的时候,会调用咱们以往的经验,有好也有坏,以前作的支付都是单个微信支付宝,按照以前的经验,在尝试以前就作出了错误的判断,不少时候仍是须要勇于拆掉思惟里的墙,去尝试一些新东西,包括在实现一些功能的时候,要敢于尝试一些新的思惟,新的解决方式,尤为是在用已有的知识实现不了或者实现起来比较痛苦的时候,毕竟改变是痛苦的,不改变只会更加痛苦。

相关文章
相关标签/搜索