查询微信账单接口实现

 /**
  * 查询微信账单
  * @param bill_date 日期   yyyyMMdd
  * @return  结果
  */
 public static List<BillRecord> downWxBill(String bill_date)
 {

  String uri = BatchNumber.getValue("wx_uri");//wx_uri=https://api.mch.weixin.qq.com/payx/downxxxx
  String appid = BatchNumber.getValue("wx_appid");//wx_appid=wxc99daxxxxxx
  String bill_type = "ALL";//
  String mch_id = BatchNumber.getValue("wx_mch_id");//wx_mch_id=1x149xxxx
  String nonce_str = RandomStringUtils.randomAlphanumeric(30);
  String key = BatchNumber.getValue("wx_key");//wx_key=rsfg13sxx1g5sr1g65sd123xxxx
  String a = "appid=" + appid + "&bill_date=" + bill_date + "&bill_type="
          + bill_type + "&mch_id=" + mch_id + "&nonce_str=" + nonce_str;

  String signTemp = a + "&key=" + key;
  String sign = DecriptUtil.md5(signTemp).toUpperCase();

  String requestHeader = "application/xml";
  StringBuilder sb = new StringBuilder();
  sb.append("<xml>");
  sb.append("<appid>" + appid + "</appid>");
  sb.append("<bill_date>" + bill_date + "</bill_date>");
  sb.append("<bill_type>" + bill_type + "</bill_type>");
  sb.append("<mch_id>" + mch_id + "</mch_id>");
  sb.append("<nonce_str>" + nonce_str + "</nonce_str>");
  sb.append("<sign>" + sign + "</sign>");
  sb.append("</xml>");

  String requestBody = sb.toString();

  List<BillRecord> brList = new ArrayList<BillRecord>();

  try
  {
   String result = HttpClientUtil.postdata(uri, requestHeader,
           requestBody, null);
   System.out.println("time:"
           + DateUtil.getCurrentTimeStringUsingDefaultFormat());
  /* System.out.println("result=" + result);*/

   if (null != result && result.length() > 0)
   {
    String[] resArr = result.split("\n");

    if (resArr.length > 3)
    {
     for (int i = 1; i < resArr.length; i++)
     {
      String consumeStr = resArr[i].replaceAll("`", "");

      String[] consumeArr = consumeStr.split(",");
      if (consumeArr.length > 10)
      {
       // 交易时间
       String trade_time = consumeArr[0];
       // 商户订单号


       String trade_no = consumeArr[6];
       // 交易状态


       String trade_status = consumeArr[9];
       // 总金额


       String trade_money = consumeArr[12];

       BillRecord br = new BillRecord();
       br.setTrade_money(Double.parseDouble(trade_money));
       br.setTrade_no(trade_no);
       br.setTrade_status(trade_status);
       br.setTrade_time(trade_time);

       brList.add(br);

       /*System.out.println();*/
      }

     }

    }

   }

   return brList;

  }
  catch (Exception e)
  {
   e.printStackTrace();
  }

  return brList;

 }

 

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
您可以使用以下Java代码来下载微信支付账单: ```java SortedMap<Object, Object> parameters = new TreeMap<Object, Object>(); parameters.put("appid", ConfigUtil.APPID); // APPid parameters.put("mch_id", ConfigUtil.MCH_ID); // 商户id parameters.put("nonce_str", PayCommonUtil.CreateNoncestr()); // 下载对账单的日期,格式:20140603,当前日期前一天。 String billDate = DateUtil.date2Str(DateUtil.addDay(new Date(), -1), "yyyyMMdd"); parameters.put("bill_date", billDate); parameters.put("bill_type", "ALL"); // bill_type:ALL返回当日所有订单信息,默认值SUCCESS返回当日成功支付的订单。REFUND,返回当日退款订单 String sign = PayCommonUtil.createSign("utf-8", parameters); parameters.put("sign", sign); String reuqestXml = PayCommonUtil.getRequestXml(parameters); String result = CommonUtil.httpsRequest(ConfigUtil.DOWNLOAD_BILL_URL, "POST", reuqestXml); ``` 这段代码使用了微信支付的API接口,其中包括了商户的APPID和商户ID等信息。通过设置参数,您可以指定要下载的账单日期和类型。最后,通过发送HTTPS请求来获取账单数据。请确保您已经正确配置了相关的参数和URL。 #### 引用[.reference_title] - *1* *2* *3* [java下载微信账单实现微信实收对账和日清日结对账](https://blog.csdn.net/jlq_diligence/article/details/90208650)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无往而不胜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值