1. package code;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.net.HttpURLConnection;
  7. import java.net.MalformedURLException;
  8. import java.net.URL;
  9.  
  10. import com.alipay.api.AlipayApiException;
  11. import com.alipay.api.AlipayClient;
  12. import com.alipay.api.DefaultAlipayClient;
  13. import com.alipay.api.request.AlipayDataDataserviceBillDownloadurlQueryRequest;
  14. import com.alipay.api.response.AlipayDataDataserviceBillDownloadurlQueryResponse;
  15.  
  16. public class AlipayBillShaX {
  17. //初始化实例请求对象
  18. public static String APP_ID = "2016091300501441";
  19. public static String APP_PRIVATE_KEY = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCbIE5coYixmwd8Kq8cZ/veQbdVba8cQF0ac9XcekJvAW1qoxO86EHzYCaTSHpZeILub5N3IKclm1qP29ELqb/9TeHzDBAsCHBgW2Jp8YEuAK5jvG+fheakp2uJ+L8yxptdu2WdJKc02U9EtA0N81T4Gy4JtMaa0NMvu+1tYy8QhpNA7GlBmxf2v6zws6LEyv/8jWpXOw+NI38Wt8cObdSfbdNXi8gsXkKb3yb5rYrAInUagHE+suN8oycYAi+VPaL3DeHJb81cSUcAQP38/9DDENDF3duOp8DyBo4Qp/nhFClOZOZoBhYnqeKaFEZ2qeKoVr1M/DEe3evpYp8RfaAxAgMBAAECggEBAJG3CgTXM6jpoGFRUwYS4zOGdWlIy7l0+D/V2WjuayMMqzQFFZBYd0Le6b1l0o/itNK2ekXnpTqdMLd7W2ViQdb15q3AghxqnOzWSp6L3bVRrH5BTnUBeYLnRQvoXembR+wHEM9I08u/6Ub2/mBBV2prVZaGehyI1ie7lq4vAdG5rdgHr+QrAcv9+rvMIjwMRR83a7FawXG1Ivp1dpCZhhYZF9oMuDE1O15xOhCImFd/xusa/hppFxcwnAOjKwWqIjYbEfj58W/zTjmchBY8SveckrlMgp5eEo0VeC1Bz3bItYTIIG16AnSvUw2dwuZ151hGY+9nIyfjnJToz1BGTgECgYEA5Vo3pb5Gj4W4h1b7hPJAJBIRv2f7LsIKojjJjj6XUJc1Ph8eY5rfuBFMIrdfO+ajND5eGbGip0ZrxGv1Xiv1ExMM29OVUb57jicb5EfxcKns03NzAuvy3bT+PMIfQr0qa8CQSloD7d2Jt+cLGwrBMcK2v28/Sd2986x4lpl8f2ECgYEArSZUHvzVQB4GkNpIxeyH4pFG/y+t2ZBhlEYpM5WbPwx4YeiLdScTvaNLQG7j7SZjBy2bfoOn+MbZc/IC84yEf6vs/uhLAnFopTh2Yy4lMB0q+5JenuMm2/9zE7zM3q02d51eOJXp+NJiGs0/WjhYOwDfVj0jIPyGARfk0DIm4tECgYEArFc0hYkLQIG8/YXxDh9y7yfcyjV6W9JXZzrAyfBih5531axQi4wvHANzcIrWNw7CCFntH+WJUaTrCfgNsqvZRnIEMZM2GuzFrzXYEZu143Dskp+oBsQCBXMhr8o271Fx9PIH+rbVSQI1oEku4S0dqySjagpQRlMnj1lEa/X9xUECgYBFvnCX4sOLBg0i/6ncf3/klRwB4hSm0+9aKECkVJip9r3uwhqaX9klw8al94S7m4C7/XTqquFX5dDlURA7RdiBDKFzs+Gy5DeAhZO6M3YrQTR1DOosGdcnOmgCBUSIVUDhQXQYWtpZrXRy00W3c4amjZ1oQUwLF2xquFMkQW9EYQKBgQCruV08yf2v61WaEBcV2g7E5bqz5Enrvdzc/9mp9CZQFRfoh//G05Lh4mER7FhOsDZsFwFaTpXBkES6QbHYFD6vfqcboLMYxC7sCewHFCx1nSVZnqvKJ3+DvtpXNUUujf6zCDsSS9OPVwjNcCgIOcUFQT2WM6Asjfzus4yCQ9xVJg==";
  20. public static String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvdGfp41Nc/HrcvcVgGJDPZg8zrOTMRb6JgUjWblKTYpuwmgbbYZaEm+czS4YKbQOK5p/k0ZUGW78jX5zfRzBHCjSCKSxbKw2RpmwcHbx6rZKStMB3Ke3MDPx/p8kayKDVKXfYH4b9ZwdMRPLrxbEiH727k4DO6K5LR6++X6nYRDPeO007uMcBJ+Lfof2s1o0Kfi5O0Mt9Z1IwoKJTFyh6OMtmhJwWrR6W1hRToMGusv1PP9rc7jUHBgPZ1zLEY1paDwEL0xXSzscN/G0Zgl7bAclW2KP5IdpavuWGes64zI7T5HU4WwpCAJMD2VsFEQUwU/qifrW0mtNT6pVq7dPTQIDAQAB";
  21. public static AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", "GBK",
  22. ALIPAY_PUBLIC_KEY,"RSA2");
  23. /**
  24. * @param args
  25. */
  26. public static void main(String[] args) {
  27. // TODO Auto-generated method stub
  28. bill_download_url ();//下载对账单接口
  29. }
  30. public static void bill_download_url (){
  31.  
  32. AlipayDataDataserviceBillDownloadurlQueryRequest request = new AlipayDataDataserviceBillDownloadurlQueryRequest();
  33. request.setBizContent("{" +
  34. " \"bill_type\":\"trade\"," +
  35. " \"bill_date\":\"2017-06-13\"" +
  36. " }");
  37. AlipayDataDataserviceBillDownloadurlQueryResponse response = null;
  38. try {
  39. response = alipayClient.execute(request);
  40. System.out.println(response.getBillDownloadUrl());
  41.  
  42. } catch (AlipayApiException e) {
  43. e.printStackTrace();
  44. }
  45. if(response.isSuccess()){
  46. //将接口返回的对账单下载地址传入urlStr
  47. String urlStr=response.getBillDownloadUrl();
  48. //指定希望保存的文件路径
  49. String filePath = "D:\\Users\\fund_bill_20170613.csv.zip";
  50. URL url = null;
  51. HttpURLConnection httpUrlConnection = null;
  52. InputStream fis = null;
  53. FileOutputStream fos = null;
  54. try {
  55. url = new URL(urlStr);
  56. httpUrlConnection = (HttpURLConnection) url.openConnection();
  57. httpUrlConnection.setConnectTimeout(5 * 1000);
  58. httpUrlConnection.setDoInput(true);
  59. httpUrlConnection.setDoOutput(true);
  60. httpUrlConnection.setUseCaches(false);
  61. httpUrlConnection.setRequestMethod("GET");
  62. httpUrlConnection.setRequestProperty("CHARSET", "UTF-8");
  63. httpUrlConnection.connect();
  64. fis = httpUrlConnection.getInputStream();
  65. byte[] temp = new byte[1024];
  66. int b;
  67. fos = new FileOutputStream(new File(filePath));
  68. while ((b = fis.read(temp)) != -1) {
  69. fos.write(temp, 0, b);
  70. fos.flush();
  71. }
  72. } catch (MalformedURLException e) {
  73. e.printStackTrace();
  74. } catch (IOException e) {
  75. e.printStackTrace();
  76. } finally {
  77. try {
  78. if(fis!=null) fis.close();
  79. if(fos!=null) fos.close();
  80. if(httpUrlConnection!=null) httpUrlConnection.disconnect();
  81. } catch (IOException e) {
  82. e.printStackTrace();
  83. }
  84. }
  85. }
  86. }
  87. }

