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

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

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

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

网银在线支付接口和应用.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字符串示例:

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

订单总金额

v_amount

订单实际支付金额

币种

v_moneytype

订单实际支付币种

备注字段1

remark1

 

备注字段2

remark2

 

表3

packagestatic

importstatic

importstatic

import

import

import

 *

 *网银接口服务的代理

 *

 *@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();

  (v_amount);

  (v_moneytype);

  (v_oid);

  (v_mid);

  (v_url);

  (key);

  byte[]bytes=());

  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=().getProperties();

  Stringmd5key=(CHINABANK_PAY_MD5_KEY);

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

    v_url,md5key);

  MapparamMaps=newHashMap();

  ("v_mid",v_mid);

  ("v_oid",v_oid);

  ("v_amount",v_amount);

  ("v_moneytype",v_moneytype);

  ("v_url",(CHINABANK_NOTIFY_URL_HTTP));

  ("v_md5info",v_md5info);

  ("remark1",remark1);

  ("remark2",remark2);

  ("v_rcvname",v_rcvname);

  ("v_rcvaddr",v_rcvaddr);

  ("v_rcvtel",v_rcvtel);

  ("v_rcpost",v_rcpost);

  ("v_orderstatus",v_orderstatus);

  ("v_ordername",v_ordername);

  ("v_orderemail",v_orderemail);

  return(CHINABANK_PAY_HTTPS,paramMaps,null);

 }

 /**

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

 *

 *@paramv_oid

 *           获取结果中的訂單编号

 *@paramv_pstatus

 *           获取訂單的支付状态

 *@paramv_pstring

 *           支付的结果

 *@paramv_amount

 *           实际支付的金额

 *@paramv_moneytype

 *           实际支付的币种

 *@paramv_md5str

 *           获取訂單校验的MD5验证

 *@return

 */

 publicstaticbooleancheckPayOff(Stringv_oid,Stringv_pstatus,

   Stringv_pstring,Stringv_amount,Stringv_moneytype,

   Stringv_md5str){

  Propertiesp=().getProperties();

  Stringmd5key=(CHINABANK_PAY_MD5_KEY);

  Stringcheckmd5=getCheckMd5(v_oid,v_pstatus,v_amount,v_moneytype,

    md5key);

  if(v_md5str)){

   returntrue;

  }

  returnfalse;

 }

 /**

 *得到网银訂單付款后Md5加密检查

 *

 *@paramv_oid

 *@paramv_pstatus

 *@paramv_amount

 *@paramv_moneytype

 *@paramkey

 *@return

 */

 privatestaticStringgetCheckMd5(Stringv_oid,Stringv_pstatus,

   Stringv_amount,Stringv_moneytype,Stringkey){

  StringBuffersb=newStringBuffer();

  (v_oid);

  (v_pstatus);

  (v_amount);

  (v_moneytype);

  (key);

  byte[]bytes=());

  Stringmd5info=newString(bytes).toUpperCase();

  returnmd5info;

 }

}

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

当前位置:首页 > 工程科技 > 电力水利

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

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