/**
*项目:xmlInterf
*通联支付网络有限公司
* 作者:张广海
* 日期:Jan 2, 2013
* 功能说明:系统对接xml 测试demo
*/
package com.wx.activitys.xmlInterf.allinpay.xmltrans.service;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;
import java.net.ConnectException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import org.apache.commons.codec.binary.Base64InputStream;
import org.apache.commons.io.IOUtils;
import com.wx.activitys.base.utils.FileUtil;
import com.wx.activitys.xmlInterf.aipg.accttrans.AcctTransferReq;
import com.wx.activitys.xmlInterf.aipg.acctvalid.ValbSum;
import com.wx.activitys.xmlInterf.aipg.acctvalid.ValidBD;
import com.wx.activitys.xmlInterf.aipg.acctvalid.ValidBReq;
import com.wx.activitys.xmlInterf.aipg.acctvalid.VbDetail;
import com.wx.activitys.xmlInterf.aipg.ahquery.AHQueryReq;
import com.wx.activitys.xmlInterf.aipg.cash.CashReq;
import com.wx.activitys.xmlInterf.aipg.common.AipgReq;
import com.wx.activitys.xmlInterf.aipg.common.AipgRsp;
import com.wx.activitys.xmlInterf.aipg.common.FtpXml;
import com.wx.activitys.xmlInterf.aipg.common.InFTP;
import com.wx.activitys.xmlInterf.aipg.common.InfoReq;
import com.wx.activitys.xmlInterf.aipg.common.XSUtil;
import com.wx.activitys.xmlInterf.aipg.idverify.IdVer;
import com.wx.activitys.xmlInterf.aipg.payreq.Body;
import com.wx.activitys.xmlInterf.aipg.payreq.Trans_Detail;
import com.wx.activitys.xmlInterf.aipg.payreq.Trans_Sum;
import com.wx.activitys.xmlInterf.aipg.refund.Refund;
import com.wx.activitys.xmlInterf.aipg.rnp.Rnp;
import com.wx.activitys.xmlInterf.aipg.rnp.Rnpa;
import com.wx.activitys.xmlInterf.aipg.rnp.RnpaRet;
import com.wx.activitys.xmlInterf.aipg.rnp.Rnpc;
import com.wx.activitys.xmlInterf.aipg.rnp.Rnpr;
import com.wx.activitys.xmlInterf.aipg.rtreq.Trans;
import com.wx.activitys.xmlInterf.aipg.rtrsp.TransRet;
import com.wx.activitys.xmlInterf.aipg.signquery.NSignReq;
import com.wx.activitys.xmlInterf.aipg.signquery.QSignDetail;
import com.wx.activitys.xmlInterf.aipg.singleacctvalid.ValidR;
import com.wx.activitys.xmlInterf.aipg.singleacctvalid.ValidRet;
import com.wx.activitys.xmlInterf.aipg.transquery.QTDetail;
import com.wx.activitys.xmlInterf.aipg.transquery.QTransRsp;
import com.wx.activitys.xmlInterf.aipg.transquery.TransQueryReq;
import com.wx.activitys.xmlInterf.allinpay.XmlTools;
import com.wx.activitys.xmlInterf.allinpay.xmltrans.pojo.TranxCon;
/**
*/
public class TranxServiceImpl {
TranxCon tranxContants=new TranxCon();
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
/**
* 单笔退款
* 日期:Apr 28, 2015
* @author 曾招军
* @param trx_code
* @throws Exception
*/
public void refundTranx(String url, String trx_code, String busicode, boolean isTLTFront) throws Exception {
String xml = "";
AipgReq aipg = new AipgReq();
InfoReq info = makeReq(trx_code);
aipg.setINFO(info);
Refund refund = new Refund();
refund.setBUSINESS_CODE(busicode);
refund.setMERCHANT_ID(tranxContants.merchantId); //商户号
refund.setORGBATCHID("20060400000044520161019000500000515"); //交易的文件名
refund.setORGBATCHSN("0"); //实时收款设置为0
refund.setACCOUNT_NO("6212263803005657667");
refund.setACCOUNT_NAME("刘一");
refund.setAMOUNT("60");
refund.setREMARK("全部退还");
aipg.addTrx(refund);
xml = XmlTools.buildXml(aipg, true);
dealRet(sendToTlt(xml,isTLTFront,url));
}
/**
* 日期:Sep 4, 2012
* 功能:
* @param trx_code
* @throws Exception
*/
public void batchTranx(String url,String trx_code,String busicode, boolean isTLTFront) throws Exception {
String xml="";
AipgReq aipg=new AipgReq();
InfoReq info=makeReq(trx_code);
aipg.setINFO(info);
Body body = new Body() ;
Trans_Sum trans_sum = new Trans_Sum() ;
trans_sum.setBUSINESS_CODE(busicode) ;
trans_sum.setMERCHANT_ID(tranxContants.merchantId) ;
trans_sum.setTOTAL_ITEM("2") ;
trans_sum.setTOTAL_SUM("4") ;
body.setTRANS_SUM(trans_sum) ;
List <Trans_Detail>transList = new ArrayList<Trans_Detail>() ;
Trans_Detail trans_detail = new Trans_Detail() ;
Trans_Detail trans_detail2 = new Trans_Detail() ;
trans_detail.setSN("0000000000000020000111111") ;
trans_detail.setACCOUNT_NAME("张三") ;
trans_detail.setACCOUNT_PROP("0") ;
trans_detail.setACCOUNT_NO("6225211503906389") ;
trans_detail.setBANK_CODE("0308") ;
trans_detail.setAMOUNT("2") ;
trans_detail.setCURRENCY("CNY");
// trans_detail.setSETTGROUPFLAG("xCHM");
// trans_detail.setSUMMARY("分组清算");
// trans_detail.setUNION_BANK("234234523523");
transList.add(trans_detail) ;
trans_detail2.setSN("0000000000000020000011111") ;
trans_detail2.setACCOUNT_NAME("张三") ;
// trans_detail.setACCOUNT_PROP("1") ;
trans_detail2.setACCOUNT_NO("6225211503906389") ;
trans_detail2.setBANK_CODE("0308") ;
trans_detail2.setAMOUNT("2") ;
trans_detail2.setCURRENCY("CNY");
// trans_detail2.setSETTGROUPFLAG("CHM");
// trans_detail2.setSUMMARY("分组清算");
transList.add(trans_detail2);
body.setDetails(transList) ;
aipg.addTrx(body) ;
xml=XmlTools.buildXml(aipg,true);
dealRet(sendToTlt(xml,isTLTFront,url));
}
/**
* 组装报文头部
* @param trxcod
* @return
*日期:Sep 9, 2012
*/
private InfoReq makeReq(String trxcod)
{
InfoReq info=new InfoReq();
info.setTRX_CODE(trxcod);
info.setREQ_SN(tranxContants.merchantId+"-"+String.valueOf(System.currentTimeMillis()));
info.setUSER_NAME(tranxContants.userName);
info.setUSER_PASS(tranxContants.password);
info.setLEVEL("5");
info.setDATA_TYPE("2");
info.setVERSION("03");
if("300000".equals(trxcod)||"300001".equals(trxcod)||"300003".equals(trxcod)||"REFUND".equals(trxcod)){
info.setMERCHANT_ID(tranxContants.merchantId);
}
return info;
}
public String sendXml(String xml,String url,boolean isFront) throws UnsupportedEncodingException, Exception{
System.out.println("======================发送报文======================:\n"+xml);
String resp=XmlTools.send(url,xml);
System.out.println("======================响应内容======================") ;
boolean flag= this.verifyMsg(resp, tranxContants.tltcerPath,isFront);
if(flag){
System.out.println("响应内容验证通过");
}else{
System.out.println("响应内容验证不通过");
}
System.out.println(resp);
return resp;
}
public String sendToTlt(String xml,boolean flag,String url) {
try{
if(!flag){
xml=this.signMsg(xml);
}else{
xml=xml.replaceAll("<SIGNED_MSG></SIGNED_MSG>", "");
}
return sendXml(xml,url,flag);
}catch(Exception e){
e.printStackTrace();
if(e.getCause() instanceof ConnectException||e instanceof ConnectException){
System.out.println("请求链接中断,如果是支付请求,请做交易结果查询,以确认该笔交易是否已被通联受理,避免重复交易");
}
}
return "请求链接中断,如果是支付请求,请做交易结果查询,以确认该笔交易是否已被通联受理,避免重复交易";
}
/**
* 报文签名
* @param msg
* @return
*日期:Sep 9, 2012
* @throws Exception
*/
public String signMsg(String xml) throws Exception{
xml=XmlTools.signMsg(xml, tranxContants.pfxPath,tranxContants.pfxPassword, false);
return xml;
}
/**
* 验证签名
* @param msg
* @return
*日期:Sep 9, 2012
* @throws Exception
*/
public boolean verifyMsg(String msg,String cer,boolean isFront) throws Exception{
boolean flag=XmlTools.verifySign(msg, cer, false,isFront);
System.out.println("验签结果["+flag+"]") ;
return flag;
}
/**
*下载对账文件
* @see com.aipg.core.TranxOperati
没有合适的资源?快使用搜索试试~ 我知道了~
直销系统DRP
共1133个文件
java:537个
class:270个
jsp:59个
需积分: 9 16 下载量 41 浏览量
2018-07-20
09:34:57
上传
评论 3
收藏 3.54MB ZIP 举报
温馨提示
DRP直销系统 主要内容有会员积分 会员树状结构图以及积分系统等等
资源推荐
资源详情
资源评论
收起资源包目录
直销系统DRP (1133个子文件)
allinpay-pds.cer 903B
QYResultType.class 25KB
FastweixinTest.class 22KB
QYWeixinSupport.class 17KB
WeixinSupport.class 17KB
ResultType.class 14KB
DataCubeAPI.class 14KB
NetWorkCenter.class 12KB
MaterialAPI.class 12KB
Base64Image.class 11KB
CustomAPI.class 9KB
MessageUtil.class 8KB
UserAPI.class 8KB
QYTagAPI.class 7KB
MediaAPI.class 7KB
MessageAPI.class 7KB
QYUserAPI.class 7KB
WXBizMsgCrypt.class 6KB
QYMediaAPI.class 6KB
QYAgent.class 6KB
QYAPIConfig.class 5KB
OauthAPI.class 5KB
ApiConfig.class 5KB
TemplateMsgAPI.class 5KB
TagAPI.class 5KB
QYAgentAPI.class 5KB
QYUser.class 5KB
Common.class 5KB
GetQYAgentInfoResponse.class 4KB
QYMenuAPI.class 4KB
MenuAPI.class 4KB
FileController.class 4KB
QYDepartmentAPI.class 4KB
SystemAPI.class 4KB
GetQYUserInfoResponse.class 4KB
QYNewsRespMsg.class 4KB
NewsMsg.class 3KB
JsAPI.class 3KB
BaseAPI.class 3KB
DownloadMaterialResponse.class 3KB
JSONUtil.class 3KB
ImgCompress.class 3KB
FileUtil.class 3KB
GetUserInfoResponse.class 3KB
QrcodeAPI.class 3KB
ArticleTotalDetail.class 3KB
ArticleSummary.class 3KB
QYAPIConfig$2.class 3KB
SignUtil.class 3KB
ApiConfig$2.class 3KB
QYBaseAPI.class 3KB
QYAPIConfig$1.class 3KB
UserReadHour.class 3KB
ApiConfig$1.class 3KB
XMLParse.class 3KB
QYWeixinControllerSupport.class 3KB
QYDepartment.class 3KB
QYOauthAPI.class 3KB
WXUser.class 2KB
QYSendLocationEvent.class 2KB
Article.class 2KB
UserRead.class 2KB
MediaTypes.class 2KB
MusicMsg.class 2KB
QYMenuType.class 2KB
QYMenuButton.class 2KB
QYLocationReqMsg.class 2KB
MenuButton.class 2KB
ConfigChangeNotice.class 2KB
QYConfigChangeNotice.class 2KB
QYTextRespMsg.class 2KB
DownloadMediaResponse.class 2KB
QYBatchJobEvent.class 2KB
DownloadMediaResponse.class 2KB
QYSendPicInfoEvent.class 2KB
SHA1.class 2KB
Matchrule.class 2KB
RestExceptionHandler.class 2KB
TextMsg.class 2KB
Article.class 2KB
GlobalDefaultExceptionHandler.class 2KB
QYBaseMsg.class 2KB
JsApiUtil.class 2KB
BaseMsg.class 2KB
SendMessageEvent.class 2KB
QYBaseRespMsg.class 2KB
QYLocationEvent.class 2KB
MenuType.class 2KB
WeixinServletSupport.class 2KB
MessageBuilder.class 2KB
QYMessageAPI.class 2KB
GetMaterialTotalCountResponse.class 2KB
SendPicsInfoEvent.class 2KB
QYMpNewsMsg.class 2KB
QYNewsMsg.class 2KB
QYWeixinServletSupport.class 2KB
QYVideoRespMsg.class 2KB
LocationReqMsg.class 2KB
VideoMsg.class 2KB
TemplateMsg.class 2KB
共 1133 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
It'sokay
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 用于构建 Web 应用程序的 Python 微框架 .zip
- Screenshot_20241123_213327_com_tencent_mm_MMWebViewUI.jpg
- 用于教学,学习 Python 3 的 Jupyter 笔记本.zip
- 用于执行 RPA 的 Python 包.zip
- opencv模板匹配加速原理源码和测试图像
- Screenshot_20241123_212743_com_tencent_mm_LauncherUI.jpg
- 修帝全伪实体v8(2).zip
- 用于在 Amazon SageMaker 上训练和部署机器学习模型的库.zip
- 用于与 Twilio API 通信并生成 TwiML 的 Python 模块 .zip
- Logisim16位ALU设计
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功