|
@@ -142,6 +142,45 @@ namespace molilian.core
|
|
|
_ = new LoggerLibrary("JdUnion", "bysubunionid_get_error").Info(body).SaveAsync();
|
|
_ = new LoggerLibrary("JdUnion", "bysubunionid_get_error").Info(body).SaveAsync();
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
|
|
+ public async Task<JdDataDTO> GetPromotionByDdxAsync(JdDataDTO result, string wareUrl, string clickId, CancellationToken cancellationToken = default)
|
|
|
|
|
+ {
|
|
|
|
|
+ string url = $"http://api.tbk.dingdanxia.com/jd/url_privilege?apikey={_account.app_key}&unionId={_account.unionid}&materialId={result.shortLinkurl.UrlDecode()}";
|
|
|
|
|
+
|
|
|
|
|
+ WebClientUtility client = new WebClientUtility();
|
|
|
|
|
+ var response = await client.RequestAsync(url, "GET", cancellationToken);
|
|
|
|
|
+
|
|
|
|
|
+ string body = response.Body();
|
|
|
|
|
+ var root = body.Convert2JsonElement();
|
|
|
|
|
+ int code = root.Read<int>("code");
|
|
|
|
|
+ string message = root.Read<string>("msg");
|
|
|
|
|
+ string shortURL = root.PathRead<string>("data.shortURL");
|
|
|
|
|
+
|
|
|
|
|
+ if (code == 200)
|
|
|
|
|
+ {
|
|
|
|
|
+ result.success = true;
|
|
|
|
|
+ result.message = "OK";
|
|
|
|
|
+ result.shortLinkurl = shortURL;
|
|
|
|
|
+ result.content = result.shortLinkurl;
|
|
|
|
|
+ result.deeplink_url = GetDefaultStyleDeeplink(result.shortLinkurl);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ if (string.IsNullOrEmpty(body)) message = "网络异常";
|
|
|
|
|
+ if (body.Contains("数据返回失败【(sceneId未入参)或(sceneId和商品格式不匹配)"))
|
|
|
|
|
+ {
|
|
|
|
|
+ message = "不支持数字ID";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ result.success = false;
|
|
|
|
|
+ result.message = "转链失败";
|
|
|
|
|
+ result.reason = message;
|
|
|
|
|
+ result.shortLinkurl = wareUrl;
|
|
|
|
|
+ result.deeplink_url = GetDefaultStyleDeeplink(result.shortLinkurl);
|
|
|
|
|
+ _ = new LoggerLibrary("JdUnion", "GetPromotionByDdxAsync").Info(body).SaveAsync();
|
|
|
|
|
+ }
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public async Task<JdDataDTO> GetPromotionByCrawlerAsync(JdDataDTO result, string wareUrl, string clickId, CancellationToken cancellationToken = default)
|
|
public async Task<JdDataDTO> GetPromotionByCrawlerAsync(JdDataDTO result, string wareUrl, string clickId, CancellationToken cancellationToken = default)
|
|
|
{
|
|
{
|
|
|
string[] parts = wareUrl.Split(new string[] { ".html" }, StringSplitOptions.None);
|
|
string[] parts = wareUrl.Split(new string[] { ".html" }, StringSplitOptions.None);
|
|
@@ -204,7 +243,7 @@ namespace molilian.core
|
|
|
result.message = "转链失败";
|
|
result.message = "转链失败";
|
|
|
result.reason = "签名失败";
|
|
result.reason = "签名失败";
|
|
|
result.shortLinkurl = wareUrl;
|
|
result.shortLinkurl = wareUrl;
|
|
|
- result.deeplink_url = (result.shortLinkurl);
|
|
|
|
|
|
|
+ result.deeplink_url = (result.shortLinkurl);
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -222,22 +261,7 @@ namespace molilian.core
|
|
|
client.AddHeaders("Cookie", cookies);
|
|
client.AddHeaders("Cookie", cookies);
|
|
|
client.Post($"body={data}");
|
|
client.Post($"body={data}");
|
|
|
var response = await client.RequestAsync(url, "GET", cancellationToken);
|
|
var response = await client.RequestAsync(url, "GET", cancellationToken);
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- https://api.m.jd.com/api?functionId=unionPromoteLinkService&appid=unionpc&_=1734447407687&loginType=3&uuid=1734444378650448359604&x-api-eid-token=jdd03YJZYUINYGLWQKYT2SFR5PF5CNZ5PK5SQB3SOWOR5DHKS62647SPYBXWBMLYF7YEFH7RDZG22SM77HWYSFKYKTZJICUAAAAMT2TYOUQQAAAAADOZREVGL2Z3VVEX&h5st=20241217225647690;ff8lvy5fkzklklr1;586ae;tk03wb3c71ba318nQZgEdIpw3aqKhQNr_DOL4ffKT_bx3botkXGLthFRyT-TL0p502UEdMny0L0mZSLWUXs6264cdk-I;45b11a32199c9d0e995efe3339eff00f;4.9;1734447407690;pjbMhjZf561R-_FNASVeySkQzTFSJrJdJrESJrpjh7Je6rJdJz1TIipjLDrgJf4f5n1e7XldHe4e6TIS1f1f7rITHeof0b1TFeVf6nVSJrJdJrEa-OFTGOEjLrJp-jpe7PYSHKYeIWlf1roeJaleJq4e2XYd3fVS5X1ezHIS4jpjxj5PKSEQKeFjLrJp-j5e9HIg3T0UG6VRFuWeDipjxjJOJrpjh7JjSOUbA_nOyroNneWbJrJdJ31QHyVT5ipjLDrgJj4f9G1WJrJdJTlPJrpjh7ZMLrJp7rJdJLYOJipjLrpjh7JjJrJdJPYOJipjLrpjh7Je6rJdJTYOJipjLrpjh7pfLDIj2XETJrpjLrJp-rojxjpe2iFjLrpjLDrgzjYfLDIj4XETJrpjLrJp-jYgLDIj5XETJrpjLrJp-jZe9nIg7jpjxjZf2iFjLrpjLDrg7rJdJ-1OJrpjLrJp-Xojxj5P-ipjLrpjh7pfLDIj-ipjLrpjh7pfLDIjHOEjLrpjLD7NLDIjHyVS3KUSJrpjh7ZMLrJpJrUO3ekQJrJdJjoPJrpjLrJpwqJdJrkPJrpjh7Jj3ToNL-oe1zVRUq5d7zpf6rpWdq5P0ulS9G1WJrJdJnVO4ipjLD7N;76beaa50fd5fe694a2824d4dbde781c0
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- //if (response.ResponseMessage.StatusCode == HttpStatusCode.Forbidden)
|
|
|
|
|
- //{
|
|
|
|
|
- // result.success = false;
|
|
|
|
|
- // result.message = "转链失败";
|
|
|
|
|
- // result.reason = "nologin";
|
|
|
|
|
- // result.shortLinkurl = wareUrl;
|
|
|
|
|
- // result.deeplink_url = GetDeeplink(result.shortLinkurl);
|
|
|
|
|
- // return result;
|
|
|
|
|
- //}
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
string body = response.Body();
|
|
string body = response.Body();
|
|
|
var root = body.Convert2JsonElement();
|
|
var root = body.Convert2JsonElement();
|
|
|
int code = root.Read<int>("code");
|
|
int code = root.Read<int>("code");
|