支付寶對賬單下載Java正式商戶調用


package code;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayDataDataserviceBillDownloadurlQueryRequest;
import com.alipay.api.response.AlipayDataDataserviceBillDownloadurlQueryResponse;

public class AlipayBill {
     //初始化實例請求對象     
    public static String APP_ID = "2017000000000000";   //自己的商戶appid
   // RSA簽名方式使用算法:SHA1withRSA。 注意此處是RSA 的私鑰 是Java版本格式的 如果是用.NET 就要轉換為.NET版本的格式
    public static String APP_PRIVATE_KEY = "ghjjjjffjjjjkytyyddfsgsaetertrtr..............";  
    
//RSA2簽名方式使用算法:SHA256withRSA。
//public static String APP_PRIVATE_KEY ="+zA3RJzhtiL4MIHks4GD++6RuQ/";
//公鑰是可以公用的在公共平台配置的 .NET和Java語言的都可以共用。但是要區別 RSA或者是RSA2的公鑰簽名
public static String ALIPAY_PUBLIC_KEY = "/fEsraprwCtzvzQETrNRwmZkh2QhUrCmZYI"; //rsa2 // public static String ALIPAY_PUBLIC_KEY ="/aFKRhSS5fHChIzjpMrl"; //開放平台SDK封裝了簽名實現,只需在創建DefaultAlipayClient對象時,設置請求網關(gateway),應用id(app_id),應用私鑰(private_key),編碼格式(charset),支付寶公鑰(alipay_public_key),簽名類型(sign_type)即可,報文請求時會自動進行簽名。 public static AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", "GBK", ALIPAY_PUBLIC_KEY,"RSA"); //注意在此處用的RSA簽名類型參數 如果是RSA2的就要傳RSA2參數
public static String post_bill_date="2017-06-20" ;
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub bill_download_url ();//下載對賬單接口 } public static void bill_download_url (){ //"  \"bill_date\":\"2017-07-26\""+      時間參數  "+post_bill_date+"
   //賬單時間:日賬單格式為yyyy-MM-dd,月賬單格式為yyyy-MM。
   //賬單參數類型 值 signcustomer 包含 是賬務明細的 也有業務明細的 trade 只有 是業務明細的 在這里特別注意下 以免被挖坑了 看官網的容易坑
AlipayDataDataserviceBillDownloadurlQueryRequest request
= new AlipayDataDataserviceBillDownloadurlQueryRequest(); request.setBizContent("{" + " \"bill_type\":\"trade\"," + " \"bill_date\":\"2017-07-26\""+ "}"); AlipayDataDataserviceBillDownloadurlQueryResponse response = null; try { response = alipayClient.execute(request); System.out.println(response.getBillDownloadUrl()); } catch (AlipayApiException e) { e.printStackTrace(); } //調用成功,則處理業務邏輯 if(response.isSuccess()) { //將接口返回的對賬單下載地址傳入urlStr String urlStr=response.getBillDownloadUrl(); //指定希望保存的文件路徑 String filePath = "D:\\Users\\fund_bill_20170726.csv.zip"; URL url = null; HttpURLConnection httpUrlConnection = null; InputStream fis = null; FileOutputStream fos = null; try { url = new URL(urlStr); httpUrlConnection = (HttpURLConnection) url.openConnection(); httpUrlConnection.setConnectTimeout(5 * 1000); httpUrlConnection.setDoInput(true); httpUrlConnection.setDoOutput(true); httpUrlConnection.setUseCaches(false); httpUrlConnection.setRequestMethod("GET"); httpUrlConnection.setRequestProperty("CHARSET", "UTF-8"); httpUrlConnection.connect(); fis = httpUrlConnection.getInputStream(); byte[] temp = new byte[1024]; int b; fos = new FileOutputStream(new File(filePath)); while ((b = fis.read(temp)) != -1) { fos.write(temp, 0, b); fos.flush(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if(fis!=null) fis.close(); if(fos!=null) fos.close(); if(httpUrlConnection!=null) httpUrlConnection.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } } }

以上所有注意的事項都在注釋中說明了 建議在開發中 用Java或者.NET開發的最好是用SDK封裝好的 進行調用 測試成功后就可以處理自己的系統業務邏輯了

特別注意文檔中的注釋 以免耽誤很長時間找解決方案處理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM