package cc.mrbird.febs.pay.model; import cc.mrbird.febs.pay.service.impl.JsApiPayComService; import cc.mrbird.febs.pay.service.impl.JsApiPayService; import cc.mrbird.febs.pay.service.impl.RefundService; import cc.mrbird.febs.pay.service.impl.ScanPayQueryService; import cc.mrbird.febs.pay.util.Util; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @Slf4j public class JsApiPayBusiness { private JsApiPayService jsApiPayService; public JsApiPayBusiness() throws Exception { jsApiPayService = new JsApiPayService(); } /** * * 生成预付订单 * @author:姜友瑶 * 返回类型 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 * 返回类型 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 * 返回类型 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; } }