支付宝api指南
1.业务模型分析通过支付宝提供的Webservice接口,可以调用支付宝(https://www.alipay.com)提供的服务,这些服务在中有详细说明。 在这些服务中,服务类型大致可以分为以下几类:
2. 业务场景分析现在支付宝提供的这些服务接口,调用端只能通过查询支付宝提供api文档,通过api文档进行接口开发。 偶在开发口碑卡项目中需要用到user_query,user_authentication,customer_sign等支付宝服务,以前,口碑的业务也有调用过支付宝的接口,于是我就想重用以前其他同学已经写过的调用支付宝服务的代码。结果发现,有很多参数已经写死了,比如key,partnerid,还有sign的算法。所以代码根本没有办法重用,只能ctrl+C加ctrl+V,而且我在开发过程中为了解决参数签名匹配不上的问题搞了很长时间。 所以,我认为应该开发一个类似淘宝TOP平台提供的API代码接口,这个api接口的开发难度比淘宝open api 应该简单,因为,在和支付宝交互的数据结构比较简单。 2.1.Api所要实现的目标解决参数签名,调用支付宝服务过程中,参数签名的作用是保证用户请求的参数没有被黑客截取篡改参数值,在所有的请求中都会有参数签名。为了代码实现简单,先默认参数签名方式为MD5签名。参数签名应该像面向切面编程一样,在开发一个具体的结果过程中程序员不用关心参数签名,这也是做这个框架的重要意义所在。当初,我照着api文档的时候为了参数签名真是折腾了好长时间,为了避免其他同学重蹈我的覆辙。必须要将参数签名封装成一个模块能够重复调用。 2.2.支持多种字符集这个API框架能够在多种字符集环境下使用,所以这个框架要能够支持UTF8,GBK等多种环境,只需要简单配置就能切换。 2.3.新功能容易扩充现在实现的接口还只是支付宝提供的所有web服务中的小部分,但是已经涵盖到了所有前面提到的所有种类的服务(服务器后台请求,协同页面),如果想通过此框架实现其余的页面只需要实现少部分代码就能实现功能。 3. 实现3.1.整体类图3.2.核心类3.2.1 BasicAlipayToolkit该类是所有支付宝服务的基类,他提供了一些所有服务接口都要调用的方法。 方法有:
3.2.2.AlipayApply支付宝的所有web服务都是通过http协议请求发送的,通过这个类可以通过用户设置的一些基本的参数组装出发送给支付宝的http的url,如果当请求是在页面中需要使用标签<form>来发送的话,就可以通过buildSubmitForm方法生成一个html的form表单。 这些方法有:
3.2.3 BasicWebServiceApply
3.2.4 Profile,DefaultProfile支付宝服务请求的用户信息封装,能够取到PartnerId和getGateway,不同的用户需要通过调用。 3.3. 时序图分析支付宝提供了两种服务,webService和页面协作,根据两种服务类型,选取两个服务分析一下服务的流程。 3.3.1 user_query服务
3.4. 功能说明3.4.1.支付宝会员登陆验证用户需要通过支付宝认证用户信息,代码如下: 在页面上打印超链接 在页面上打印一个form表单 当用户在支付宝用户认证之后,跳转到原网站页面,需要取得支付宝会员信息: 注意:在使用该服务api代码必要代码中设置的CharSet需要和当前tomcat URLencode要一致,否则,跳转会原页面会有sign不一致的问题。 3.4.2. 即时到帐在页面中要发起一个即时到帐的请求,代码如下: 用户在支付宝完成即时到帐功能之后跳转到原页面 3.4.3.CAE代扣协议用户完成支付宝代扣协议跳转到口碑页面 如果你需要源代码,请点击下载?http://vdisk.weibo.com/s/8C6k,如果有任何疑问请发邮件,baisui@taobao.com (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |