日期:2023-01-13 阅读量:0次 所属栏目:高等教育
随着中国居民消费观念的提高,越来越多的年轻人开始接受二手商品的交易方式。高校大学生是其中一个特殊的年轻人群体。因为高校每年都有毕业生离校,所以毕业生是大量二手商品的供应方,而其他大学生存在购买二手商品的需求,自然高校大学生形成了一个稳定的二手商品交易形态。张家界每年毕业生人数近三万人,人年均消费过万元,如此稳定和庞大的大学生队伍,可以预测,张家界高校大学生的二手商品的交易市场潜力无限。
目前而言,面向张家界地区的二手商品的交易平台屈指可数。据调查,张家界高校学生参与平台交易的人数只有3%左右,原因有两个方面:其一是这些平台面向的主要用户不是高校大学生;其二是只能现金交易,没有提供在线支付功能。而正是因为这些原因,据不完全统计,张家界92%的毕业生都选择采取校园摆摊的形式进行二手商品交易,这种线下面对面交易的方式,弊端非常多,耗费毕业生和其他消费者大量的时间。因此开发一个支持在线支付,只面向张家界高校大学生的二手商品交易平台,显得非常必要。而在线支付功能是这个项目非常重要的一个环节。
1.在线支付的方案
在线支付功能就是指当用户购买了二手商品以后,银行从买家指定的账号提取货款,然后等货到了以后,银行再将钱汇到卖家账号。该功能需要通过程序与银行进行对接,目前有两套方案可以选择:1,用户直接与银行进行对接;2,通过第三方平台进行对接。
第一套方案的优点是资金安全性高,但开发的难度很大,因为每个银行的接口可能不一样,选择不同的银行,需要实现多种银行接口。第二套方案,优点是开发难度较小,只需实现第三方平台的接口即可,但是因为第三方平台是私企,存在携款潜逃的可能性,资金风险比较高。
在本项目中,我们选择第二套方案,因为我们平台交易的金额每个月不会超过十万,资金风险可以接受。而在众多的第三方平台中,“易宝”不仅有当当网等大型电商网站或者平台采用的案例,而且提供免费的会员制,所以成为我们最终选择的第三方交易平台。
2.基于易宝的在线支付功能的实现过程
基于易宝第三方平台的在线支付过程,需要经过以下几个步骤:
第一步:平台商家需要将商品的价钱,商家编号等参数传递到易宝网关页面;
第二步:买家在易宝支付界面上选择银行,输入银行账号和密码等信息,并确认。
第三步:易宝第三方平台对输入的参数进行验证,确认信息合法,并在买家账号扣钱。
第四步:易宝把扣款的结果通过参数传递给平台页面。
第五步:平台再次验证易宝发送的消息的合法性,并对买家的购买记录进行相应的标记。如果成功,就进行发货。具体过程如图1所示。
图1 在线支付流程图
3.基于易宝的在线支付的安全性分析
在图1的过程中,最关键的功能是保证在线支付的安全性。本节从两个方面分析在线支付的安全性,详细说明在实现过程中是如何满足安全性需求的。在线支付的过程中,商家需要把商品的货款以及货币类型发送给易宝,易宝根据相应的参数完成支付功能。这个过程中,货款数以及货币类型是非常关键的参数,这些参数不能被纂改或者伪造,这是其一。其次就是易宝根据参数进行扣款操作后,需要将扣款操作是否成功的结果反馈给商家,因为这个结果是决定商家是否发货的根据,所以非常重要,同样的不能被纂改或者伪造。
为满足上述安全性,易宝支付平台提供了MD5算法来对参数进行加密认证。所谓MD5算法就是计算机安全领域广泛使用的一种杂凑算法,用于确保信息传输的完整一致。商家通过在易宝支付平台注册会员,得到密钥。然后利用密钥,对商家提供的参数进行MD5算法加密,从而产生唯一的MD5信息摘要。这样一旦商家的参数发生改变,那么易宝平台得到的信息摘要肯定与商家发送过来的信息摘要不一样,从而防止关键参数被纂改或者伪造。具体过程如图2:
图2 易宝支付的安全性分析图
对易宝反馈的结果进行验证也是采取类似的过程,在此不再说明。实现其安全性验证的核心代码如下,利用MD5算法对参数产生摘要。
public static String buildHmac(String p0_Cmd,String p1_MerId,String p2_Order,String p3_Amt,String p4_Cur,String p5_Pid,String p6_Pcat,String p7_Pdesc,String p8_Url,
tring p9_SAF,String pa_MP,String pd_FrpId,String pr_NeedResponse)
{
StringBuffer svalue=new StringBuffer();
svalue.append(p0_Cmd);//业务类型,一般为buy
svalue.append(p1_MerId);//商家编号
svalue.append(p2_Order);//订单编号
svalue.append(p3_Amt);//支付金额
svalue.append(p4_Cur);//交易币种
svalue.append(p5_Pid);//商品名称 svalue.append(p6_Pcat);//商品种类
svalue.append(p7_Pdesc);//商品描述
svalue.append(p8_Url);//支付成功返回的地址,开发者自己定义
svalue.append(p9_SAF);//送货地址
svalue.append(pa_MP);//商户扩展信息
svalue.append(pd_FrpId);//银行编码
svalue.append(pr_NeedResponse);//应答机制
//MD5算法,key是注册易宝得到的密钥
String strNewString=DigestUtil.hmacSign(svalue.toString(),key);
return strNewString
}
商家发送的关键参数列表说明如表1所示:
表1 商家发送的关键参数列表
参数名字参数默认值参数说明
p0_Cmdbuy业务类型
p1_MerId商家在易宝的注册编号商户编号
p3_Amt0.0支付金额
p4_CurCMP交易币种
p8_Url自己定义商户接受支付成功数据的地址
4.在线支付功能的实现效果
笔者所在的团队通过向易宝注册会员,获取商家编号,密钥等信息,然后利用J2EE技术实现了在线支付功能,经过测试,该功能安全,可靠。其实现效果图2,图3所示:
5.结语
本文为实现张家界高校二手商品在线支付的功能,从在线支付候选方案的优缺点入手,选择易宝第三方支付平台进行开发,并对易宝支付的安全性进行了分析,最后利用J2EE技术结合MD5算法,实现了在线支付的功能。经过测试,该功能安全,可靠,具有实用性。(作者单位:吉首大学旅游与管理工程学院)
基金项目:吉首大学2015年度大学生大学生研究性学习与创新性实验计划项目(JSU-CX-2015-038)
本文链接:http://www.qk112.com/lwfw/jiaoyulunwen/gaodengjiaoyu/199061.html