public void downConentBill() throws Exception { String alipay_url =this.getBillDownloadUrl(); String filename=getDownloadFileName(alipay_url); String down_url = "f:\\alipaybill\\"+filename+".zip"; /* * 通过调用支付宝接口返回的url下载zip文件 */ boolean down_success = downLoadZip(alipay_url,down_url); String connetall = ""; //true or false 下载成功,调用解压方法 if(down_success){ File save_down_url = new File(down_url); /* * 解压下载的zip文件 */ // String unzipFilePath = comZipCvsFile(save_down_url); /* * 读取下载的zip文件,返回一个string字符串 */ connetall = readZipToString(save_down_url); } /* 返回结果 * 1.false,下载失败 * 2.空字符串||"false"。解压或者读取转string失败 */ //return connetall; }

/** * 通过支付宝查询对账单接口返回的url,下载zip文件 * @param alipay_url * @param down_url * @return */ public static boolean downLoadZip(String alipay_url,String down_url) { boolean down_success = false; int bytesum = 0; int byteread = 0; Date date = new Date(); SimpleDateFormat sf = new SimpleDateFormat("yyyy/MM/dd"); String dateFloder = sf.format(date); InputStream inStream = null; FileOutputStream fs = null; try { URL url = new URL(alipay_url); URLConnection conn = url.openConnection(); inStream = conn.getInputStream(); //自定义文件保存地址 String unzipFilePath = down_url.substring(0, down_url.lastIndexOf("\\"));//判断下载保存路径文件夹 File unzipFileDir = new File(unzipFilePath);//下载文件存放地址 if (!unzipFileDir.exists() || !unzipFileDir.isDirectory()) { unzipFileDir.mkdirs(); } //解压文件是否已存在 File entryFile = new File(down_url); if (entryFile.exists()) { //删除已存在的目标文件 entryFile.delete(); } fs = new FileOutputStream(down_url); byte[] buffer = new byte[4028]; while ((byteread = inStream.read(buffer)) != -1) { bytesum += byteread; fs.write(buffer, 0, byteread); } down_success = true; System.out.println(dateFloder+"文件下载成功....."); } catch (Exception e) { System.out.println(dateFloder+"文件下载失败" + e); return false; } finally { try { if (inStream != null) { inStream.close(); } } catch (IOException e) { inStream = null; } try { if (fs != null) { fs.close(); } } catch (IOException e) { fs = null; } } return down_success; } /** * 读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码 * @param file * @return 读取zip文件,返回字符串 * @throws Exception */ @SuppressWarnings("unchecked") public static String readZipToString(File file) throws Exception { String connet = ""; try { //获得输入流,文件为zip格式, //支付宝提供 //20886126836996110156_20160906.csv.zip内包含 //20886126836996110156_20160906_业务明细.csv //20886126836996110156_20160906_业务明细(汇总).csv ZipInputStream in = new ZipInputStream(new FileInputStream(file)); //不解压直接读取,加上gbk解决乱码问题 BufferedReader br = new BufferedReader(new InputStreamReader(in,"gbk")); ZipEntry zipFile; //返回的字符串---每个文件内容相加 BufferedWriter bw = null; //循环读取zip中的cvs文件,无法使用jdk自带,因为文件名中有中文 while ((zipFile=in.getNextEntry())!=null) { if (zipFile.isDirectory()){ //如果是目录,不处理 } String file_connet = ""; //获得cvs名字 String fileName = zipFile.getName(); System.out.println("-----"+fileName); //检测文件是否存在 if (fileName != null && fileName.indexOf(".") != -1) { String line; /* * 1.每一行用 | 隔开 * 2.每一个文件用 ; 隔开 */ // bw = new BufferedWriter(new FileWriter("d:\\test\\test.txt")); //测试读取内容 while ((line = br.readLine()) != null) { file_connet = file_connet + "|" + line; // System.out.println(line); } } connet = connet + file_connet + ";"; } // bw.write(connet); //关闭流 // bw.close(); br.close(); in.close(); } catch (Exception e) { System.out.println("zip文件读取失败" + e); return "false"; } return connet; }

支付宝支付对账单java_java下载支付宝对账单,实现与支付宝实收对账和日清日结对账...相关推荐

  1. java 微信 下载对账单_java下载微信对账单,实现与微信实收对账和日清日结对账...

    最近接手了一个棘手的工作:微信下载对账单. 刚接手完全懵逼,怎么和微信对接啊.然后就是百度.. 终于找到了组织: 微信支付|开发文档 :点击跳转 通过文档我们可以看到,首先是: 1.下载对账单开放接口 ...

  2. java实现沙箱测试环境支付宝支付(demo)和整合微信支付和支付宝支付到springmvc+spring+mybatis环境全过程(支付宝和微信支付)

    一.支付宝测试环境代码测试 1.下载电脑网站的官方demo: 下载地址:https://docs.open.alipay.com/270/106291/ 2.下载解压导入eclipse readme. ...

  3. Java教程:如何申请Java开发支付宝支付中的必要参数(AppID,支付宝公钥,应用私钥)

    今天我们要说的是,如何去申请支付宝付款开发当中需要的一些必要参数,比如AppID,支付宝公钥,应用私钥 第一步: 首先我们打开支付宝开放平台链接:https://open.alipay.com/pla ...

  4. 项目对接支付宝支付,内网穿透实现监听支付宝的支付成功异步回调通知

    调试的话使用支付宝的沙箱环境来进行调试 调试的时候因为是本地调试,没有上线的域名,无法被支付宝的异步回调请求所打到,这种情况下可以使用内网穿透来进行解决 内网穿透步骤: 内网穿透的几个常用软件 1.n ...

  5. php开发支付宝支付密码忘记了怎么办_PHP实现个人支付宝支付开发(一)

    在网站开发过程中,特别是商城类网站,都会要求网站必须能实现在线支付的功能.此时就需要通过第三方的支付平台来实现完整的交易流程.常见的第三方支付平台就比如支付宝,那么网站实现支付宝在线支付功能就需要进行 ...

  6. 支付宝支付-当面付和App支付

    公司最近在做个视频桩的项目,需要在桩上用到支付宝支付功能. 去年项目当中有应用过支付宝,当时前端是用react,后台返回qcode到前端后,前端通过react的插件(其实就是支付宝的sdk),拼接qc ...

  7. 微信公众号中的支付宝支付与微信支付 支付宝支付问题(微信bug)

    一般,在微信公众号中的商城都是需要支持微信支付和支付宝支付的,当然,较大的公司对于鹅厂和阿里的站队就不说了,所以这里简单记录一下支付宝支付和微信支付的主要流程.说是简单介绍,这是因为确实不难,因为前端 ...

  8. Android APP如何实现支付宝支付

    一.背景介绍: 业务需求需要,故加入支付宝支付功能. 二.如何实现. 1.关于APP调用支付宝支付的大致流程: 商家APP调用支付宝提供的SDK,SDK再调用支付宝APP内的支付模块.如果用户已经安装 ...

  9. java版+支付宝支付和微信支付(一)(含源码)

    最近公司在做支付模块,在接入过程中遇到了很多坑,费了不少事,现在分享一下接入方法,也记录一下,以后可能还用的到.用的是支付宝的即时到帐支付功能和微信的扫码支付功能,相比起来,个人感觉支付宝的文档和接入 ...

  10. java版+支付宝支付和微信支付(一)

    最近公司在做支付模块,在接入过程中遇到了很多坑,费了不少事,现在分享一下接入方法,也记录一下,以后可能还用的到.用的是支付宝的即时到帐支付功能和微信的扫码支付功能,相比起来,个人感觉支付宝的文档和接入 ...

最新文章

  1. 在as3中只有事件(或该事件的子级)的发送者才能侦听事件
  2. JS的对象及其属性和方法
  3. python元素分类_Python练习 - 元素分类
  4. java vk减号_Vue入门经常使用指令
  5. 批处理获取操作系统版本信息
  6. 解决ant编译中出现“includeantruntime was not set”警告的问题
  7. VTD — 应用于智能驾驶复杂交通场景仿真工具
  8. 赛门铁克NBU备份oracle慢的问题
  9. 2018科大讯飞营销广告算法大赛
  10. 51单片机STC89C52控制LED跑马灯左移(使用C51自带库_crol_()实现),详细注释
  11. 哈工大ltp词性标注列表和ICTCLAS词性列表
  12. 微博图床php上传,微博图床 - shitalpig的个人空间 - OSCHINA - 中文开源技术交流社区...
  13. VScode 设置 背景图片
  14. 【Spring应用】SPEL表达式使用
  15. 这个彬彬就是逊啦—才搞懂小学知识求最小公倍数
  16. 黑苹果是否会成为mac电脑的竞争对手?
  17. 计算机怎样禁用中等加密算法,限制加密算法和协议 - Windows Server | Microsoft Docs...
  18. stm32h7b0替代h750程序导致单片机挂掉无法烧录程序问题
  19. 【QQ空间】免费漂浮物代码
  20. aspnet登录界面代码_使用Python编写一个QQ办公版的图形登录界面!

热门文章

  1. the7主题中文版升级到v.6.7.1(2018年7月27日)
  2. html中ul和li是什么单位,html中ul,ol和li的区别
  3. 帝国cms 首页php,帝国CMS新增加专题页面
  4. 基于Qt的Littlevgl移植(Windos10)
  5. 易学笔记-系统分析师考试-第9章 系统规划/9.5 成本效益分析技术/9.5.3 投资回收期和投资回报率
  6. 计算机考试界面没有验证码,win10系统下网页验证码显示不了的两种解决方法
  7. 主动降噪python_尝试使用Pyadi主动降噪时遇到错误
  8. 40 个科研学术网站,赶紧来收藏一波!
  9. 浏览量(PV)、访客数(UV)、访问次数、跳出率
  10. 搜索计算机硬盘的索引恢复,如何修复Windows 10搜索索引 | MOS86