@Override public CCPCBillInfo queryCCPCBillInfo(String mrchNo, String rmtAccNo, String payNo) { CCPCBillInfo billInfo = null; PayCCPC payCCPC = payCCPCService.findPayCCPCByPayNoAndMrchNo(payNo, mrchNo); if (payCCPC != null) { if (StringUtils.isNotBlank(rmtAccNo)) { if (payCCPC.getRmtAccNo().equals(rmtAccNo)) { throw new AppRTException( AppExCode.ILLEGAL_PARAMS, "非法数据,transRefNo[" + payNo + "]对应rmtAccNo[" + rmtAccNo + "],但查出的是rmtAccNo[" + payCCPC.getRmtAccNo() + "]"); } } billInfo = XPOSPClientUtils.payCCPCToCCPCBillInfo(payCCPC); String elecsignsPath = XpospSysProperty.getESignaturePath() + payCCPC.getMrchNo() + File.separatorChar + payCCPC.getStoreNo() + File.separatorChar; String rmtElecSignDataFileName = payNo + "-rmt" + "." + XPOSPClientUtils.ESIGNATURE_PICTURE_SUFFIX; String bnyElecSignDataFileName = payNo + "-bny" + "." + XPOSPClientUtils.ESIGNATURE_PICTURE_SUFFIX; File remitElecSignDataFile = new File(elecsignsPath + rmtElecSignDataFileName); File bnyElecSignDataFile = new File(elecsignsPath + bnyElecSignDataFileName); if (remitElecSignDataFile.exists()) { ByteArrayOutputStream out = new ByteArrayOutputStream(); BufferedImage image; try { image = ImageIO.read(remitElecSignDataFile); ImageIO.write(image, XPOSPClientUtils.BILLINFO_PICTURE_SUFFIX, out); billInfo.setRmtElecsignData(CodecUtils.hexString(out.toByteArray())); } catch (IOException e) { e.printStackTrace(); } } if (bnyElecSignDataFile.exists()) { ByteArrayOutputStream out = new ByteArrayOutputStream(); BufferedImage image; try { image = ImageIO.read(bnyElecSignDataFile); ImageIO.write(image, XPOSPClientUtils.BILLINFO_PICTURE_SUFFIX, out); billInfo.setBnyElecsignData(CodecUtils.hexString(out.toByteArray())); } catch (IOException e) { e.printStackTrace(); } } } return billInfo; }
@Override public BillInfo findBillInfo(String transType, String transRefNo, String mrchNo, String storeNo) { BillInfo billInfo = null; CashLoad cashLoad = new CashLoad(); cashLoad.setTransNo(transRefNo); cashLoad.setMrchNo(mrchNo); cashLoad.setStoreNo(storeNo); cashLoad = cashLoadDao.queryLoad(cashLoad); TransferChannel channel = transferRouter.findChannel(cashLoad.getTargetChannel()); billInfo = channel.findBillInfo(transRefNo); TransferChannelType channelType = TransferChannelType.fromChannelName(cashLoad.getTargetChannel()); // 设置其他非传统CUPS交易数据 billInfo.setTransferChannel(channelType.getChannelId()); billInfo.setMrchName(cashLoad.getMrchName()); billInfo.setStoreName(cashLoad.getStoreName()); billInfo.setOperatorName(cashLoad.getOperatorName()); // 是否要显示真实交易姓名 billInfo.setTransRefNo(cashLoad.getTransNo()); billInfo.setTransToken(cashLoad.getUpSno()); String elecsignsPath = baseESignaturePath + cashLoad.getMrchNo() + File.separatorChar + cashLoad.getStoreNo() + File.separatorChar; String fileName = transRefNo + "-" + transType + "." + XPOSPClientUtils.BILLINFO_PICTURE_SUFFIX; logger.debug("[圈存电子签购单路径elecsignsPath:" + elecsignsPath + ",fileName:" + fileName + "]"); File file = new File(elecsignsPath + fileName); ByteArrayOutputStream out = new ByteArrayOutputStream(); if (file.exists()) { BufferedImage image; try { image = ImageIO.read(file); ImageIO.write(image, XPOSPClientUtils.BILLINFO_PICTURE_SUFFIX, out); billInfo.setElecSignData(CodecUtils.hexString(out.toByteArray())); } catch (IOException e) { e.printStackTrace(); } } return billInfo; }