在线支付接口开发经验总结
经过这段时间对支付宝在线支付接口、手机在线支付接口、农业银行在线支付接口、以及支付宝担保交易接口的开发,对在线支付的原理有了一定的了解,开发过程中有点小的心得体会,在这里记录一下。
首先,这几个接口中,前面三个都是单一的支付接口,对于需要集成的商户而言,所需要做的工作为:集成支付功能使用户可以在线支付,接受支付结果进行商户系统中订单相关数据的处理。其次,担保交易接口是一个完整的在线担保体系,因此包含了在线支付、确认收货、在线申请退款、客户维权、商户退款五个相关接口。关于具体的功能可以参考支付宝提供的文档资料,这里仅进行技术开发上的分析。
其实这些在线支付的接口从原理上来讲都是一样的。这里简单地阐述一下:
首先,开发这些接口的第三方公司会给商户提供一个唯一标识pid,而且与该标识相对应的会有一个KEY,双方使用这个KEY作为加密的密钥。
其次,商户使用接口的时候,根据不同支付方的开发文档的要求,将所需要的参数(订单的相关信息如:金额、商品等)拼接成相应的形式。在发送请求之前需要对数据进行加密,而加密的方式会由支付方提供,文档中会有相应的描述,有的接口也会提供现成的方法供商户使用。加密后就可以调用接口向支付网关发送请求了。 注:传递的参数中一般含有return_url 和 notify_url 两个链接地址,商户一般在这两个页面中写入订单状态处理的逻辑。
最后,是对于支付结果的处理。支付方在对相应的资金进行处理后会给发送请求的商户网站发送响应。这里有两种方式:1、页面通知(同步通知,return_url),用来显示给实际支付的客户,支付方只返回一次。2、服务器通知(异步通知,notify_url),运行在后台,实际在线支付的客户看不到,支付方会在一定时期内发送多次,直到收到商户程序反馈的约定好的标识为止。具体的原理如图1和图2所示(这里借用支付宝的原理图^_^)。
这样,整个在线支付接口就完成了商户和支付方的信息的交互。
商户开发人员在实际集成接口的时候可以遵循如下工作步骤:
1、熟悉在线支付接口的工作原理。
2、仔细阅读支付方提供的开发文档。
3、运行支付方提供的demo,结合开发文档理解工作原理。
4、集成接口,加入相关的业务逻辑。
对于像担保交易这样关系复杂的接口,可以分开理解成独立的接口,然后结合商户自身情况,从业务数据上进行关联。
在进行接口调试及测试的时候,因为中间debug信息很难收集到,尤其是服务器通知模式的情况下。因此可以加入日志的输出功能,这样一次操作完成后,分析产生的日志,可以极大的简化调试的难度。测试时候如果支付方未提供相应的测试网关,可以采用支付0.01元的方式,多次进行。