code: public static SecapiPayRefundResult secapiPayRefund(SecapiPayRefund secapiPayRefund,String key){
  		Map<String,String> map = MapUtil.objectToMap( secapiPayRefund);
  		String sign = SignatureUtil.generateSign(map,secapiPayRefund.getSign_type(),key);
  		secapiPayRefund.setSign(sign);
  		String secapiPayRefundXML = XMLConverUtil.convertToXML( secapiPayRefund);
  		HttpUriRequest httpUriRequest = RequestBuilder.post()
  				.setHeader(xmlHeader)
  				.setUri(baseURI()+ "/secapi/pay/refund")
  				.setEntity(new StringEntity(secapiPayRefundXML,Charset.forName("utf-8")))
  				.build();
  		return LocalHttpClient.keyStoreExecuteXmlResult(secapiPayRefund.getMch_id(),httpUriRequest,SecapiPayRefundResult.class,secapiPayRefund.getSign_type(),key);
  	}
docs: 申请退款
  
  注意：
  1.交易时间超过半年的订单无法提交退款；
  2.微信支付退款支持单笔交易分多次退款，多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。一笔退款失败后重新提交，要采用原来的退款单号。总退款金额不能超过用户实际支付金额。
  @param secapiPayRefund secapiPayRefund
  @param key 商户支付密钥
  @return SecapiPayRefundResult