上月用得好好的支付宝获取月账单的Java接口,月初突然返回“入参不合法”的解决方法

上月用得好好的支付宝获取月账单接口,月初突然返回“入参不合法”的解决方法。

【现象描述】

获取支付宝获取月账单接口的Java代码如下:

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", appid, appPrivateKey, "json", "UTF-8", alipayPublicKey, signType);//获得初始化的AlipayClient
AlipayDataDataserviceBillDownloadurlQueryRequest request = new AlipayDataDataserviceBillDownloadurlQueryRequest();//创建API对应的request类
request.setBizContent("{" +
        "    \"bill_type\":\"trade\"," +
        "    \"bill_date\":\"2019-05\"}"); //设置业务参数
AlipayDataDataserviceBillDownloadurlQueryResponse response = null;//通过alipayClient调用API,获得对应的response类
try {
    response = alipayClient.execute(request);
} catch (AlipayApiException e) {
    e.printStackTrace();
}
System.out.println(response.getBillDownloadUrl());

2019-06-01获取5月账单时,返回如下错误信息:

2019-06-01 07:51:50,698 [main] ERROR [sdk.biz.err] - ErrorScene^_^40004^_^isv.invalid_arguments^_^null^_^Windows 8.1^_^2019-06-01 07:51:50^_^ProtocalMustParams:sign=ISL0oAZbF0RZznh4/xH***=&timestamp=2019-06-01 07:51:48&sign_type=RSA&charset=UTF-8&app_id=2016***&method=alipay.data.dataservice.bill.downloadurl.query&version=1.0^_^ProtocalOptParams:alipay_sdk=alipay-sdk-java-dynamicVersionNo&format=json^_^ApplicationParams:biz_content={ ? ?"bill_type":"trade", ? ?"bill_date":"2019-06"}^_^Body:{"alipay_data_dataservice_bill_downloadurl_query_response":{"code":"40004","msg":"Business Failed","sub_code":"isv.invalid_arguments","sub_msg":"入参不合法"},"sign":"cewSD6P+xWuoxhJsM2XTBlT/***="}

格式化后的返回结果如下:

{
    "alipay_data_dataservice_bill_downloadurl_query_response": {
        "code": "40004",
        "msg": "Business Failed",
        "sub_code": "isv.invalid_arguments",
        "sub_msg": "入参不合法"
    }

【解决方法】

6月1日解决了一会,突然有事,就搁在哪儿。6月2日早上再来解决时,突然好,把我的亲身体验分享给大家。

原因:需要T+1天生成账单,如果每月1号查询上月账单会返回“入参不合法”;

解决方法:每月2号凌晨以后再查上月账单,就正常了。

上一篇:php – 在服务器端接收支付宝移动支付的请求字符串


下一篇:蚂蚁区块链BaaS平台应用开发指南(四):JavaSDK的接入