Prechádzať zdrojové kódy

增加接口:rs人像

15810770710@163.com 3 rokov pred
rodič
commit
615b31530c

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 30 - 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

@@ -132,4 +132,15 @@ public class SjjhConstant {
             "?g?h?/%i?f1.4.`}Gpc0Jv^y?x?v[xHzYjBm?xaz`.Q42(D40%0QXH4v+p:v?f?m?v2oCtDdb0Tj?x?vSvXtHud<LuMcJrZp?xKn?g?g?g?" +
             "g?g?v?jbCSlaCOi[d` QvEx?x7sHxVm<;?x/;?j@qRxa3SxIz_kQe@h?x?vAlUjBjE;LnAcUj^eTy`5Bf<c?v@mD;WpGv?x?s?.3b?.?v9" +
             "wVjOrc9\\r?x?v?jWbTkNia<Jvd6TkToYe_t_j4a?v6tTr^ea1OaWtOiKg?x";
+
+    public static String PHOTO_IDENTITY_XML_TEMPLATE_V6 = "<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_RS_V2 = "订单信息核查";
+    public static final String PHOTO_IDENTITY_SECRET_KEY_V6 = "?v?zO</S/A?[_87_6Q1SM3=_)R8n2j?g?k?h9u5qR<B-Y:\\VK D=ZB0^?c?oCb[t@s&b;b4a$`?vMxR" +
+            "uYyFvWtaCKg?x*wDkVn^u\\gEdQ[Y[` ?x?vT[CsGgUk?x?g?h?a/t1.?/2g?jKzMn\\qIf)e?vF[_eJvb5?x+yc)?a7zb)`&%t?jXxa8XkT" +
+            "j?x-kUh[;`8Hd?xbj={b/M6MGK>VJXC?.?s4d?d?/?v?jI;EfXkAn5s?vO[DnUmYaWzb=RzZp?xLc=d?g-i?g3c?v?jX.H/JtOiGjP[LpIf?x?" +
+            "vc9Pz?j?x?v?j^sPvIdA;Xkb-\\ya`)e+eKr@nZ.I[XkUwa3[lJbLa_j4a8bBbEl`8Qq?x&l?.*o?.?v$sKfQmPt@b/k?v9wMpUj\\gJi@" +
+            "/Sj_yKcb-d1Yw?x?va{a=GgRkKga QcYi?x";
+
 }

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

@@ -23,4 +23,5 @@ public class SupplierProperties {
     private long url3PhotoUp;
     private long url4PhotoUp;
     private long url5PhotoUp;
+    private long url6PhotoUp;
 }

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

@@ -106,4 +106,14 @@ public interface ChannelService {
      * @return
      */
     public ChannelTypeHandleResponseObject photoIdentityCheckV5New(HttpServletRequest request, String customBody, int outTime, String decodeType);
+
+    /**
+     * 人像-榕树2
+     *
+     * @param request
+     * @param customBody
+     * @param outTime
+     * @return
+     */
+    public ChannelTypeHandleResponseObject photoIdentityCheckV6New(HttpServletRequest request, String customBody, int outTime, String decodeType);
 }

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

@@ -96,6 +96,8 @@ public class ChannelServiceImpl implements ChannelService {
     private String urlV4;
     @Value("${supplier.urlV5}")
     private String urlV5;
+    @Value("${supplier.urlV6}")
+    private String urlV6;
     @Autowired
     SupplierProperties supplierProperties;
     @Autowired
@@ -1603,6 +1605,105 @@ public class ChannelServiceImpl implements ChannelService {
         return ret;
     }
 
+    @Override
+    public ChannelTypeHandleResponseObject photoIdentityCheckV6New(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;
+        }
+        // sky 通道跳转机制改动-1 start
+        String channelId = request.getHeader("channelId");
+        String key="url6"+photoIdentityMethod;
+        LocalDateTime now = LocalDateTime.now();
+        String ymd = dateTimeFormatter.format(now);
+        String hashKey = "043-"+ymd;
+        // sky channelId是通道id
+        boolean flag = checkVisitCount(hashKey,key,supplierProperties.getUrl6PhotoUp(),channelId);
+        if(!flag){
+            countOver(ret,returnType);
+            return ret;
+        }
+        // sky 通道跳转机制改动-1 end
+        log.info("supplier10000043.photoIdentityCheckV6New---customBody={},outTime={}", customBody, outTime);
+        if (!decodeType.equals(SjjhConstant.DECODE_TYPE_COMMON)) {
+            customBody = decodeParams(ret, returnType, customBody, decodeType);
+            if (StringUtils.isBlank(customBody)) {
+                //sky 通道跳转机制改动-2 start
+                reduceVisitCount(hashKey,key);
+                //sky 通道跳转机制改动-2 end
+                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)){
+                //sky 通道跳转机制改动-3 start
+                reduceVisitCount(hashKey,key);
+                //sky 通道跳转机制改动-3 end
+                return ret;
+            }
+
+            JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
+            factory.setServiceClass(NciicServicesPortType.class);// 设置请求接口
+            factory.setAddress(urlV6);
+            NciicServicesPortType nciicServices = (NciicServicesPortType) factory.create(); // 创建客户端对象
+            // 设置客户端的配置信息,超时等.
+            Client proxy = ClientProxy.getClient(nciicServices);
+
+            common(request,proxy);
+            HTTPConduit conduit = (HTTPConduit) proxy.getConduit();
+            HTTPClientPolicy policy = new HTTPClientPolicy();
+            policy.setConnectionTimeout(outTime); // 连接超时时间
+            policy.setReceiveTimeout(outTime);// 请求超时时间.
+            policy.setConnection(ConnectionType.CLOSE);
+            conduit.setClient(policy);
+
+
+            String paramXml = SjjhConstant.PHOTO_IDENTITY_XML_TEMPLATE_V6
+                    .replace("{fsd}", idCode.substring(0, 6))
+                    .replace("{ywlx}", SjjhConstant.PARAMETER_YWLX_RS_V2)
+                    .replace("{idCode}", idCode)
+                    .replace("{name}", name)
+                    .replace("{photo}", photo);
+            String result = nciicServices.nciicCompare(SjjhConstant.PHOTO_IDENTITY_SECRET_KEY_V6,paramXml);
+            log.info("photoIdentityCheck上游返回xml:{}", result);
+            //sky 通道跳转机制改动-4 start
+            //upstreamCode = setPhotoIdentityCheckResponse(ret, returnType, result);
+            upstreamCode = setPhotoIdentityCheckResponse(ret, returnType, result,key+SjjhConstant.key_subStr,channelId);
+            //sky 通道跳转机制改动-4 start
+        }catch (WebServiceException exception){
+            log.info("supplier10000043.photoIdentityCheckV6New接口-WebServiceException:{}", exception);
+            ErrorUtils.captureException(exception);
+            ret.setCode(Constant.REQUEST_TIMEOUT);
+        } catch (Exception ioe) {
+            log.info("supplier10000043.photoIdentityCheckV6New接口-Exception:{}", ioe);
+            ErrorUtils.captureException(ioe);
+            ret.setCode(Constant.FAIL);
+        }
+        request.setAttribute(Constant.LOG_UPSTREAM_RESPONSE_CODE, upstreamCode);
+        return ret;
+    }
+
     private String setPhotoIdentityCheckResponse(ChannelTypeHandleResponseObject ret, String returnType, String responseXml) {
         String resultCode;
 

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 1
src/main/java/info/aspirecn/iov/sjjh/supplier10000043/util/AesUtil.java