Browse Source

增加英泰思特人像接口

15810770710@163.com 3 years ago
parent
commit
84461d390d

File diff suppressed because it is too large
+ 31 - 0
src/main/java/info/aspirecn/iov/sjjh/supplier10000043/action/ChannelAction.java


+ 11 - 0
src/main/java/info/aspirecn/iov/sjjh/supplier10000043/constant/SjjhConstant.java

@@ -112,4 +112,15 @@ public class SjjhConstant {
             "&r_k?g+y?g?g?g?v?jBlH/L[AlFkMcZ.Gv?x9nc9\\d.x?x4.?jUzWb^uCkCaWt]uNx?x?v^f^u^dZd`8_i[p`8OxBbYw?x?vb3]aHxc" +
             "6?x?s?.?.>/>c?jEvRn`8Kh?x?v?jSzDxRza<Xkc]^uRuYeLa@h4a<z)mNca7HsUjMvMpZ[:b";
 
+    public static String PHOTO_IDENTITY_XML_TEMPLATE_V4 = "<ROWS><INFO><SBM>北京英泰思特科技有限公司</SBM></INFO>" +
+            "<ROW><GMSFHM>公民身份号码</GMSFHM><XM>姓名</XM><XP>相片</XP></ROW>" +
+            "<ROW FSD=\"{fsd}\" YWLX=\"{ywlx}\"><GMSFHM>{idCode}</GMSFHM><XM>{name}</XM><XP>{photo}</XP></ROW></ROWS>";
+    public static final String PARAMETER_YWLX_YTST = "核验";
+
+    public static final String PHOTO_IDENTITY_SECRET_KEY_V4 = "?v?z?R]Zd.aD1R&A*%<}D=/F/D?c?o?g/x?h?o?[<$/DZ?;(TZXX/DK" +
+            "-+w(aa5IsUp?o?z?x(1?vVyIz^oFv``Oi@n?x5/CwPvYiZ.BsMvGxYw>z&y]wHzBsa4?x5b-o?/?m?g*l?v4uVoZlYjAn&r?v\\nA/Rua4?x`" +
+            "+?h$l?m?g?m?v?jHkIx@/Na?x?vGoHzLnd])eN<:{3FN:6Q)+BZEJ?.?a?m/o9d?v?jFiYkSyd]?x?vEqI.Oi^f^/YwPcEx?xc=?g?g=d?g" +
+            "?g:ma{Un@xDeNoQm` TmL.5s$r\\q^g?j?x?v1p^s^fYiDwKc];WkYw?x1fEwYi^dCqOmIaAb@/CfFzAg3f?vLa[dCa`3(w?s?.2n?./;7r" +
+            "O/bNFhGv:b?v?j\\hXoIuOtKcCz_yA.CfPwYw?x?v?jQoYjFn_yBdSzDx$y";
+
 }

+ 1 - 0
src/main/java/info/aspirecn/iov/sjjh/supplier10000043/constant/SupplierProperties.java

@@ -21,4 +21,5 @@ public class SupplierProperties {
     private long  notityLimit;
     private int hour;
     private long url3PhotoUp;
+    private long url4PhotoUp;
 }

+ 10 - 0
src/main/java/info/aspirecn/iov/sjjh/supplier10000043/service/ChannelService.java

@@ -86,4 +86,14 @@ public interface ChannelService {
      * @return
      */
     public ChannelTypeHandleResponseObject photoIdentityCheckV3New(HttpServletRequest request, String customBody, int outTime, String decodeType);
+
+    /**
+     * 人像-英泰思特
+     *
+     * @param request
+     * @param customBody
+     * @param outTime
+     * @return
+     */
+    public ChannelTypeHandleResponseObject photoIdentityCheckV4New(HttpServletRequest request, String customBody, int outTime, String decodeType);
 }

+ 88 - 0
src/main/java/info/aspirecn/iov/sjjh/supplier10000043/service/ChannelServiceImpl.java

