完成前面的过程后,接下来我们需要设置API密钥,然后下载API证书。
API证书获取流程参考:
API key设置流程参考:
完成这些步骤后,我们将获得以下商家参数:
我们要把这些参数妥善保存在里面,不要传到外面,以免造成经济损失。
支付宝
支付宝设置可能没有Momo Pay那么复杂。 首先,我们需要在开发者中心栏目下的支付宝开放平台(open.alipay.com)创建一个应用程序。
第二步,我们需要在创建的应用程序中添加相应的支付功能。 比如我们需要使用扫码支付,那么我们就需要使用面对面支付。
第三步,我们需要配置当前应用的公钥和公钥信息。
首先我们需要生成一对RSA2公私钥,这里我们可以使用支付宝官方的工具来生成。
工具下载地址:
生成后,我们需要在支付宝网站上配置支付私钥。
需要注意的是,私钥配置完成后,将不支持查看,只支持再次更改私钥,所以我们需要重新生成一对公钥和公钥。
应用私钥设置完成后,我们还可以查看支付宝的私钥。 我们还需要保留这个私钥信息。
此时我们手上就有了支付宝的参数信息,功能如下:
我们需要注意应用私钥和支付宝私钥的区别。 需要将应用私钥交给支付宝。 一旦在支付宝网站上完成设置,我们将不会使用应用程序私钥。
完成这一步后,我们就基本完成了开发的参数配置,接下来就是开发了。
基础开发完成后,我们需要将应用程序上架到支付宝上。 上架的时候,我们需要根据app选择的支付能力签订合同。
虽然这个签收是我们前面提到的进口,但是需要填写商家的各种信息。
对接开发
前面说了这么多,终于说到开发步骤了。 虽然,对接开发确实不难,我们只需要根据相应的文档组装好socket参数,然后发送给陌陌支付宝即可。
Momo付款单据地址:
支付宝文件地址:
这里就不讲具体的源码实现方法了。 可以参考相应的socket文档。 这里主要分享一些经验,避免大家踩坑。
同步和异步套接字
同步socket:调用API socket后,可以同步返回具体的扣费结果。
异步socket:我们调用API socket成功,这一步只是返回一些参数,我们需要在前台将这些参数拼接起来,然后调用Momo Pay、支付宝,最后完成支付。 支付结果将异步通知给应用程序。
例如,在陌陌支付和支付宝API套接字中,只有支付码支付才是同步套接字。 这是官方的时序图:
支付码支付免密流程时序图
其余的套接字都是异步套接字。 以下是陌陌支付原生的时序图:
原生支付Socket模式1时序图
对于异步套接字,我们不仅需要开发API套接字发送程序,还需要开发接收程序,用于接收Momo Pay和支付宝。
安全
Momo Pay和支付宝涉及的所有API套接字都需要签名才能获得签名值。 这一步的目的主要是为了安全。
Momo Pay的签约方法如图:
在这一步中,我们需要使用上一过程中提到的Momo Payment的API key。
另外,Momo Pay的返回socket有点特殊,我们还需要使用它发给我们的API证书。
此外,阿芬在查看陌陌支付的文档时还发现,陌陌支付有V3版本的接口。 该版本参数格式支持JSON。 新旧插座的区别如下:
V2VSV3
阿凡里提到它是基于V2版本的。 如果你在搜索引擎上搜索一下html支付,你可以看到市面上大部分的插座仍然使用V2版本。
如果连接的是V3版本的socket,一定要记得检查V3版本的API socket,地址如下:
另外,对于异步通知的内容,我们必须进行签名验证。 签名验证的目的是避免数据泄露造成的“误通知”,造成经济损失。
这里需要注意的是,异步通知可能会发送多次,我们的程序一定要注意幂等控制。
建议采用以下流程:
当收到需要处理的通知时html支付,首先检查对应业务数据的状态,判断该通知是否已经被处理,如果没有处理,则处理,如果处理,则直接成功返回结果。 在对业务数据进行状态检测和处理之前,应该使用数据锁进行并发控制,防止函数重入导致数据混乱。
开源工具
在开发过程中,我们可以使用一些开源工具,它们帮助我们封装了签名和验证的步骤,以及网络发送程序,大大降低了开发的复杂度。
支付宝开源工具主要由支付宝官方提供,使用介绍:
它提供了 Maven 依赖关系,如下所示:
com.alipay.sdk
alipay-sdk-java
4.10.170.ALL
对于陌陌来说,目前为止我还没有看到政府提供的相关工具。 这里推荐一个star很多的Github项目——WxJava
项目地址如下:
对于这个开源工具,框架会初始化并设置API密钥、证书等,后续请求API套接字只需填写相关参数,其他签名和验证签名的内部流程将由手动完成。
沙箱环境
在测试过程中,如果即将推出的应用还没有得到正式批准,我们可以先使用沙箱环境进行测试。 测试完成后,我们只需更换相关参数即可。
这里需要注意的是,目前只有支付宝提供了沙盒测试环境,Momo Pay暂时没有。
支付宝沙箱地址如下:
在同一个沙箱环境下,我们还需要设置对应的应用私钥并下载对应的支付宝私钥。
另外,沙箱环境的请求地址与直接环境的请求地址不同。 请求地址为:
同时,我们还需要使用沙盒版的支付宝APP来进行正常的测试。
终于
总体来说,阿芬认为,陌陌支付和支付宝的开发并不难,相关参数只需要安装socket文件拼接即可。
最大的困难可能在于签约和签核,这对于新秀来说可能更容易。
好了,明天的文章就到这里,我们上一篇文章见~
帮助文档
商户号与APPID绑定
陌陌接入指南
传入
商户申请接入时如何确认绑定关系?