docs: public static DownloadbillResult payDownloadbill(MchDownloadbill downloadbill,String key){
  		Map<String,String> map = MapUtil.objectToMap(downloadbill);
  		String sign = SignatureUtil.generateSign(map,downloadbill.getSign_type(),key);
  		downloadbill.setSign(sign);
  		String closeorderXML = XMLConverUtil.convertToXML(downloadbill);
  		HttpUriRequest httpUriRequest = RequestBuilder.post()
  				.setHeader(xmlHeader)
  				.setUri(baseURI()+ "/pay/downloadbill")
  				.setEntity(new StringEntity(closeorderXML,Charset.forName("utf-8")))
  				.build();
  		return LocalHttpClient.execute(httpUriRequest,new ResponseHandler<DownloadbillResult>() {
  
  			@Override
  			public DownloadbillResult handleResponse(HttpResponse response)
  					throws ClientProtocolException, IOException {
  				int status = response.getStatusLine().getStatusCode();
                  if (status >= 200 && status < 300) {
                      HttpEntity entity = response.getEntity();
  					String str;
  					//GZIP
  					if (entity.getContentType().getValue().matches("(?i).*gzip.*")) {
  						str = StreamUtils.copyToString(new GZIPInputStream(entity.getContent()),
  								Charset.forName("UTF-8"));
  					} else {
  						str = EntityUtils.toString(entity, "utf-8");
  					}
  					EntityUtils.consume(entity);
                      if(str.matches(".*<xml>(.*|\\n)+</xml>.*")){
                      	return XMLConverUtil.convertToObject(DownloadbillResult.class,str);
                      }else{
                      	DownloadbillResult dr = new DownloadbillResult();
                      	dr.setData(str);
                      	// 获取返回头数据 签名信息
  						Header headerDigest = response.getFirstHeader("Digest");
  						if (headerDigest != null) {
  							String[] hkv = headerDigest.getValue().split("=");
  							dr.setSign_type(hkv[0]);
  							dr.setSign(hkv[1]);
  						}
                      	return dr;
                      }
                  } else {
                      throw new ClientProtocolException("Unexpected response status: " + status);
                  }
  			}
  		});
  	}