网银在线支付接口和应用.docx

上传人:b****4 文档编号:1225686 上传时间:2022-10-19 格式:DOCX 页数:12 大小:28.38KB
下载 相关 举报
网银在线支付接口和应用.docx_第1页
第1页 / 共12页
网银在线支付接口和应用.docx_第2页
第2页 / 共12页
网银在线支付接口和应用.docx_第3页
第3页 / 共12页
网银在线支付接口和应用.docx_第4页
第4页 / 共12页
网银在线支付接口和应用.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

网银在线支付接口和应用.docx

《网银在线支付接口和应用.docx》由会员分享,可在线阅读,更多相关《网银在线支付接口和应用.docx(12页珍藏版)》请在冰豆网上搜索。

网银在线支付接口和应用.docx

网银在线支付接口和应用

(转载)

关键字:

网银在线支付接口和应用

最近关注项目中在线支付,所以看一下文档,在线支付应用开发:

基本所有的在线支付均采用以下方式:

客户点击结帐时将关于訂單的信息和货币信息,相应的信息URL,经过md5或其他方式发送(可能Socket和Http或Https)支付平台(块钱,paypal或支付宝等),支付平臺处理完毕时根据相应URL,返回相关的信息(付款信息,訂單信息,验证信息).

在实际操作Money的问题人们一向关注他的安全性等问题,同时本人习惯在通过http方式访问非外网时采用Commons-httpclient的post发送实现,简单方便,所以采用此种实现:

具体看以下API和原代码:

网银在线支付API接口:

商户>>>>>>网银在线支付:

商户编号

订单编号

订单总金额

币种

支付动作完成后返回到该url,支付结果以POST方式发送

订单MD5校验码

备注字段1

备注字段2

收货人姓名

收货人地址

收货人电话

收货人邮编

商品信息

订货人姓名

订货人邮件

MD5校验串生成方法:

当消费者在商户端生成最终订单的时候,将订单中的v_amountv_moneytypev_oidv_midv_urlkey六个参数的value值拼成一个无间隔的字符串(顺序不要改变)。

参数key是商户的MD5密钥(该密匙可在登陆商户管理界面后自行更改。

网银在线支付>>>商户

支付完成后页面转到商户,从网银在线支付返回的消息格式为:

该消息格式详细解释如下:

v_url是该笔订单提交时参数v_url的值,即网银返回到商户的接口地址。

变量名称

变量命名

返回值说明

订单编号

v_oid

商户发送的v_oid定单编号。

支付状态

v_pstatus

20(表示支付成功)

30(表示支付失败)

支付结果信息

v_pstring

支付完成

支付完成

支付方式

v_pmode

支付银行,例如工商银行

订单MD5校验码

v_md5str

该参数的MD5字符串的顺序为:

v_oid,v_pstatus,v_amount,v_moneytype,key

MD5字符串示例:

-342012.340key

用MD5函数加密上述字符串后得到的值如果和v_md5str值相等即表明返回的信息没有被纂改

订单总金额

v_amount

订单实际支付金额

币种

v_moneytype

订单实际支付币种

备注字段1

remark1

备注字段2

remark2

表3

;

;

;

;

;

;

;

;

;

;

/**

*

*网银接口服务的代理

*

*@authorlonggangbai

*

*/

publicclassChinaPayProxy{

/**

*在下訂單時采用的的Md5加密的信息:

MD5校验串生成方法:

当消费者在商户端生成最终订单的时候,将订单中的v_amount

*v_moneytypev_oidv_midv_urlkey六个参数的value值拼成一个无间隔的字符串(顺序不要改变)。

*参数key是商户的MD5密钥(该密匙可在登陆商户管理界面后自行更改。

*

*@paramv_amount

*@paramv_moneytype

*@paramv_oid

*@paramv_mid

*@paramv_url

*@paramkey

*@return

*/

privatestaticStringgetMd5Sign(Stringv_amount,Stringv_moneytype,

Stringv_oid,Stringv_mid,Stringv_url,Stringkey){

StringBuffersb=newStringBuffer();

sb.append(v_amount);

sb.append(v_moneytype);

sb.append(v_oid);

sb.append(v_mid);

sb.append(v_url);

sb.append(key);

byte[]bytes=DigestUtils.md5(sb.toString());

Stringmd5info=newString(bytes).toUpperCase();

returnmd5info;

}

/**

*调用支付网关接口网址银行结帐的接口代理(本人习惯采用Commons-httpclient实现)

*用途:

用来接受商户发给网银在线服务支付的订单信息

*

*@paramv_mid

*商户编号(非空)

*@paramv_oid

*订单编号(非空)(格式:

订单生成日期(yyyymmdd)-商户编号-商户流水号)字段不可超过64位

*@paramv_amount

*订单总金额(非空)

*@paramv_moneytype

*货币类型(非空)0:

RMB1美元

*@paramv_url

*(非空)支付的动作完成时返回的该url,支付结果以post方式发送

*@paramv_md5info

*订单md5校验码

*@paramremark1

*备注字段1(可选字段)

*@paramremark2

*备注字段2(可选字段)

*@paramv_vmd

*yyyymmdd备注字段2(不可为空字段)

*@paramv_rcvname

*收货人姓名(自定义非网银必须字段)

*@paramv_rcvaddr

*收货人地址(自定义非网银必须字段)

*@paramv_rcvtel

*收货人电话(自定义非网银必须字段)

*@paramv_rcpost

*收货人邮编(自定义非网银必须字段)

*@paramv_orderstatus

*商品信息(自定义非网银必须字段)

*@paramv_ordername

*订货人姓名(自定义非网银必须字段)

*@paramv_orderemail

*订货人邮件(自定义非网银必须字段)

*@return

*/

publicstaticbooleanchinaBankPayCheck(Stringv_mid,Stringv_oid,

Stringv_amount,Stringv_moneytype,Stringv_url,Stringremark1,

Stringremark2,Stringv_rcvname,Stringv_rcvaddr,

Stringv_rcvtel,Stringv_rcpost,Stringv_orderstatus,

Stringv_ordername,Stringv_orderemail){

Propertiesp=Env.getEnv().getProperties();

Stringmd5key=p.getProperty(CHINABANK_PAY_MD5_KEY);

Stringv_md5info=getMd5Sign(v_amount,v_moneytype,v_oid,v_mid,

v_url,md5key);

MapparamMaps=newHashMap();

paramMaps.put("v_mid",v_mid);

paramMaps.put("v_oid",v_oid);

paramMaps.put("v_amount",v_amount);

paramMaps.put("v_moneytype",v_moneytype);

paramMaps.put("v_url",p.getProperty(CHINABANK_NOTIFY_URL_HTTP));

paramMaps.put("v_md5info",v_md5info);

paramMaps.put("remark1",remark1);

paramMaps.put("remark2",remark2);

paramMaps.put("v_rcvname",v_rcvname);

paramMaps.put("v_rcvaddr",v_rcvaddr);

paramMaps.put("v_rcvtel",v_rcvtel);

paramMaps.put("v_rcpost",v_rcpost);

paramMaps.put("v_orderstatus",v_orderstatus);

paramMaps.put("v_ordername",v_ordername);

paramMaps.put("v_orderemail",v_orderemail);

returnHTTPClient.executeHttp(CHINABANK_PAY_HTTPS,paramMaps,null);

}

/**

*result为支付完毕接受的结果的map校验检测在网银支付数据是否被拦截的

*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1