您的位置:首页 > 编程语言 > Java开发

java 在线支付功能实现一

2012-11-08 21:58 260 查看
实现的两种方法

1 直接与银行对接: 交易比较安全,适合资金流量比较大的企业,这种方案适合于,每月结算金额百万以上的.

但开发工作量比较大,而且银行会不定期升级交易系统,每个银行的接口都不同,交纳的费用也不低.

2 通过中间公司 间接与银行对接: 开发工作量较少,银行升级交易系统一般我们不作修改,除非中间企业修改了,这种方案月结算几十万左右的交易中小企业

因为是中间企业进行的资金结算,目前大部分都是私人开发.不是很安全

国内:首信支付 http://www.beijing.com.cn 每年交纳一定的费用(当当网,红孩子,京东商城),每笔还要扣除部分费用

易宝支付 http://www.yeepay.com 接入免费,盛大,E龙网,把把运动网等。每笔扣除相关费用

易宝支付的规范

加密:MD5- hrmac;

1. 网上支付两种接入方案

--直接与银行对接

优点:因为直接与银行进行财务结算,交易资金结算比较安全。适合资金流量比较大的企业,这种方案适合于:每月结算金额佰万以上的企业。

缺点:开发工作量比较大,而且银行会不定期升级交易系统,随着银行系统的升级,企业也需要作相应改动,所以维护工作量也是比较大的,而且企业每年还需要向银行交纳一定数量的接口使用费。

--通过中间公司间接与银行对接

优点:开发工作量较少,因为使用的是中间企业提供的接入规范,所以银行升级系统,不需要企业作相应修改,除非中间企业的接入规范发生了改变,企业才作相应修改。相对前一种接入方案,这种方案的维护工作量比较少的。因为只与一家企业对接,所以接入费用相对比较低。这种方案适合于:每月结算金额在几十万以下的中小企业。

缺点:因为是与中间企业进行资金结算,目前所有中间企业都是私企,资金安全是个大问题。

2.目前在国内做的比较好的中间支付公司:

1) 首信易支付:http://www.beijing.com.cn/

每年需要交纳一定的接口使用费,并且从交易金额中扣除1%的手续费。像当当网、红孩子、京东商城使用了首信易支付。

2)易宝支付: http://www.yeepay.com/
接入免费,只从交易金额中扣除
1%的手续费。像盛大、
e龙网、巴巴运动网使用了易宝支付。

3.易宝支付接入规范

1)MD5-hmac:

hmac 是一种秘密的密钥验证算法。hmac
提供的数据完整性和源身份验证完全取决于密钥分配的范围。如果只有发起者和接收者知道hmac密钥,那么这就对两者间发送的数据提供了源身份验证和完整性保证。

2)MD5-hmac的实现

是由易宝提供的DigestUtil工具类.不需要我们自己实现.只要按照要求传入参数得到结果就行.
这个类在网上也可以下载到.

5.流程(分为两个部分)

1)发起支付请求

使用GET/POST方式向支付网关发起HTTP请求.(https://www.yeepay.com/app-merchant-proxy/node)

支付网关就是一个路径.

向支付网关发送支付请求要带一些参数.

-支付方式:p0_Cmd,还有电话支付等,所有要有所区别.

-商家
ID:p1_MerId,在申请的时候由易宝给的.

-交易结果通知地址:p8_Url,为下面接受支付结果信息使用的.

等等...在易宝支付接入规范中,有详细的说明,只要按照要求执行就好了.

-应答机制:0,判断响应码,要是200就表示支付结构信息通知你了.1,获取服务器返回的success.

2)接受支付结果信息

获取银行给商家返回的信息.

各个参数的名称在易宝支付接入规范中都有说明.

特别要注意的:接收处理订单的时候,要注意对订单的状态进行判断.否则会有表单重复提交的问题.交一次钱,刷新页面就会多次购买.

总结:

--发出GET 或POST请求都行

--页面要是GBK/GB2312编码的.

--发送的参数请求不是自己随便起的,是接入规范中定义好的.

-- 易宝提供的密钥一定不要让第三方知道.

--在生成MD5-HMAC要按照顺序,并且值不能是Null

--引导用户的浏览器重定向的方式.

-- 是生成MD5码的时候,顺序要按照规定.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: