package com.matrix.component.wechat.externalInterface.business; import com.matrix.component.wechat.externalInterface.common.Util; import com.matrix.component.wechat.externalInterface.protocol.payComProtocol.JsApiPayComReqData; import com.matrix.component.wechat.externalInterface.protocol.payComProtocol.JsApiPayComResData; import com.matrix.component.wechat.externalInterface.protocol.payProtocol.JsApiPayReqData; import com.matrix.component.wechat.externalInterface.protocol.payProtocol.JsApiPayResData; import com.matrix.component.wechat.externalInterface.protocol.queryProtocol.ScanPayQueryReqData; import com.matrix.component.wechat.externalInterface.protocol.queryProtocol.ScanPayQueryResData; import com.matrix.component.wechat.externalInterface.protocol.refundProtocol.RefundReqData; import com.matrix.component.wechat.externalInterface.protocol.refundProtocol.RefundResData; import com.matrix.component.wechat.externalInterface.service.JsApiPayComService; import com.matrix.component.wechat.externalInterface.service.JsApiPayService; import com.matrix.component.wechat.externalInterface.service.RefundService; import com.matrix.component.wechat.externalInterface.service.ScanPayQueryService; import org.apache.log4j.Logger; import org.springframework.beans.BeanUtils; /** * User: rizenguo Date: 2014/12/1 Time: 17:05 */ public class JsApiPayBusiness { private JsApiPayService jsApiPayService; //打log用 Logger log=Logger.getLogger(JsApiPayBusiness.class); public JsApiPayBusiness() throws Exception { jsApiPayService = new JsApiPayService(); } /** * * 生成预付订单 * @author:姜友瑶 * @param scanPayReqData * 返回类型 void * @throws Exception * @date 2016年10月13日 */ public JsApiPayResData createPrapareOrder(JsApiPayReqData jsApiPayReqData) throws Exception { // 接受API返回 String payServiceResponseString; long costTimeStart = System.currentTimeMillis(); payServiceResponseString = jsApiPayService.request(jsApiPayReqData); long costTimeEnd = System.currentTimeMillis(); long totalTimeCost = costTimeEnd - costTimeStart; log.info("------------------request createPrapareOrder taking :" + totalTimeCost + "ms"+"--response="+payServiceResponseString); // 将从API返回的XML数据映射到Java对象 Object data = Util.getObjectFromXML(payServiceResponseString, JsApiPayResData.class); JsApiPayResData jsApiPayResData=new JsApiPayResData(); BeanUtils.copyProperties(data,jsApiPayResData); return jsApiPayResData; } /** * * 支付成功后查询微信订单 * @author:jiangyouyao * @param scanPayReqData * 返回类型 void * @throws Exception * @date 2016年10月13日 */ public ScanPayQueryResData queryPrapareOrder(ScanPayQueryService scanPayQueryService ,ScanPayQueryReqData scanPayQueryReqData) throws Exception { // 接受API返回 String payServiceResponseString; long costTimeStart = System.currentTimeMillis(); payServiceResponseString = scanPayQueryService.request(scanPayQueryReqData); long costTimeEnd = System.currentTimeMillis(); long totalTimeCost = costTimeEnd - costTimeStart; log.info("------------------request createPrapareOrder taking :" + totalTimeCost + "ms"+"--response="+payServiceResponseString); // 将从API返回的XML数据映射到Java对象 ScanPayQueryResData scanPayQueryResData = (ScanPayQueryResData) Util.getObjectFromXML(payServiceResponseString, ScanPayQueryResData.class); return scanPayQueryResData; } /** * * 专家提现,商家向用户(该系统中的专家)支付 * @author:jiangyouyao * @param scanPayReqData * 返回类型 void * @throws Exception * @date 2017年5月25日 */ public JsApiPayComResData payComOrder(JsApiPayComService jsApiPayComService ,JsApiPayComReqData jsApiPayComReqData) throws Exception { // 接受API返回 String payServiceResponseString; long costTimeStart = System.currentTimeMillis(); payServiceResponseString = jsApiPayComService.request(jsApiPayComReqData); long costTimeEnd = System.currentTimeMillis(); long totalTimeCost = costTimeEnd - costTimeStart; log.info("------------------request createPrapareOrder taking :" + totalTimeCost + "ms"+"--response="+payServiceResponseString); // 将从API返回的XML数据映射到Java对象 JsApiPayComResData jsApiPayComResData = (JsApiPayComResData) Util.getObjectFromXML(payServiceResponseString, JsApiPayComResData.class); return jsApiPayComResData; } /** * * 退款,商家向用户(该系统中的专家)支付 * @author:jiangyouyao * @param scanPayReqData * 返回类型 void * @throws Exception * @date 2017年5月25日 */ public RefundResData refundComOrder(RefundService refundService ,RefundReqData refundReqData) throws Exception { // 接受API返回 String payServiceResponseString; long costTimeStart = System.currentTimeMillis(); payServiceResponseString = refundService.request(refundReqData); long costTimeEnd = System.currentTimeMillis(); long totalTimeCost = costTimeEnd - costTimeStart; log.info("------------------request createPrapareOrder taking :" + totalTimeCost + "ms"+"--response="+payServiceResponseString); // 将从API返回的XML数据映射到Java对象 RefundResData RefundResData = (RefundResData) Util.getObjectFromXML(payServiceResponseString, RefundResData.class); return RefundResData; } }