忙了有一阵了,构思的"通用支付网关接口"正式完成,虽然只完成了网银和支付宝的,但整体的思路基本上清析并固定下来了,
其实这个通用接口并没有什么特别.目前的网上支付平台很多,它们之间都有一些共性的东西,比如签名,通知,接口地址等等,根据这些共性的东西,创建一个基类,然后继承它生成针对某个支付接口的专用类,比如支付宝.这么做的原因是因为在刚有思路的时候,想偷懒不用去重复考虑每个支付网关里内容.最基础的数据直接用集合的形式来组织,于是可以用GetItem(xx)的形式去读取属性,可以用SetItem(name,value)的形式去赋值,最后使用CreateForm()的方法来生成表单。对于新的一个支付网关,再写一个类就可以了。
扩展: 为了更加方便,在顶层再创建了一个逻辑类,用来对所有的网关类进行操作,这样可以把各个网关的数据保存到配置文件或者数据库中,这样,增加一个支付通道所要做的,只是在数据库里加上它的参数就可以了,当然,前提是写好了这个网关类。逻辑类会根据名称直接创建网关类并直接使用它的属性和方法了。
顺便列一下目前常见的支付网关:
支付宝
网银
PAYPAL
快钱
云网
易付通
财富通(QQ)
银联
使用到的签名算法:
MD5,DES,MAC
MD5基本上是通用的。