注意要引用SDK中的jar包 alipay-sdk-java

支付宝对账单下载Java沙箱调用的更多相关文章

  1. 支付宝对账单下载Java正式商户调用

    package code; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; impo ...

  2. 支付宝(查询对账单下载地址(alipay.data.dataservice.bill.downloadurl.query))

    通过url下载zip对账单文件,进行解压,读取压缩文件内容. import java.io.BufferedOutputStream; import java.io.BufferedReader; i ...

  3. Java沙箱安全机制介绍【转载】

    沙箱安全机制的应用层面:360沙箱.win10沙箱.包括VMware Workstation.Oracle VM VirtualBox都可以充当沙箱去使用,沙箱中的操作与本机无关,进而保证本机的安全性 ...

  4. OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用OpenCV的示例

    转自:  http://blog.csdn.net/yanzi1225627/article/details/16917961 开发环境:windows+ADT Bundle+CDT+OpenCV-2 ...

  5. Java沙箱技术

    自从Java技术出现以来,有关Java平台的安全性及由Java技术发展所引发的新的安全性问题,引起了越来越多的关注.目前,Java已经大量应用在各个领域,研究Java的安全 性对于更好地使用Java具 ...

  6. java中调用dll文件的两种方法

    一中是用JNA方法,另外是用JNative方法,两种都是转载来的, JNA地址:http://blog.csdn.net/shendl/article/details/3589676   JNativ ...

  7. 如何在Java中调用Python代码

    有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...

  8. 通过java程序调用ant build.xml配置文件中指定的target

    一.概述 通过ant实现项目的自动化部署,jar包生成,替换,tomcat关停.启动,查看项目日志: 通过java程序调用已编辑好的ant脚本build.xml配置文件中指定的target: 文中文件 ...

  9. 在Java中调用Python

    写在前面 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然,之所以要面对这个问题,或许是因为一些历史原因,或者仅仅是为了简单.恰好我在项目中就遇到了这个问题 ...

