第三方系统如何获取银企互联电子回单

栏目:云星瀚知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

第三方系统如何获取银企互联电子回单

解决方法

一、配置OpenAPI接口

    参考苍穹OpenAPI新体验 之 查询接口,新增一个操作API,自定义查询条件和返回值。

    配置方式可以参考已有接口自定义条件和返回值,接口文档路径:OpenAPI-API文档-资金云-银企互联-电子回单查询

二、根据获取的Json信息获取电子回单文件

    电子回单中uploadfilename字段记录了文件地址,获取后可根据其获取真实路径,例:

    String realUploadUrl = getRealUploadUrl(receipt);
    String[] split = realUploadUrl.split("/");
    String fileName = split[split.length - 1];
    String desPlace = "./".concat(fileName);
    OutputStream out = downloadFile(desPlace, realUploadUrl);
    File ofdFile = getFile(out, realUploadUrl, desPlace);
    
    
    /**
     * 获取文件真实路径
     */
    public static String getRealUploadUrl(DynamicObject receipt) {
        String uploadFilName = receipt.getString("uploadfilename");
        String realPath = "";
        if (StringUtils.isNotEmpty(uploadFilName)) {
            realPath = uploadFilName;
            if (!uploadFilName.contains(".") && !uploadFilName.contains("/")) {
                //不是以路径结尾的, 作为查询条件去查实际路径
                try {
                    FileService attachmentFileService = FileServiceFactory.getAttachmentFileService();
                    realPath = attachmentFileService.getFileServiceExt().getRealPath(uploadFilName);
                }catch (Exception e) {
                    logger.error("获取文件真实路径失败" + ExceptionUtils.getExceptionStackTraceMessage(e));
                }
            }
        }
        return realPath;
    }
   
    public static OutputStream downloadFile(String desPlace, String realUploadUrl) {
	OutputStream out = null;
	try {
		FileService fs = FileServiceFactory.getAttachmentFileService();
		String userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36";
		try {
		out = new FileOutputStream(desPlace);
		} catch (FileNotFoundException e) {
			logger.error("根据目标路径创建文件输出流出错 {}", e.getMessage());
		}
		fs.download(realUploadUrl, out, userAgent);
	} catch (Exception e) {
		logger.error("执行download下载操作出错 {}", e.getMessage());
	}
	return out;
   }
   
   public static File getFile(OutputStream outStream, String relativeUrl, String targetPdfRoute){
	FileService fileService = FileServiceFactory.getAttachmentFileService();
	try (InputStream inputStream = fileService.getInputStream(relativeUrl)){
		byte[] buffer = new byte[inputStream.available()];
		inputStream.read(buffer);
		File targetFile = new File(targetPdfRoute);
		outStream.write(buffer);
		return targetFile;
	}catch (Exception e) {
		logger.error("从容器获取电子回单pdf失败 {}", e.getMessage());
		return null;
	}
   }

第三方系统如何获取银企互联电子回单

解决方法一、配置OpenAPI接口 参考苍穹OpenAPI新体验 之 查询接口,新增一个操作API,自定义查询条件和返回值。 配置方式可以参...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息