在线支付开发流程总结<包括客户端与服务端>
2015-08-19 16:02
274 查看
原文地址:http://www.douban.com/note/223773046/?start=0&post=ok#last
经过这段时间对支付宝在线支付接口、手机在线支付接口、农业银行在线支付接口、以及支付宝担保交易接口的开发,对在线支付的原理有了一定的了解,开发过程中有点小的心得体会,在这里记录一下。
首先,这几个接口中,前面三个都是单一的支付接口,对于需要集成的商户而言,所需要做的工作为:集成支付功能使用户可以在线支付,接受支付结果进行商户系统中订单相关数据的处理。其次,担保交易接口是一个完整的在线担保体系,因此包含了在线支付、确认收货、在线申请退款、客户维权、商户退款五个相关接口。关于具体的功能可以参考支付宝提供的文档资料,这里仅进行技术开发上的分析。
其实这些在线支付的接口从原理上来讲都是一样的。这里简单地阐述一下:
1.首先,开发这些接口的第三方公司会给商户提供一个唯一标识pid,而且与该标识相对应的会有一个KEY,双方使用这个KEY作为加密的密钥。
2.其次,商户使用接口的时候,根据不同支付方的开发文档的要求,将所需要的参数(订单的相关信息如:金额、商品等)拼接成相应的形式。在发送请求之前需要对数据进行加密,而加密的方式会由支付方提供,文档中会有相应的描述,有的接口也会提供现成的方法供商户使用。加密后就可以调用接口向支付网关发送请求了。 注:传递的参数中一般含有return_url
和 notify_url 两个链接地址,商户一般在这两个页面中写入订单状态处理的逻辑。
3.最后,是对于支付结果的处理。支付方在对相应的资金进行处理后会给发送请求的商户网站发送响应。这里有两种方式:1、页面通知(同步通知,return_url),用来显示给实际支付的客户,支付方只返回一次。2、服务器通知(异步通知,notify_url),运行在后台,实际在线支付的客户看不到,支付方会在一定时期内发送多次,直到收到商户程序反馈的约定好的标识为止。具体的原理如图1和图2所示(这里借用支付宝的原理图^_^)。
这样,整个在线支付接口就完成了商户和支付方的信息的交互。
商户开发人员在实际集成接口的时候可以遵循如下工作步骤:
1、熟悉在线支付接口的工作原理。
2、仔细阅读支付方提供的开发文档。
3、运行支付方提供的demo,结合开发文档理解工作原理。
4、集成接口,加入相关的业务逻辑。
对于像担保交易这样关系复杂的接口,可以分开理解成独立的接口,然后结合商户自身情况,从业务数据上进行关联。
在进行接口调试及测试的时候,因为中间debug信息很难收集到,尤其是服务器通知模式的情况下。因此可以加入日志的输出功能,这样一次操作完成后,分析产生的日志,可以极大的简化调试的难度。测试时候如果支付方未提供相应的测试网关,可以采用支付0.01元的方式,多次进行。
经过这段时间对支付宝在线支付接口、手机在线支付接口、农业银行在线支付接口、以及支付宝担保交易接口的开发,对在线支付的原理有了一定的了解,开发过程中有点小的心得体会,在这里记录一下。
首先,这几个接口中,前面三个都是单一的支付接口,对于需要集成的商户而言,所需要做的工作为:集成支付功能使用户可以在线支付,接受支付结果进行商户系统中订单相关数据的处理。其次,担保交易接口是一个完整的在线担保体系,因此包含了在线支付、确认收货、在线申请退款、客户维权、商户退款五个相关接口。关于具体的功能可以参考支付宝提供的文档资料,这里仅进行技术开发上的分析。
其实这些在线支付的接口从原理上来讲都是一样的。这里简单地阐述一下:
1.首先,开发这些接口的第三方公司会给商户提供一个唯一标识pid,而且与该标识相对应的会有一个KEY,双方使用这个KEY作为加密的密钥。
2.其次,商户使用接口的时候,根据不同支付方的开发文档的要求,将所需要的参数(订单的相关信息如:金额、商品等)拼接成相应的形式。在发送请求之前需要对数据进行加密,而加密的方式会由支付方提供,文档中会有相应的描述,有的接口也会提供现成的方法供商户使用。加密后就可以调用接口向支付网关发送请求了。 注:传递的参数中一般含有return_url
和 notify_url 两个链接地址,商户一般在这两个页面中写入订单状态处理的逻辑。
3.最后,是对于支付结果的处理。支付方在对相应的资金进行处理后会给发送请求的商户网站发送响应。这里有两种方式:1、页面通知(同步通知,return_url),用来显示给实际支付的客户,支付方只返回一次。2、服务器通知(异步通知,notify_url),运行在后台,实际在线支付的客户看不到,支付方会在一定时期内发送多次,直到收到商户程序反馈的约定好的标识为止。具体的原理如图1和图2所示(这里借用支付宝的原理图^_^)。
这样,整个在线支付接口就完成了商户和支付方的信息的交互。
图1 返回页面(return_url.jsp)工作原理 |
图2 通知页面(notify_url.jsp)工作原理 |
1、熟悉在线支付接口的工作原理。
2、仔细阅读支付方提供的开发文档。
3、运行支付方提供的demo,结合开发文档理解工作原理。
4、集成接口,加入相关的业务逻辑。
对于像担保交易这样关系复杂的接口,可以分开理解成独立的接口,然后结合商户自身情况,从业务数据上进行关联。
在进行接口调试及测试的时候,因为中间debug信息很难收集到,尤其是服务器通知模式的情况下。因此可以加入日志的输出功能,这样一次操作完成后,分析产生的日志,可以极大的简化调试的难度。测试时候如果支付方未提供相应的测试网关,可以采用支付0.01元的方式,多次进行。
相关文章推荐
- Android 好看的搜索界面,大赞Animation
- maven模块开发(转)
- 反思
- windows命令行安装Drupal7(包括drush安装与配置)
- 桌面支持--teamviwer如果没装杀毒软件,会有警告
- ruby 安装 gem 降级
- 工具分享 xml to json
- php生成图片验证码-附五种验证码
- tools
- dynamic programming 学习
- 迅雷快鸟的原理-可能
- ListView刷新指定位置的Item
- poj 1986——Distance Queries
- http post get 区别
- streamflow简介
- 阿里巴巴一道笔试题
- 二分查找(递归和非递归实现)
- 窗口缩小时图片、文字跟着整体缩小
- 纯源码编译安装LAMP,linux,httpd,php,mysql源码编译安装
- 工厂模式