| | |
| | | package com.ruoyi.cwgl.service.impl; |
| | | |
| | | |
| | | import cn.hutool.http.HttpUtil; |
| | | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.ruoyi.common.core.redis.RedisCache; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.sign.Md5Utils; |
| | | |
| | | import com.ruoyi.cwgl.domain.InvoicingVo; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * 谷神开发的应用系统调用api |
| | | * @author wjw |
| | | */ |
| | | @Service |
| | | public class GdpaasApiService { |
| | | protected final Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Autowired |
| | | private RedisCache redisCache; |
| | | private final String tokenKey = "GDPAAS_API_TOKEN_KEY"; |
| | | // private String ROOT_PATH = "http://172.16.24.46:9080/"; |
| | | @Value("${custom.gdpaasApi.path}") |
| | | private String ROOT_PATH; |
| | | @Value("${custom.gdpaasApi.appid}") |
| | | private String appId; |
| | | @Value("${custom.gdpaasApi.sign}") |
| | | private String sign; |
| | | /** |
| | | * 获取token |
| | | * @param appId |
| | | * @param sign |
| | | * @param time |
| | | * @return |
| | | */ |
| | | public String getToken(String appId, String sign, String time) { |
| | | Object token = redisCache.getCacheObject(tokenKey); |
| | | if (token == null) { |
| | | //签名摘要 |
| | | String hash = Md5Utils.hash(appId + time + sign); |
| | | String urlString = ROOT_PATH + "/gdpaas/apis/getAccessToken.htm" ; |
| | | Map<String, Object> parm = new HashMap<>(); |
| | | parm.put("appId", appId); |
| | | parm.put("sign", hash); |
| | | parm.put("t", time); |
| | | String json = null; |
| | | logger.info("获取第三方token请求参数{}",parm); |
| | | try { |
| | | json = HttpUtil.get(urlString, parm); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | logger.error("请求获取第三方token接口失败"); |
| | | } |
| | | if (json == null) { |
| | | return null; |
| | | } |
| | | logger.info("获取第三方token响应参数{}",json); |
| | | |
| | | JSONObject jsonObject = JSONObject.parseObject(json); |
| | | Integer code = (Integer) jsonObject.get("code"); |
| | | if (code.equals(0)) { |
| | | String data = jsonObject.getString("data"); |
| | | JSONObject dataJson = JSONObject.parseObject(data); |
| | | String accessToken = dataJson.getString("accessToken"); |
| | | Integer expiresIn = (Integer) dataJson.get("expiresIn"); |
| | | redisCache.setCacheObject(tokenKey,accessToken,expiresIn, TimeUnit.SECONDS); |
| | | return accessToken; |
| | | } |
| | | return null; |
| | | } |
| | | return (String) token; |
| | | } |
| | | |
| | | /** |
| | | * 发票开具接口 |
| | | */ |
| | | public String invoicingApi(InvoicingVo order){ |
| | | String accessToken = getToken(appId, sign, System.currentTimeMillis() + ""); |
| | | if (accessToken==null){ |
| | | throw new ServiceException("获取令牌失败"); |
| | | } |
| | | String urlString = ROOT_PATH + "/gdpaas/apis/invoke.htm?appId="+appId+"&accessToken="+accessToken+"&method=com.golden.bdp.cwzx.invoice.submitInvoice" ; |
| | | String body = JSONObject.toJSONString(order); |
| | | String json = null; |
| | | |
| | | try { |
| | | json = HttpUtil.post(urlString, body); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | logger.error("发票开具接口接口失败"); |
| | | } |
| | | logger.info("开票响应{}",json); |
| | | return json; |
| | | // String code = jsonObject.getString("code"); |
| | | // if (json == null) { |
| | | // logger.info("开票失败"); |
| | | // return null; |
| | | // } |
| | | // if ("0".equals(code)) { |
| | | // String data = jsonObject.getString("data"); |
| | | //package com.ruoyi.cwgl.service.impl; |
| | | // |
| | | // |
| | | //import cn.hutool.http.HttpUtil; |
| | | // |
| | | //import com.alibaba.fastjson2.JSONObject; |
| | | //import com.ruoyi.common.core.redis.RedisCache; |
| | | //import com.ruoyi.common.exception.ServiceException; |
| | | //import com.ruoyi.common.utils.sign.Md5Utils; |
| | | // |
| | | //import com.ruoyi.cwgl.domain.InvoicingVo; |
| | | //import org.slf4j.Logger; |
| | | //import org.slf4j.LoggerFactory; |
| | | //import org.springframework.beans.factory.annotation.Autowired; |
| | | //import org.springframework.beans.factory.annotation.Value; |
| | | //import org.springframework.stereotype.Service; |
| | | // |
| | | //import java.util.HashMap; |
| | | //import java.util.Map; |
| | | //import java.util.concurrent.TimeUnit; |
| | | // |
| | | ///** |
| | | // * 谷神开发的应用系统调用api |
| | | // * @author wjw |
| | | // */ |
| | | //@Service |
| | | //public class GdpaasApiService { |
| | | // protected final Logger logger = LoggerFactory.getLogger(getClass()); |
| | | // |
| | | // @Autowired |
| | | // private RedisCache redisCache; |
| | | // private final String tokenKey = "GDPAAS_API_TOKEN_KEY"; |
| | | // // private String ROOT_PATH = "http://172.16.24.46:9080/"; |
| | | // @Value("${custom.gdpaasApi.path}") |
| | | // private String ROOT_PATH; |
| | | // @Value("${custom.gdpaasApi.appid}") |
| | | // private String appId; |
| | | // @Value("${custom.gdpaasApi.sign}") |
| | | // private String sign; |
| | | // /** |
| | | // * 获取token |
| | | // * @param appId |
| | | // * @param sign |
| | | // * @param time |
| | | // * @return |
| | | // */ |
| | | // public String getToken(String appId, String sign, String time) { |
| | | // Object token = redisCache.getCacheObject(tokenKey); |
| | | // if (token == null) { |
| | | // //签名摘要 |
| | | // String hash = Md5Utils.hash(appId + time + sign); |
| | | // String urlString = ROOT_PATH + "/gdpaas/apis/getAccessToken.htm" ; |
| | | // Map<String, Object> parm = new HashMap<>(); |
| | | // parm.put("appId", appId); |
| | | // parm.put("sign", hash); |
| | | // parm.put("t", time); |
| | | // String json = null; |
| | | // logger.info("获取第三方token请求参数{}",parm); |
| | | // try { |
| | | // json = HttpUtil.get(urlString, parm); |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // logger.error("请求获取第三方token接口失败"); |
| | | // } |
| | | // if (json == null) { |
| | | // return null; |
| | | // } |
| | | // logger.info("获取第三方token响应参数{}",json); |
| | | // |
| | | // JSONObject jsonObject = JSONObject.parseObject(json); |
| | | // Integer code = (Integer) jsonObject.get("code"); |
| | | // if (code.equals(0)) { |
| | | // String data = jsonObject.getString("data"); |
| | | // JSONObject dataJson = JSONObject.parseObject(data); |
| | | // String invoiceSerialNum = dataJson.getString("invoiceSerialNum"); |
| | | // logger.info("开票成功发票序列号为{}",invoiceSerialNum); |
| | | // return invoiceSerialNum; |
| | | // String accessToken = dataJson.getString("accessToken"); |
| | | // Integer expiresIn = (Integer) dataJson.get("expiresIn"); |
| | | // redisCache.setCacheObject(tokenKey,accessToken,expiresIn, TimeUnit.SECONDS); |
| | | // return accessToken; |
| | | // } |
| | | // return null; |
| | | } |
| | | |
| | | /** |
| | | * 发票开具接口 |
| | | */ |
| | | public String invoicingApi(String body){ |
| | | String accessToken = getToken(appId, sign, System.currentTimeMillis() + ""); |
| | | if (accessToken==null){ |
| | | throw new ServiceException("获取令牌失败"); |
| | | } |
| | | String urlString = ROOT_PATH + "/gdpaas/apis/invoke.htm?appId="+appId+"&accessToken="+accessToken+"&method=com.golden.bdp.cwzx.invoice.submitInvoice" ; |
| | | // } |
| | | // return (String) token; |
| | | // } |
| | | // |
| | | // /** |
| | | // * 发票开具接口 |
| | | // */ |
| | | // public String invoicingApi(InvoicingVo order){ |
| | | // String accessToken = getToken(appId, sign, System.currentTimeMillis() + ""); |
| | | // if (accessToken==null){ |
| | | // throw new ServiceException("获取令牌失败"); |
| | | // } |
| | | // String urlString = ROOT_PATH + "/gdpaas/apis/invoke.htm?appId="+appId+"&accessToken="+accessToken+"&method=com.golden.bdp.cwzx.invoice.submitInvoice" ; |
| | | // String body = JSONObject.toJSONString(order); |
| | | String json = null; |
| | | |
| | | try { |
| | | json = HttpUtil.post(urlString, body); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | logger.error("发票开具接口接口失败"); |
| | | } |
| | | logger.info("开票响应{}",json); |
| | | return json; |
| | | } |
| | | |
| | | } |
| | | // String json = null; |
| | | // |
| | | // try { |
| | | // json = HttpUtil.post(urlString, body); |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // logger.error("发票开具接口接口失败"); |
| | | // } |
| | | // logger.info("开票响应{}",json); |
| | | // return json; |
| | | //// String code = jsonObject.getString("code"); |
| | | //// if (json == null) { |
| | | //// logger.info("开票失败"); |
| | | //// return null; |
| | | //// } |
| | | //// if ("0".equals(code)) { |
| | | //// String data = jsonObject.getString("data"); |
| | | //// |
| | | //// JSONObject dataJson = JSONObject.parseObject(data); |
| | | //// String invoiceSerialNum = dataJson.getString("invoiceSerialNum"); |
| | | //// logger.info("开票成功发票序列号为{}",invoiceSerialNum); |
| | | //// return invoiceSerialNum; |
| | | //// } |
| | | //// return null; |
| | | // } |
| | | // |
| | | // /** |
| | | // * 发票开具接口 |
| | | // */ |
| | | // public String invoicingApi(String body){ |
| | | // String accessToken = getToken(appId, sign, System.currentTimeMillis() + ""); |
| | | // if (accessToken==null){ |
| | | // throw new ServiceException("获取令牌失败"); |
| | | // } |
| | | // String urlString = ROOT_PATH + "/gdpaas/apis/invoke.htm?appId="+appId+"&accessToken="+accessToken+"&method=com.golden.bdp.cwzx.invoice.submitInvoice" ; |
| | | //// String body = JSONObject.toJSONString(order); |
| | | // String json = null; |
| | | // |
| | | // try { |
| | | // json = HttpUtil.post(urlString, body); |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // logger.error("发票开具接口接口失败"); |
| | | // } |
| | | // logger.info("开票响应{}",json); |
| | | // return json; |
| | | // } |
| | | // |
| | | //} |