Przeglądaj źródła

京东转链拦截非标链接;

dodo hold 2 lat temu
rodzic
commit
1230351139

Plik diff jest za duży
+ 0 - 0
molilian.api/Properties/PublishProfiles/https___ccr.ccs.tencentyun.com_shaobin.pubxml.user


+ 1 - 1
molilian.core/Core/taoke/UnionParseCore.cs

@@ -453,7 +453,7 @@ namespace molilian.core
             {
             {
                 var config = TkConfigCore.Get();
                 var config = TkConfigCore.Get();
 
 
-                if (accountid == 0 && JdUnionPlus.ShouldIgnoreRequest(config,ip, oaid, out string reason))
+                if (accountid == 0 && JdUnionPlus.ShouldIgnoreRequest(config, ip, oaid, out string reason))
                 {
                 {
                     result.success = false;
                     result.success = false;
                     result.message = "放弃转链";
                     result.message = "放弃转链";

+ 16 - 0
molilian.core/Plus/JDUnion/JdUnionPlus.cs

@@ -250,6 +250,22 @@ namespace molilian.core
                 return result;
                 return result;
             }
             }
 
 
+            if ((!url.StartsWith("https://item.jd.com/") &&
+                !url.StartsWith("https://item.m.jd.com/product/")) || string.IsNullOrEmpty(result.itemId))
+            {
+                result.success = false;
+                result.link_type = LinkTypeEnum.unknown;
+                result.channel_type = ChannelTypeEnum.jd;
+                result.message = "放弃转链";
+                result.reason = "非标链接";
+                result.accountName = string.Empty;
+                result.content = content;
+                result.shortLinkurl = url;
+                result.deeplink_url = GetDeeplink(url);
+                return result;
+            }
+
+
             switch (_account.work_mode)
             switch (_account.work_mode)
             {
             {
                 case JdUnionWorkMode.SiteApi:
                 case JdUnionWorkMode.SiteApi:

+ 26 - 7
molilian.core/Plus/JDUnion/goods.cs

@@ -49,11 +49,11 @@ namespace molilian.core
             };
             };
             var body = await RequestAsync(method, version, data.Convert2Json(), cancellationToken);
             var body = await RequestAsync(method, version, data.Convert2Json(), cancellationToken);
             var root = body.Convert2Object<JdUnionResponse>();
             var root = body.Convert2Object<JdUnionResponse>();
+            var _promotion_data = root.jd_union_open_promotion_common_get_responce.getResult;
+            var promotion_data = _promotion_data.Convert2Object<JdData>();
             string code = root.jd_union_open_promotion_common_get_responce.code;
             string code = root.jd_union_open_promotion_common_get_responce.code;
             if ("0".Equals(code))
             if ("0".Equals(code))
             {
             {
-                var _promotion_data = root.jd_union_open_promotion_common_get_responce.getResult;
-                var promotion_data = _promotion_data.Convert2Object<JdData>();
                 if (promotion_data.code == 200)
                 if (promotion_data.code == 200)
                 {
                 {
                     var url = promotion_data.data.clickURL;
                     var url = promotion_data.data.clickURL;
@@ -71,6 +71,7 @@ namespace molilian.core
             result.success = false;
             result.success = false;
             result.message = "转链失败";
             result.message = "转链失败";
             result.reason = root.jd_union_open_promotion_common_get_responce.message;
             result.reason = root.jd_union_open_promotion_common_get_responce.message;
+            if (string.IsNullOrEmpty(result.reason)) result.reason = promotion_data.message;
             result.shortLinkurl = shortLinkurl;
             result.shortLinkurl = shortLinkurl;
             result.deeplink_url = GetDeeplink(result.shortLinkurl);
             result.deeplink_url = GetDeeplink(result.shortLinkurl);
 
 
@@ -94,14 +95,18 @@ namespace molilian.core
             };
             };
             var body = await RequestAsync(method, version, data.Convert2Json(), cancellationToken);
             var body = await RequestAsync(method, version, data.Convert2Json(), cancellationToken);
             var root = body.Convert2Object<JdUnionResponse>();
             var root = body.Convert2Object<JdUnionResponse>();
-            string code = root.jd_union_open_promotion_common_get_responce.code;
+            //{"jd_union_open_promotion_bysubunionid_get_responce":{"code":"0","getResult":"{\"code\":200,\"data\":{\"shortURL\":\"https://u.jd.com/esCrWn4\"},\"message\":\"success\",\"requestId\":\"o_0b64a07b_lyiusnpg_74220789\"}"}}
+
+
+            string code = root.jd_union_open_promotion_bysubunionid_get_responce.code;
+
+            var _promotion_data = root.jd_union_open_promotion_bysubunionid_get_responce.getResult;
+            var promotion_data = _promotion_data.Convert2Object<JdData>();
             if ("0".Equals(code))
             if ("0".Equals(code))
             {
             {
-                var _promotion_data = root.jd_union_open_promotion_common_get_responce.getResult;
-                var promotion_data = _promotion_data.Convert2Object<JdData>();
                 if (promotion_data.code == 200)
                 if (promotion_data.code == 200)
                 {
                 {
-                    var url = promotion_data.data.clickURL;
+                    var url = promotion_data.data.shortURL;
 
 
                     result.success = true;
                     result.success = true;
                     result.message = "OK";
                     result.message = "OK";
@@ -115,7 +120,8 @@ namespace molilian.core
 
 
             result.success = false;
             result.success = false;
             result.message = "转链失败";
             result.message = "转链失败";
-            result.reason = root.jd_union_open_promotion_common_get_responce.message;
+            result.reason = root.jd_union_open_promotion_bysubunionid_get_responce.message;
+            if (string.IsNullOrEmpty(result.reason)) result.reason = promotion_data.message;
             result.shortLinkurl = shortLinkurl;
             result.shortLinkurl = shortLinkurl;
             result.deeplink_url = GetDeeplink(result.shortLinkurl);
             result.deeplink_url = GetDeeplink(result.shortLinkurl);
 
 
@@ -124,6 +130,13 @@ namespace molilian.core
         }
         }
         public async Task<JdDataDTO> GetPromotionByCrawlerAsync(JdDataDTO result, string wareUrl, CancellationToken cancellationToken = default)
         public async Task<JdDataDTO> GetPromotionByCrawlerAsync(JdDataDTO result, string wareUrl, CancellationToken cancellationToken = default)
         {
         {
+            string[] parts = wareUrl.Split(new string[] { ".html" }, StringSplitOptions.None);
+            if (parts.Length > 1)
+            {
+                wareUrl = parts[0] + ".html";
+            }
+
+
             var ts = DateTime.Now.Convert2UnixTimestamp(true);
             var ts = DateTime.Now.Convert2UnixTimestamp(true);
             string cookies = _account.cookies;
             string cookies = _account.cookies;
 
 
@@ -208,12 +221,16 @@ namespace molilian.core
     public class JdData
     public class JdData
     {
     {
         public int code { get; set; }
         public int code { get; set; }
+        public string message { get; set; }
+        public string requestId { get; set; }
         public JdClickData data { get; set; }
         public JdClickData data { get; set; }
     }
     }
 
 
     public class JdClickData
     public class JdClickData
     {
     {
+        public string shortURL { get; set; }
         public string clickURL { get; set; }
         public string clickURL { get; set; }
+        public string jCommand { get; set; }
     }
     }
 
 
 
 
@@ -221,6 +238,8 @@ namespace molilian.core
     public class JdUnionResponse
     public class JdUnionResponse
     {
     {
         public JdUnionOpenPromotionCommonGetResponce jd_union_open_promotion_common_get_responce { get; set; }
         public JdUnionOpenPromotionCommonGetResponce jd_union_open_promotion_common_get_responce { get; set; }
+        public JdUnionOpenPromotionCommonGetResponce jd_union_open_promotion_bysubunionid_get_responce { get; set; }
+
     }
     }
 
 
     public class JdUnionOpenPromotionCommonGetResponce
     public class JdUnionOpenPromotionCommonGetResponce

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików