查询微信账单接口实现

 /**
  * 查询微信账单
  * @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;

 }

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_无往而不胜_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值