@@ -91,6 +91,8 @@ public class ChannelServiceImpl implements ChannelService {
     private String aesDecryptKey;
     @Value("${supplier.urlV3}")
     private String urlV3;
+    @Value("${supplier.urlV4}")
+    private String urlV4;
     @Autowired
     SupplierProperties supplierProperties;
     @Autowired
@@ -1389,4 +1391,90 @@ public class ChannelServiceImpl implements ChannelService {
          request.setAttribute(Constant.LOG_UPSTREAM_RESPONSE_CODE, upstreamCode);
          return ret;
      }
+
+    @Override
+    public ChannelTypeHandleResponseObject photoIdentityCheckV4New(HttpServletRequest request, String customBody, int outTime, String decodeType) {
+        ChannelTypeHandleResponseObject ret = new ChannelTypeHandleResponseObject();
+        ret.setIsCharge(Constant.INTERFACE_QUERY_NO_FEE);
+        ret.setCode(Constant.SUCCESS);
+        String upstreamCode = "" + Constant.LOG_UPSTREAM_DEFAULT_RESPONSE_CODE;
+        request.setAttribute(Constant.LOG_UPSTREAM_RESPONSE_CODE, upstreamCode);
+        String returnType = request.getHeader(Constant.CUSTOMER_RETURN_TYPE_PARA);
+        if (StringUtils.isBlank(returnType)) {
+            returnType = Constant.CUSTOMER_RETURN_ZW;
+        }
+        if (outTime <= SjjhConstant.PARA_ZERO) {
+            outTime = Constant.HTTPCLIENT_CONNECTTIMEOUT;
+        }
+        String channelId = request.getHeader("channelId");
+        String key="url4"+photoIdentityMethod;
+        LocalDateTime now = LocalDateTime.now();
+        String ymd = dateTimeFormatter.format(now);
+        String hashKey = "043-"+ymd;
+        boolean flag = checkVisitCount(hashKey,key,supplierProperties.getUrl4PhotoUp(),channelId);
+        if(!flag){
+
+            countOver(ret,returnType);
+            return ret;
+        }
+        log.info("supplier10000043.photoIdentityCheckV4New---customBody={},outTime={}", customBody, outTime);
+        if (!decodeType.equals(SjjhConstant.DECODE_TYPE_COMMON)) {
+            customBody = decodeParams(ret, returnType, customBody, decodeType);
+            if (StringUtils.isBlank(customBody)) {
+                reduceVisitCount(hashKey,key);
+                ret.setCode(Constant.SUCCESS);
+                request.setAttribute(Constant.LOG_UPSTREAM_RESPONSE_CODE, upstreamCode);
+                return ret;
+            }
+        }
+        try {
+            JSONObject jsonObject = JSON.parseObject(customBody);
+            String name = jsonObject.getString("name");//requestObject.getName();
+            String idCode = jsonObject.getString("idCode");
+            String photo = jsonObject.getString("photo");
+            customBody = null;
+            jsonObject.put("photo", "图片base64");
+            request.setAttribute(Constant.CHANNEL_LOG_QUERY,
+                    Base64.encodeBase64String(jsonObject.toJSONString().getBytes(SjjhConstant.PARA_ENCODE)));
+            jsonObject = null;
+
+
+            if(!checkParm(name,idCode,returnType,ret)){
+                reduceVisitCount(hashKey,key);
+                return ret;
+            }
+
+            JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
+            factory.setServiceClass(NciicServicesPortType.class);// 设置请求接口
+            factory.setAddress(urlV4);
+            NciicServicesPortType nciicServices = (NciicServicesPortType) factory.create(); // 创建客户端对象
+            // 设置客户端的配置信息,超时等.
+            Client proxy = ClientProxy.getClient(nciicServices);
+            HTTPConduit conduit = (HTTPConduit) proxy.getConduit();
+            HTTPClientPolicy policy = new HTTPClientPolicy();
+            policy.setConnectionTimeout(outTime); // 连接超时时间
+            policy.setReceiveTimeout(outTime);// 请求超时时间.
+            conduit.setClient(policy);
+
+            String paramXml = SjjhConstant.PHOTO_IDENTITY_XML_TEMPLATE_V4
+                    .replace("{fsd}", idCode.substring(0, 6))
+                    .replace("{ywlx}", SjjhConstant.PARAMETER_YWLX_YTST)
+                    .replace("{idCode}", idCode)
+                    .replace("{name}", name)
+                    .replace("{photo}", photo);
+            String result = nciicServices.nciicCompare(SjjhConstant.PHOTO_IDENTITY_SECRET_KEY_V4,paramXml);
+            log.info("photoIdentityCheck上游返回xml:{}", result);
+            upstreamCode = setPhotoIdentityCheckResponse(ret, returnType, result,key+SjjhConstant.key_subStr,channelId);
+        }catch (WebServiceException exception){
+            log.info("supplier10000043.photoIdentityCheckV4New接口-WebServiceException:{}", exception);
+            ErrorUtils.captureException(exception);
+            ret.setCode(Constant.REQUEST_TIMEOUT);
+        } catch (Exception ioe) {
+            log.info("supplier10000043.photoIdentityCheckV4New接口-Exception:{}", ioe);
+            ErrorUtils.captureException(ioe);
+            ret.setCode(Constant.FAIL);
+        }
+        request.setAttribute(Constant.LOG_UPSTREAM_RESPONSE_CODE, upstreamCode);
+        return ret;
+    }
 }

+ 3 - 1
src/main/resources/config/application-test.yml

@@ -89,7 +89,9 @@ supplier:
   urlPhotoFlag: 1000
   url2PhotoFlag: 1000
   aesDecryptKey: C1AA8eh0116128nn
-  urlV3: http://39.100.68.41:8888/nciic/nciic_ws/services/NciicServices
+  urlV3: http://8.140.178.39:8888/nciic/nciic_ws/services/NciicServices
   url3PhotoUp: 100000
+  urlV4: http://47.93.191.209:8888/nciic/nciic_ws/services/NciicServices
+  url4PhotoUp: 100000
 swagger:
   show: true