




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网银在线支付接口和应用关键字: 网银在线支付接口和应用 最近关注项目中在线支付,所以看一下文档,在线支付应用开发:基本所有的在线支付均采用以下方式:客户点击结帐时将关于訂單的信息和货币信息,相应的信息,经过或其他方式发送(可能和或)支付平台(块钱,或支付宝等),支付平臺处理完毕时根据相应,返回相关的信息(付款信息,訂單信息,验证信息).在实际操作Money的问题人们一向关注他的安全性等问题,同时本人习惯在通过http方式访问非外网时采用Commons-httpclient的发送实现,简单方便,所以采用此种实现:具体看以下和原代码:网银在线支付接口:商户网银在线支付: 商户编号 订单编号 订单总金额 币种支付动作完成后返回到该url,支付结果以POST方式发送 订单MD5校验码备注字段1备注字段2 收货人姓名 收货人地址 收货人电话 收货人邮编 商品信息 订货人姓名 订货人邮件MD5校验串生成方法:当消费者在商户端生成最终订单的时候,将订单中的v_amount v_moneytype v_oid v_mid v_url key六个参数的value值拼成一个无间隔的字符串(顺序不要改变)。参数key是商户的MD5密钥(该密匙可在登陆商户管理界面后自行更改。)网银在线支付商户支付完成后页面转到商户,从网银在线支付返回的消息格式为: 该消息格式详细解释如下:v_url是该笔订单提交时参数v_url 的值,即网银返回到商户的接口地址。变量名称变量命名返回值说明订单编号v_oid商户发送的v_oid定单编号。支付状态v_pstatus20(表示支付成功)30(表示支付失败)支付结果信息v_pstring支付完成支付完成支付方式v_pmode支付银行,例如工商银行订单MD5校验码v_md5str该参数的MD5字符串的顺序为:v_oid,v_pstatus,v_amount,v_moneytype,keyMD5字符串示例:20050320-1001-0000012342012.340key用MD5函数加密上述字符串后得到的值如果和v_md5str值相等即表明返回的信息没有被纂改订单总金额v_amount订单实际支付金额币种v_moneytype订单实际支付币种备注字段1remark1备注字段2remark2表3package xy;import static mons.ChinaPayConstants.CHINABANK_NOTIFY_URL_HTTP;import static mons.ChinaPayConstants.CHINABANK_PAY_HTTPS;import static mons.ChinaPayConstants.CHINABANK_PAY_MD5_KEY;import java.util.HashMap;import java.util.Map;import java.util.Properties;import mons.codec.digest.DigestUtils;import mons.Env;import mons.HTTPClient;/* * 网银接口服务的代理* * author longgangbai* */public class ChinaPayProxy /* * 在下訂單時采用的的加密的信息: MD5校验串生成方法:当消费者在商户端生成最终订单的时候, 将订单中的v_amount * v_moneytype v_oid v_mid v_url key六个参数的value值拼成一个无间隔的字符串(顺序不要改变)。 * 参数key是商户的MD5密钥(该密匙可在登陆商户管理界面后自行更改。) * * param v_amount * param v_moneytype * param v_oid * param v_mid * param v_url * param key * return */private static String getMd5Sign(String v_amount, String v_moneytype,String v_oid, String v_mid, String v_url, String key) StringBuffer sb = new StringBuffer();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();String md5info = new String(bytes).toUpperCase();return md5info;/* * 调用支付网关接口网址 银行结帐的接口代理 (本人习惯采用-httpclient实现) * 用途:用来接受商户发给网银在线服务支付的订单信息 * * param v_mid * 商户编号(非空) * param v_oid * 订单编号(非空)(格式:订单生成日期(mmdd)-商户编号-商户流水号)字段不可超过位 * param v_amount * 订单总金额 (非空) * param v_moneytype * 货币类型 (非空) : 美元 * param v_url * (非空) 支付的动作完成时返回的该,支付结果以方式发送 * param v_md5info * 订单校验码 * param remark1 * 备注字段(可选字段) * param remark2 * 备注字段 (可选字段) * param _vmd * mmdd 备注字段 (不可为空字段) * param v_rcvname * 收货人姓名 (自定义非网银必须字段) * param v_rcvaddr * 收货人地址(自定义非网银必须字段) * param v_rcvtel * 收货人电话(自定义非网银必须字段) * param v_rcpost * 收货人邮编(自定义非网银必须字段) * param v_orderstatus * 商品信息(自定义非网银必须字段) * param v_ordername * 订货人姓名(自定义非网银必须字段) * param v_orderemail * 订货人邮件(自定义非网银必须字段) * return */public static boolean chinaBankPayCheck(String v_mid, String v_oid,String v_amount, String v_moneytype, String v_url, String remark1,String remark2, String v_rcvname, String v_rcvaddr,String v_rcvtel, String v_rcpost, String v_orderstatus,String v_ordername, String v_orderemail) Properties p = Env.getEnv().getProperties();String md5key = p.getProperty(CHINABANK_PAY_MD5_KEY);String v_md5info = getMd5Sign(v_amount, v_moneytype, v_oid, v_mid,v_url, md5key);Map paramMaps = new HashMap();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);return HTTPClient.executeHttp(CHINABANK_PAY_HTTPS, paramMaps, null);/* * result为支付完毕接受的结果的map 校验检测在网银支付数据是否被拦截的 * * param v_oid* 获取结果中的訂單编号 * param v_pstatus* 获取訂單的支付状态 * param v_pstring* 支付的结果 * param v_amount* 实际支付的金额 * param v_moneytype* 实际支付的币种 * param v_md5str* 获取訂單校验的验证 * return */public static boolean checkPayOff(String v_oid, String v_pstatus,String v_pstring, String v_amount, String v_moneytype,String v_md5str) Properties p = Env.getEnv().getProperties();String md5key = p.getProperty(CHINABANK_PAY_MD5_KEY);String checkmd5 = getCheckMd5(v_oid, v_pstatus, v_amount, v_moneytype,md5key);if (checkmd5.equals(v_md5str) return true;return false;/* * 得到网银訂單付款后加密检查 * * param v_oid * param v_pstatus * param v_amount * param v_moneytype * param key * return */private static String getCheckMd5(String v_oid, String v_pstatus,String v_amount, String v_moneytype,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全培训的核心于课件
- 安全培训的思想和行动课件
- 2025年国学知识竞赛中国古代文学知识竞赛题库(+答案解析)
- ZARA快时尚供应链柔性化生产研究与分析报告
- DB6105T 110-2019 夏黑葡萄露地栽培生产技术规程
- DB6103T 52-2024 花魔芋根状茎繁殖技术规范
- 急性心梗处置流程与院前转运方案
- 高处作业专项知识考核试题(含答案)
- DB6106T 173-2021 黄土区陡坡地植被恢复技术规程
- 李白简介资料课件
- 2025年执业医师考试临床技能试题及答案
- 洽谈互赔协议书
- 大学生安全教育课件
- 湘教版小学音乐教材解析
- 乡镇卫生院手术分级管理制度
- 家装门窗订单合同协议
- 植物生理学 01-绪论学习资料
- 运输协议土方船运
- 国家职业技术技能标准 4-07-99-01 心理咨询师 劳社厅发20057号
- 委托垫资解押及房产买卖过户和二手房抵押贷款协议书
- 2025年土壤污染防治学习标准教案
评论
0/150
提交评论