| | |
| | | import org.apache.http.message.BasicNameValuePair; |
| | | import org.apache.http.util.EntityUtils; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.http.ResponseEntity; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.net.ssl.SSLContext; |
| | |
| | | @Value("${finance.apiId}") |
| | | private String appId; |
| | | |
| | | public ResultVo sendApiPost(PayReqData payReqData) throws IOException { |
| | | @Value("${finance.queryUrl}") |
| | | private String queryUrl; |
| | | |
| | | //正式 |
| | | String proUrl = "http://finpt.xjcz.gov.cn/fs-service/fs-pay/invoice.do"; |
| | | //测试 |
| | | String testUrl = "http://finpt.xjcz.gov.cn/fs-service-test/fs-pay/invoice.do"; |
| | | /** |
| | | * 请求开票,发起支付 |
| | | * @param payReqData |
| | | * @return |
| | | * @throws IOException |
| | | */ |
| | | public ResultVo sendApiPost(PayReqData payReqData) throws IOException { |
| | | |
| | | Map<String, String> param = new HashMap<>(); |
| | | |
| | |
| | | return resultVo; |
| | | } |
| | | |
| | | //组装请求体 |
| | | private static UrlEncodedFormEntity assemblyFormEntity(Map<String, String> parameters, String charset) { |
| | | List<NameValuePair> formParameters = assemblyParameter(parameters); |
| | | UrlEncodedFormEntity formEntity = null; |
| | |
| | | |
| | | } |
| | | |
| | | //在调用SSL之前需要重写验证方法,取消检测SSL 创建ConnectionManager,添加Connection配置信息 |
| | | private static HttpClient sslClient() { |
| | | try { |
| | | // 在调用SSL之前需要重写验证方法,取消检测SSL |
| | |
| | | |
| | | } |
| | | |
| | | //获取响应结果处理器,将响应结果封装为HttpResult对象 |
| | | private static ResponseHandler<HttpResultVo> getResponseHandler() { |
| | | ResponseHandler<HttpResultVo> responseHandler = new ResponseHandler<HttpResultVo>() { |
| | | @Override |
| | |
| | | return responseHandler; |
| | | } |
| | | |
| | | //判断相应内容是否为文本类型 |
| | | private static boolean isTextType(ContentType contentType) { |
| | | if (contentType == null) { |
| | | throw new RuntimeException("ContentType is null"); |
| | |
| | | |
| | | //缴费结果查询 |
| | | public JSONObject query(String orderNo) throws IOException { |
| | | String proUrl = "http://finpt.xjcz.gov.cn/fs-service/fs-pay/query.do"; |
| | | String testUrl = "http://finpt.xjcz.gov.cn/fs-service-test/fs-pay/query.do"; |
| | | |
| | | HashMap<String, String> param = new HashMap<>(); |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | |
| | | log.info("请求结果json为:" + result); |
| | | return result; |
| | | } |
| | | |
| | | |
| | | //票据查询 |
| | | public ResponseEntity<String> findBill(String billNO) throws IOException { |
| | | Map<String, String> params = new HashMap<>(); |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("billNo",billNO); |
| | | String reqdata = Base64.getEncoder().encodeToString(jsonObject.toJSONString().getBytes()); |
| | | String mac = appId+"||"+reqdata; |
| | | mac = DigestUtils.md5Hex(mac.getBytes()); |
| | | params.put("appid",appId); |
| | | params.put("reqdata",reqdata); |
| | | params.put("mac",mac); |
| | | |
| | | HttpPost httpPost = new HttpPost(queryUrl); |
| | | httpPost.setEntity(assemblyFormEntity(params,"utf-8")); |
| | | HttpClient httpClient = getHttpClient(queryUrl); |
| | | HttpResultVo execute = httpClient.execute(httpPost, getResponseHandler()); |
| | | String stringContent = execute.getStringContent(); |
| | | JSONObject jsonObject1 = JSONObject.parseObject(stringContent); |
| | | log.info("请求结果转json后为:"+jsonObject1); |
| | | String result = (String) jsonObject1.get("reqdata"); |
| | | return ResponseEntity.ok(result); |
| | | |
| | | } |
| | | } |