随机推荐

  1. Quartz.NET开源作业调度框架系列(三):IJobExecutionContext 参数传递-转

    前面写了关于Quartz.NET开源作业调度框架的入门和Cron Trigger , 这次继续这个系列, 这次想讨论一下Quartz.NET中的Job如何通过执行上下文(Execution Conte ...

  2. Win10激活KMS2.0

    目前,发现的唯一能激活Window10的纯净版. 下载地址: http://pan.baidu.com/s/1bpvMRBx 好孩子看不见: http://pan.baidu.com/s/1bo8xP ...

  3. Ubuntu18.04下的 Android Studio 3.1.2

    Android Studio安装 参考官网上的安装说明 # 安装依赖 :i386 lib32z1 libbz2-1.0:i386 安装openjdk (Update 2018-08-21: 这次重装U ...

  4. 通过Parcelable协议传递数据出现系列错误

    07-14 00:42:37.414: E/AndroidRuntime(17687): FATAL EXCEPTION: main 07-14 00:42:37.414: E/AndroidRunt ...

  5. Map遍历的几种方法

    查看Map自带API map遍历方法: public static void main(String[] args) { Map<Integer,String> map = new Has ...

  6. 总结一下关于mysql 5.6 新特性

    一直断断续续的看一些mysql特性,今天总结一下,以下是列表,网址 http://mariadb.org/ (也是类似的特性), http://mysql.com/ 最近在看关于mysql新特性的一些 ...

  7. android开发学习---开发一个简易的短信发送器

    一.需求: 开发一个简易的短信发送器,输入:对方手机号码,短信内容,点击发送按钮,短信发送成功,对方手机成功收到短信. 其中要求短信内容过长时可以自动拆分,长度英文是160个英文,中文是70个,中英混 ...

  8. 【基础】centos 6.X 下修改图形界面为命令行界面(单用户救援模式)

    1. Linux开机引导的时候,按键盘上的e 就可以进入进入GRUB菜单界面. 2.在出现GRUB引导画面时(CentOS(2.6.18-274**)),按字母e键,进入GRUB编辑状态: 3.把光标 ...

  9. ASP.NET MVC同时支持web与webapi模式

    原文地址:https://blog.csdn.net/laymat/article/details/65444701 我们在创建 web mvc项目时是不支持web api的接口方式访问的,所以我们需 ...

  10. C#创建文件夹并设置权限

    原文地址:https://www.cnblogs.com/top5/archive/2010/04/12/1710141.html /*  需要添加以下命名空间:  using System.IO;  ...