temu客户端程序
This commit is contained in:
commit
4aaf264e89
694 files changed
+263780
No files matched your search
@@ -0,0 +1,796 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using AllBase;
|
||||
using Work.Api;
|
||||
|
||||
namespace Work
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取上家
|
||||
/// </summary>
|
||||
public class JumpUpProductNew
|
||||
{
|
||||
public static Dictionary<int, Dictionary<char, char>> ShouZhangXinTb = new Dictionary<int, Dictionary<char, char>>();
|
||||
public static Dictionary<int, Dictionary<char, char>> ShouZhangXinPdd = new Dictionary<int, Dictionary<char, char>>();
|
||||
public UpShopIdBase UpId = new UpShopIdBase();
|
||||
public ShopChatBase Shop = null;
|
||||
public string Good_Sn="";
|
||||
public string Html="";
|
||||
public string OutGoodId = "";
|
||||
|
||||
public JumpUpProductNew(ShopChatBase shop)
|
||||
{
|
||||
Shop = shop;
|
||||
}
|
||||
|
||||
public static string GetUrl(string url, out string pid, ShopChatBase shop)
|
||||
{
|
||||
JumpUpProductNew ju = new JumpUpProductNew();
|
||||
ju.Shop = shop;
|
||||
ju.GetUrl(url);
|
||||
pid = ju.UpId.ProductIdFrom.ToString();
|
||||
return ju.UpId.Url;
|
||||
}
|
||||
public JumpUpProductNew()
|
||||
{
|
||||
}
|
||||
|
||||
public void GetUrl(string url)
|
||||
{
|
||||
string pidCode="",idx="";
|
||||
UpId.SiteId = 2;
|
||||
string cookies = BaseClass.ChromeCookies;
|
||||
int maillId = BaseClass.MallId;
|
||||
if (Shop != null)
|
||||
{
|
||||
cookies = Shop.Cookies;
|
||||
maillId = Shop.MallId;
|
||||
}
|
||||
long proId = 0;
|
||||
if (!string.IsNullOrEmpty(OutGoodId) && (OutGoodId.Contains("PBB") || OutGoodId.Contains("TJM") || OutGoodId.Contains("TJH")))
|
||||
{
|
||||
pidCode = OutGoodId;
|
||||
goto End;
|
||||
}
|
||||
if (!string.IsNullOrEmpty(url))
|
||||
{
|
||||
string id = BaseRegex.GetMatchRegexString(url, @"([\d]{5,15})");
|
||||
string pid = "0";
|
||||
if (string.IsNullOrEmpty(id))
|
||||
{
|
||||
UpId.Message = "没有找到拼多多ID";
|
||||
return;
|
||||
}
|
||||
proId = long.Parse(id);
|
||||
if (UpShopIdFromServer.UpIds.ContainsKey(proId))
|
||||
{
|
||||
UpId = UpShopIdFromServer.UpIds[proId];
|
||||
UpId.GetOk = true;
|
||||
return;
|
||||
}
|
||||
if (PinduoduoApiGetProduct.OutId.ContainsKey(proId))
|
||||
{
|
||||
pidCode = PinduoduoApiGetProduct.OutId[proId];
|
||||
if(!string.IsNullOrEmpty(pidCode))
|
||||
goto End;
|
||||
}
|
||||
//if (string.IsNullOrEmpty(pidCode)) //没有上家,优先走api
|
||||
//{
|
||||
// if(string.IsNullOrEmpty(Html))
|
||||
//Html = new PinduoduoApiGetProduct(Shop).GetProductInfor(proId);
|
||||
// pidCode = BaseRegex.GetMatchRegexString(ref Html, @"""out_sku_sn"":""(PBB[^""]+?)""");
|
||||
// if (!string.IsNullOrEmpty(pidCode) && !pidCode.Contains("wait:"))
|
||||
// goto End;
|
||||
// var m = BaseRegex.GetMatchRegex(ref Html, @"""outer_goods_id"":""([^""]+?)""");
|
||||
// if (m != null && m.Count > 0)
|
||||
// pidCode = m[m.Count - 1].Groups[1].Value;
|
||||
// if (!string.IsNullOrEmpty(pidCode) && !pidCode.Contains("wait:"))
|
||||
// goto End;
|
||||
// if (Html.Contains("outer_goods_id"))
|
||||
// {
|
||||
// if (GetServerId(proId, out idx))
|
||||
// {
|
||||
// DeCode(idx);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
if (string.IsNullOrEmpty(pidCode))
|
||||
{
|
||||
string urlx = "https://mms.pinduoduo.com/glide/v2/mms/query/commit/on_shop/detail";
|
||||
string data = "{\"goods_id\":\"" + id + "\"}";
|
||||
string htmlx = GetPostTaobaoHtml.UploadTaobaoPost(urlx, "https://mms.pinduoduo.com/", true, data,
|
||||
cookies);
|
||||
pidCode = BaseRegex.GetStringJson(ref htmlx, "out_goods_sn");
|
||||
if (!string.IsNullOrEmpty(pidCode) && !pidCode.Contains("wait:"))
|
||||
goto End;
|
||||
}
|
||||
if (UpIdsList.Count == 0)
|
||||
{
|
||||
UpdataUpIds();
|
||||
}
|
||||
foreach (string key in UpIdsList.Keys)
|
||||
{
|
||||
if (key == proId.ToString())
|
||||
{
|
||||
idx = UpIdsList[key].upProIdOne;
|
||||
if (string.IsNullOrEmpty(idx))
|
||||
idx = UpIdsList[key].upProIdTwo;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(idx) && idx.Contains("-"))
|
||||
{
|
||||
DeCode(idx);
|
||||
return;
|
||||
}
|
||||
if (GetServerId(proId, out idx))
|
||||
{
|
||||
DeCode(idx);
|
||||
return;
|
||||
}
|
||||
if (string.IsNullOrEmpty(pidCode))
|
||||
{
|
||||
string urlx = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
||||
string data = "{\"order_by\":\"id:desc\",\"goods_id\":\"" + id + "\",\"size\":15,\"page\":1,\"mall_id\":" + maillId + "}";
|
||||
string htmlx = GetPostTaobaoHtml.UploadTaobaoPost(urlx, "https://mms.pinduoduo.com/Pdd.html", true, data,
|
||||
cookies);
|
||||
pidCode = BaseRegex.GetStringJson(ref htmlx, "out_goods_sn");
|
||||
if (!string.IsNullOrEmpty(pidCode) && !pidCode.Contains("wait:"))
|
||||
goto End;
|
||||
}
|
||||
url = "https://mms.pinduoduo.com/vodka/v2/mms/query/display/mall/goodsList";
|
||||
string date = "{\"sort_by\":\"id\",\"sort_type\":\"DESC\",\"goods_id\":\"" + id +
|
||||
"\",\"size\":15,\"page\":1,\"mall_id\":" + maillId + "}";
|
||||
string html = GetPostTaobaoHtml.UploadTaobaoPost(url, "https://mms.pinduoduo.com/Pdd.html", true, date,
|
||||
cookies);
|
||||
//url = "https://mms.pinduoduo.com/malls/" + maillId + "/goodsList?sort_by=id&sort_type=DESC&goods_id=" + id + "&size=15&page=1";
|
||||
// html = GetPostTaobaoHtml.UploadTaobao(url, "https://mms.pinduoduo.com/Pdd.html", true, cookies);
|
||||
Good_Sn = BaseRegex.GetStringJson(ref html, "goods_sn");
|
||||
|
||||
if (string.IsNullOrEmpty(Good_Sn)) //没有上家
|
||||
{
|
||||
Thread.Sleep(5*1000);
|
||||
html = GetPostTaobaoHtml.UploadTaobaoPost(url, "https://mms.pinduoduo.com/Pdd.html", true, date,
|
||||
cookies);
|
||||
Good_Sn = BaseRegex.GetStringJson(ref html, "goods_sn");
|
||||
}
|
||||
if (string.IsNullOrEmpty(Good_Sn)) //没有上家
|
||||
{
|
||||
Thread.Sleep(20*1000);
|
||||
html = GetPostTaobaoHtml.UploadTaobaoPost(url, "https://mms.pinduoduo.com/Pdd.html", true, date,
|
||||
cookies);
|
||||
Good_Sn = BaseRegex.GetStringJson(ref html, "goods_sn");
|
||||
}
|
||||
if (string.IsNullOrEmpty(Good_Sn)) //没有上家
|
||||
{
|
||||
//message = "查询无数据";
|
||||
UpId.Message = "未查询到产品id,请点选正确的店铺";
|
||||
//AddToTemp(proId);
|
||||
return;
|
||||
}
|
||||
}
|
||||
//李尹添加
|
||||
if (string.IsNullOrEmpty(pidCode))
|
||||
{
|
||||
//获取包含✅的上传记录
|
||||
long idUp = proId;
|
||||
string urlUp = "https://mms.pinduoduo.com/glide/v2/mms/query/commit/list";
|
||||
string referex = "https://mms.pinduoduo.com/goods/goods_record";
|
||||
string datax = "{\"check_status\":2,\"start\":0,\"length\":10,\"goods_id\":" + idUp + "}";
|
||||
//第一页匹配结果
|
||||
string htmlUp = GetPostTaobaoHtml.UploadTaobaoPost(urlUp, referex, true, datax, cookies);
|
||||
int allCount = BaseRegex.GetIntJson(ref htmlUp, "total");
|
||||
int page = allCount / 10 + (allCount % 10 > 0 ? 1 : 0);
|
||||
long editId = 0;
|
||||
for (int j = 1; j <= page; j++)
|
||||
{
|
||||
if (editId > 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (j != 1)
|
||||
{
|
||||
datax = "{\"check_status\":2,\"start\":" + (j - 1) * 10 + ",\"length\":10,\"goods_id\":" + idUp + "}";
|
||||
htmlUp = GetPostTaobaoHtml.GetJsonPost(urlUp, referex, true, datax, cookies);
|
||||
}
|
||||
var m = BaseRegex.GetMatchRegex(ref htmlUp, @"\{([\w\W]+?)\}");
|
||||
for (int k = 0; m != null && k < m.Count; k++)
|
||||
{
|
||||
string list = m[k].Groups[0].Value;
|
||||
string goods_name = BaseRegex.GetStringJson(ref list, "goods_name");
|
||||
if (string.IsNullOrEmpty(goods_name) || goods_name.Contains("✅"))
|
||||
{
|
||||
editId = BaseRegex.GetLongJson(ref list, "id");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
string urlx = "https://mms.pinduoduo.com/glide/v2/mms/query/commit/detail/" + editId;
|
||||
string htmlx = GetPostTaobaoHtml.UploadTaobao(urlx, "https://mms.pinduoduo.com/goods/goods_add/index?id=" + editId + "&type=edit", true, cookies);
|
||||
pidCode = BaseRegex.GetStringJson(ref htmlx, "out_goods_sn");
|
||||
if (!string.IsNullOrEmpty(pidCode) && !pidCode.Contains("wait:"))
|
||||
goto End;
|
||||
}
|
||||
|
||||
url = "https://mms.pinduoduo.com/glide/v2/mms/query/commit/on_shop/detail";
|
||||
Html = GetPostTaobaoHtml.UploadTaobaoPost(url, "https://mms.pinduoduo.com/Pdd.html", true,
|
||||
"{\"goods_sn\":\"" + Good_Sn + "\"}", cookies);
|
||||
if (!string.IsNullOrEmpty(Html) && Html.Contains("过于频繁"))
|
||||
{
|
||||
Thread.Sleep(30*1000);
|
||||
Html = GetPostTaobaoHtml.UploadTaobaoPost(url, "https://mms.pinduoduo.com/Pdd.html", true,
|
||||
"{\"goods_sn\":\"" + Good_Sn + "\"}", cookies);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(Html) && Html.Contains("过于频繁"))
|
||||
{
|
||||
Thread.Sleep(90*1000);
|
||||
Html = GetPostTaobaoHtml.UploadTaobaoPost(url, "https://mms.pinduoduo.com/Pdd.html", true,
|
||||
"{\"goods_sn\":\"" + Good_Sn + "\"}", cookies);
|
||||
}
|
||||
pidCode = BaseRegex.GetStringJson(ref Html, @"out_goods_sn");
|
||||
//if (string.IsNullOrEmpty(pidCode) || pidCode.Contains("wait:")) //没有上家
|
||||
//{
|
||||
// Html = new PinduoduoApiGetProduct(Shop).GetProduct(proId);
|
||||
// var m = BaseRegex.GetMatchRegex(ref Html, @"""outer_goods_id"":""([^""]+?)""");
|
||||
// if (m != null && m.Count > 0)
|
||||
// pidCode = m[m.Count - 1].Groups[1].Value;
|
||||
// if (!string.IsNullOrEmpty(pidCode) && !pidCode.Contains("wait:"))
|
||||
// goto End;
|
||||
//}
|
||||
//if (string.IsNullOrEmpty(pidCode) || pidCode.Contains("wait:")) //没有上家
|
||||
//{
|
||||
// Html = new PinduoduoApiGetProduct(Shop).GetProductInfor(proId);
|
||||
// var m = BaseRegex.GetMatchRegex(ref Html, @"""outer_goods_id"":""([^""]+?)""");
|
||||
// if (m != null && m.Count > 0)
|
||||
// pidCode = m[m.Count - 1].Groups[1].Value;
|
||||
// if (!string.IsNullOrEmpty(pidCode))
|
||||
// goto End;
|
||||
//}
|
||||
End:
|
||||
if (string.IsNullOrEmpty(pidCode))
|
||||
pidCode = BaseRegex.GetMatchRegexString(ref Html, @"(TJM_[a-z0-9=+/]+?)"",""");
|
||||
if (string.IsNullOrEmpty(pidCode))
|
||||
pidCode = BaseRegex.GetMatchRegexString(ref Html, @"(JM_[a-z0-9]+?)"",""");
|
||||
if (string.IsNullOrEmpty(pidCode))
|
||||
pidCode = BaseRegex.GetMatchRegexString(ref Html, @"[\D]([a-z0-9=+/]+?=)"",""");
|
||||
if (!string.IsNullOrEmpty(pidCode))
|
||||
{
|
||||
string pidCodex = BaseRegex.GetMatchRegexString(ref pidCode, @"([\d]{6,15})"); //未加密
|
||||
if (!string.IsNullOrEmpty(pidCodex))
|
||||
{
|
||||
long upid = long.Parse(pidCodex);
|
||||
if (upid < 999999999l)
|
||||
UpId.SiteIdFrom = 2;
|
||||
else
|
||||
UpId.SiteIdFrom = 1;
|
||||
if (pidCode.Contains("tb-"))
|
||||
UpId.SiteIdFrom = 1;
|
||||
if (pidCode.Contains("pdd-") || pidCode.Contains("pd-"))
|
||||
UpId.SiteIdFrom = 2;
|
||||
if (pidCode.Contains("al-") || pidCode.Contains("albb-") || pidCode.Contains("1688-"))
|
||||
UpId.SiteIdFrom = 3;
|
||||
UpId.GetOk = true;
|
||||
UpId.ProductIdFrom = upid;
|
||||
AddToTemp(proId);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(pidCode))
|
||||
{
|
||||
UpId.Message = "未找到加密密钥";
|
||||
AddToTemp(proId);
|
||||
return;
|
||||
}
|
||||
|
||||
if (pidCode.Contains("TJM_"))
|
||||
{
|
||||
if (!string.IsNullOrEmpty(pidCode) && pidCode.Contains("|"))
|
||||
pidCode = pidCode.Substring(0, pidCode.IndexOf("|"));
|
||||
try
|
||||
{
|
||||
byte[] inArray = Convert.FromBase64String(pidCode.Replace("TJM_", ""));
|
||||
idx = Encoding.UTF8.GetString(inArray);
|
||||
DeCode(idx);
|
||||
return;
|
||||
}
|
||||
catch
|
||||
{
|
||||
UpId.Message = "解密异常,请联系管理员";
|
||||
}
|
||||
AddToTemp(proId);
|
||||
return;
|
||||
}
|
||||
if (pidCode.Length > 3 && (pidCode.Substring(0, 3) == "PBB" || pidCode.Substring(0, 3) == "TJH"))
|
||||
{
|
||||
int mid = Shop == null ? BaseClass.MallId : Shop.MallId;
|
||||
if (pidCode.Contains("?"))
|
||||
{
|
||||
string data = UserLogin.GetSignaturex(Shop.ShopId, Shop.ShopName);
|
||||
data += "&mall_id=" + mid + "&encode=" + GetHtml.UrlEncodeUtf8(pidCode);
|
||||
string urlx = BaseClass.BuildObjString("decode&act=get");
|
||||
idx = GetHtml.PostUtf8(urlx, data);
|
||||
}
|
||||
else if (pidCode.Contains("#"))
|
||||
{
|
||||
string data = UserLogin.GetSignaturex(Shop.ShopId, Shop.ShopName);
|
||||
data += "&mall_id=" + mid + "&encode=" + GetHtml.UrlEncodeUtf8(pidCode);
|
||||
string urlx = BaseClass.BuildObjString("decode&act=getx");
|
||||
idx = GetHtml.PostUtf8(urlx, data);
|
||||
}
|
||||
else
|
||||
{
|
||||
idx = GetUpId(pidCode, mid);
|
||||
}
|
||||
DeCode(idx);
|
||||
return;
|
||||
}
|
||||
if (pidCode.Contains("JM_"))
|
||||
{
|
||||
string pid = Decode(pidCode);
|
||||
if (string.IsNullOrEmpty(pid))
|
||||
UpId.Message = "解密失败,字典不足";
|
||||
AddToTemp(proId);
|
||||
return;
|
||||
}
|
||||
if (UpIdsList.Count==0)
|
||||
{
|
||||
UpdataUpIds();
|
||||
}
|
||||
foreach (string key in UpIdsList.Keys)
|
||||
{
|
||||
if (key == proId.ToString())
|
||||
{
|
||||
idx = UpIdsList[key].upProIdOne;
|
||||
if (string.IsNullOrEmpty(idx))
|
||||
idx = UpIdsList[key].upProIdTwo;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(idx) && idx.Contains("-"))
|
||||
{
|
||||
DeCode(idx);
|
||||
return;
|
||||
}
|
||||
url = BaseClass.LoginApiUrl + "?obj=upshopid/upid&act=get";
|
||||
string datay = "&pdd_id=" + proId + "&table=" + (proId % 1024);
|
||||
string htmly = GetHtml.PostUtf8(url, UserLogin.GetSignaturex(Shop.ShopId, Shop.ShopName) + datay);
|
||||
if (!string.IsNullOrEmpty(htmly) && htmly.Contains("-"))
|
||||
{
|
||||
DeCode(htmly);
|
||||
return;
|
||||
}
|
||||
UpId.Message = "未找到解密方法,请联系管理员";
|
||||
}
|
||||
public static Dictionary<string, UpProId> UpIdsList = new Dictionary<string, UpProId>();
|
||||
public static void UpdataUpIds()
|
||||
{
|
||||
UpIdsList.Clear();
|
||||
bool had = true;
|
||||
int page = 1;
|
||||
while (had)
|
||||
{
|
||||
string data = UserLogin.GetSignaturex() + "";
|
||||
string url = BaseClass.BuildObjString("upid&act=getx&page=" + page);
|
||||
string html = GetHtml.PostUtf8(url, data);
|
||||
var m = BaseRegex.GetMatchRegex(ref html, @"({[\s\S]+?})");
|
||||
for (int i = 0; i < m.Count; i++)
|
||||
{
|
||||
var item = m[i].Groups[0].Value;
|
||||
string pid = BaseRegex.GetStringJson(ref item, "product_id");//商品ID
|
||||
string upids = BaseRegex.GetStringJson(ref item, "up_ids");//上家Id
|
||||
string upidsTwo = BaseRegex.GetStringJson(ref item, "up_ids2");//上家Id2
|
||||
if ((string.IsNullOrEmpty(upids)&& string.IsNullOrEmpty(upidsTwo)) || string.IsNullOrEmpty(pid))
|
||||
continue;
|
||||
if (UpIdsList.ContainsKey(pid))//如果dictionary 存在相同的key,remove后再添加。
|
||||
{
|
||||
UpIdsList.Remove(pid);
|
||||
}
|
||||
UpProId upProId = new UpProId();
|
||||
upProId.upProIdOne = upids;
|
||||
upProId.upProIdTwo = upidsTwo;
|
||||
UpIdsList.Add(pid, upProId);
|
||||
}
|
||||
had = m.Count > 2;
|
||||
page++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void DeCode(string idx)
|
||||
{
|
||||
string rid = BaseRegex.GetMatchRegexString(idx, @"([\d]+)");
|
||||
if (string.IsNullOrEmpty(rid))
|
||||
{
|
||||
UpId.Message = "解密遇到空数据";
|
||||
return;
|
||||
}
|
||||
UpId.ProductIdFrom = long.Parse(rid);
|
||||
if (idx.Contains("tb-"))
|
||||
UpId.SiteIdFrom = 1;
|
||||
if (idx.Contains("pd-"))
|
||||
{
|
||||
if (idx.Length>13)
|
||||
{
|
||||
UpId.SiteIdFrom = 1;
|
||||
}
|
||||
UpId.SiteIdFrom = 2;
|
||||
}
|
||||
if (idx.Contains("al-"))
|
||||
UpId.SiteIdFrom = 3;
|
||||
if (idx.Contains("jx-"))
|
||||
UpId.SiteIdFrom = 4;
|
||||
if (idx.Contains("wd-"))
|
||||
UpId.SiteIdFrom = 6;
|
||||
UpId.GetOk = true;
|
||||
}
|
||||
|
||||
public bool GetServerId(long pid,out string idx)
|
||||
{
|
||||
idx = "";
|
||||
string url = BaseClass.LoginApiUrl + "?obj=upshopid/upid&act=get";
|
||||
string data = "&pdd_id=" + pid + "&table=" + (pid % 1024);
|
||||
string html = GetHtml.PostUtf8(url, UserLogin.GetSignaturex(Shop.ShopId, Shop.ShopName) + data);
|
||||
if (html == "none")
|
||||
return false;
|
||||
idx = html;
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 新版加密解密
|
||||
/// </summary>
|
||||
/// <param name="code"></param>
|
||||
/// <param name="mid"></param>
|
||||
/// <returns></returns>
|
||||
public string GetUpId(string code, int mid)
|
||||
{
|
||||
if (string.IsNullOrEmpty(code) || !code.Contains("PBB") && !code.Contains("TJH"))
|
||||
return "";
|
||||
if (!code.Contains("|"))
|
||||
return "";
|
||||
int ridMain = int.Parse(code.Substring(code.IndexOf("|") + 1));
|
||||
int ridClient = (mid % ridMain) % 26;
|
||||
List<int> k = new List<int>();
|
||||
char[] ke = mid.ToString().ToCharArray();
|
||||
for (int i = 0; i < ke.Length; i++)
|
||||
{
|
||||
int j = int.Parse(ke[i].ToString());
|
||||
k.Add(j);
|
||||
}
|
||||
string codeNew = code.Substring(3, code.IndexOf("|") - 3);
|
||||
byte[] b = Convert.FromBase64String(codeNew);
|
||||
int y = 0;
|
||||
for (int i = 0; i < b.Length; i++)
|
||||
{
|
||||
int z = b[i] - k[y] * ridClient;
|
||||
if (z < 0)
|
||||
z += 256;
|
||||
b[i] = (byte)(z % 256);
|
||||
y++;
|
||||
if (y >= ke.Length)
|
||||
y = 0;
|
||||
}
|
||||
string decode = Encoding.UTF8.GetString(b);
|
||||
return decode;
|
||||
}
|
||||
|
||||
private void AddToTemp(long proId)
|
||||
{
|
||||
if(proId==0 || UpId.ProductIdFrom==0)
|
||||
return;
|
||||
try
|
||||
{
|
||||
UpId.Url = GetJumpUrl(UpId.SiteIdFrom, UpId.ProductIdFrom);
|
||||
if (!UpShopIdFromServer.UpIds.ContainsKey(proId))
|
||||
{
|
||||
UpShopIdFromServer.UpIds.Add(proId,UpId);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 解密密文
|
||||
/// </summary>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
public string Decode(string code)
|
||||
{
|
||||
string temp = "";
|
||||
if (code.Contains("JM_DD8E5ED"))
|
||||
{
|
||||
UpId.SiteIdFrom = 1;
|
||||
code = code.Replace("JM_DD8E5ED", "");
|
||||
int b = 0;
|
||||
char[] h = code.ToCharArray();
|
||||
temp = "";
|
||||
for (int i = 0; i < h.Length + 1; i += 2)
|
||||
{
|
||||
char a = h[i];
|
||||
if (ShouZhangXinTb[b].ContainsKey(a))
|
||||
temp += ShouZhangXinTb[b][a];
|
||||
else
|
||||
return "";
|
||||
b++;
|
||||
}
|
||||
}
|
||||
if (code.Contains("JM_D98817C43"))
|
||||
{
|
||||
UpId.SiteIdFrom = 2;
|
||||
code = code.Replace("JM_D98817C43", "");
|
||||
int b = 1;
|
||||
char[] h = code.ToCharArray();
|
||||
temp = "";
|
||||
for (int i = 0; i < h.Length + 1; i += 2)
|
||||
{
|
||||
char a = h[i];
|
||||
if (ShouZhangXinTb[b].ContainsKey(a))
|
||||
temp += ShouZhangXinTb[b][a];
|
||||
else
|
||||
return "";
|
||||
b++;
|
||||
}
|
||||
}
|
||||
|
||||
long.TryParse(temp,out UpId.ProductIdFrom);
|
||||
UpId.SiteId = 2;
|
||||
UpId.GetOk = true;
|
||||
UpId.Url = GetJumpUrl(UpId.SiteIdFrom, UpId.ProductIdFrom);
|
||||
return temp;
|
||||
}
|
||||
|
||||
public static string GetJumpUrl(int siteId, long pid)
|
||||
{
|
||||
string url = "";
|
||||
if (pid>9900000000)
|
||||
{
|
||||
if (siteId != 3)
|
||||
{
|
||||
url = "http://taoke.qixiaoke.com/first.php?pid=mm_15630535_36114777_129010993&product_id=" + pid;
|
||||
if (!string.IsNullOrEmpty(BaseClass.AlimamaPid) && !string.IsNullOrEmpty(BaseClass.AlimamaDomain))
|
||||
url = "http://" + BaseClass.AlimamaDomain + "/first.php?pid=" + BaseClass.AlimamaPid + "&product_id=" + pid;
|
||||
}
|
||||
else
|
||||
{
|
||||
url = "https://detail.1688.com/offer/"+ pid + ".html";
|
||||
}
|
||||
|
||||
}
|
||||
if ( pid < 9900000000)
|
||||
{
|
||||
url = BaseClass.LoginApiUrl + "?obj=upshopid/pinduoduo_click&act=jump&id=" + pid;
|
||||
}
|
||||
return url;
|
||||
}
|
||||
|
||||
public void Ini()
|
||||
{
|
||||
ShouZhangXinTb.Clear();
|
||||
ShouZhangXinPdd.Clear();
|
||||
string[] l = DeCodeString.Split('\n');
|
||||
for (int i = 0; i < l.Length; i++)
|
||||
{
|
||||
if (string.IsNullOrEmpty(l[i]) || !l[i].Contains("\t"))
|
||||
continue;
|
||||
string[] li = l[i].Split('\t');
|
||||
string c = li[0];
|
||||
string id = li[1];
|
||||
if (c.Contains("JM_DD8E5ED"))
|
||||
{
|
||||
int b = 0;
|
||||
c = c.Replace("JM_DD8E5ED", "");
|
||||
char[] h = c.ToCharArray();
|
||||
char[] s = id.Trim().ToCharArray();
|
||||
for (int j = 0; b < 12 && b < s.Length; j += 2)
|
||||
{
|
||||
if (!ShouZhangXinTb.ContainsKey(b))
|
||||
ShouZhangXinTb.Add(b, new Dictionary<char, char>());
|
||||
char a = h[j];
|
||||
char d = s[b];
|
||||
if (!ShouZhangXinTb[b].ContainsKey(a))
|
||||
ShouZhangXinTb[b].Add(a, d);
|
||||
if (!ShouZhangXinTb[b].ContainsKey(d))
|
||||
ShouZhangXinTb[b].Add(d, a);
|
||||
b++;
|
||||
}
|
||||
}
|
||||
if (c.Contains("JM_D98817C43"))
|
||||
{
|
||||
int b = 0;
|
||||
c = c.Replace("JM_D98817C43", "");
|
||||
char[] h = c.ToCharArray();
|
||||
char[] s = id.Trim().ToCharArray();
|
||||
for (int j = 0; b < 12 && b < s.Length; j += 2)
|
||||
{
|
||||
if (!ShouZhangXinPdd.ContainsKey(b))
|
||||
ShouZhangXinPdd.Add(b, new Dictionary<char, char>());
|
||||
char a = h[j];
|
||||
char d = s[b];
|
||||
if (!ShouZhangXinPdd[b].ContainsKey(a))
|
||||
ShouZhangXinPdd[b].Add(a, d);
|
||||
if (!ShouZhangXinPdd[b].ContainsKey(d))
|
||||
ShouZhangXinPdd[b].Add(d, a);
|
||||
b++;
|
||||
}
|
||||
}
|
||||
}
|
||||
string allMun = "0123456789";
|
||||
foreach (KeyValuePair<int, Dictionary<char, char>> key in ShouZhangXinTb)
|
||||
{
|
||||
string noHad = allMun;
|
||||
string noReplace = allMun + "ABCDEF";
|
||||
string temp = "";
|
||||
foreach (KeyValuePair<char, char> ke in key.Value)
|
||||
{
|
||||
noHad = noHad.Replace(ke.Value.ToString(), "");
|
||||
noReplace = noReplace.Replace(ke.Key.ToString(), "");
|
||||
temp += ke.Key + " = " + ke.Value + "\r\n";
|
||||
}
|
||||
if (noHad.Length == 1)
|
||||
{
|
||||
char[] no = noReplace.ToCharArray();
|
||||
foreach (char c in no)
|
||||
{
|
||||
key.Value.Add(c, char.Parse(noHad));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (KeyValuePair<int, Dictionary<char, char>> key in ShouZhangXinPdd)
|
||||
{
|
||||
string noHad = allMun;
|
||||
string noReplace = allMun + "ABCDEF";
|
||||
string temp = "";
|
||||
foreach (KeyValuePair<char, char> ke in key.Value)
|
||||
{
|
||||
noHad = noHad.Replace(ke.Value.ToString(), "");
|
||||
noReplace = noReplace.Replace(ke.Key.ToString(), "");
|
||||
temp += ke.Key + " = " + ke.Value + "\r\n";
|
||||
}
|
||||
if (noHad.Length == 1)
|
||||
{
|
||||
char[] no = noReplace.ToCharArray();
|
||||
foreach (char c in no)
|
||||
{
|
||||
key.Value.Add(c, char.Parse(noHad));
|
||||
}
|
||||
}
|
||||
}
|
||||
ShouZhangXinPdd[9] = ShouZhangXinTb[10];
|
||||
|
||||
//string t = Decode("JM_DD8E5EDC3643D01817BAEC21C67352");
|
||||
}
|
||||
|
||||
public string DeCodeString = @"JM_DD8E5EDC3542D11713B9EB21C07752 564961026602
|
||||
JM_DD8E5EDC3642D01710B8EF21C47754 554862166204
|
||||
JM_DD8E5EDC3641D0191BB8E82FC67658 557889118018
|
||||
JM_DD8E5EDC3542DC1411B0EE21C57756 564453976306
|
||||
JM_DD8E5EDC3545DF191BB9ED25C07558 563789042628
|
||||
JM_DD8E5EDC3542D0171AB0ED21C57555 564868946325
|
||||
JM_DD8E5EDC364FD81713BBEC21C47151 559061256261
|
||||
JM_DD8E5EDC3542DB1913BEED21C07353 564381746643
|
||||
JM_DD8E5EDC3641DE111ABDED24C47F57 557608443287
|
||||
JM_DD8E5EDC3542DC1411B0EE21C57756 564453976306
|
||||
JM_DD8E5EDC364ED81514BEE82FC77250 558046718150
|
||||
JM_DD8E5EDC3642D01710B8EF21C47754 554862166204
|
||||
JM_DD8E5EDC3641DB1512BEEF26C27251 557340761451
|
||||
JM_DD8E5EDC3543DF1016B1EF27C57050 565714860370
|
||||
JM_DD8E5EDC374FDD1715B8E923C07152 549567104662
|
||||
JM_DD8E5EDC3146DC1716BBE82EC37356 520464219546
|
||||
JM_DD8E5EDC3746DE1511BFE820C37751 540643617501
|
||||
JM_DD8E5EDC3643DA191ABDEB20C77E56 555288427196
|
||||
JM_DD8E5EDC3545DA1214B9EA25CF7056 563236032976
|
||||
JM_DD8E5EDC3543DF1812BDE020C17257 565790497757
|
||||
JM_DD8E5EDC3545DB131ABCE021C17E50 56332859690
|
||||
JM_DD8E5EDC3542D01914B0EB2FC77F58 564886928188
|
||||
JM_DD8E5EDC3543DE1115BEEB22C07259 565607725659
|
||||
JM_DD8E5EDC3540D91611BBED26C47659 566173241219
|
||||
JM_DD8E5EDC3544D0111BBCED27CF7351 562809540941
|
||||
JM_DD8E5EDC3740DA1211BFED2FC67F56 546233648086
|
||||
JM_DD8E5EDC374FDD1914BAEB21C07354 549586326644
|
||||
JM_DD8E5EDC3543D81313BFEC24C47E50 565021653290
|
||||
JM_DD8E5EDC3141D01316BBE923C57755 527824204305
|
||||
JM_D98817C43B40DC1415B9E022CE 864570958
|
||||
JM_D98817C43A44DE1212BCE827 92630510
|
||||
JM_D98817C43142DD1814BDED23C0 245964446
|
||||
JM_D98817C43B40DC1415B9E022CE 864570958
|
||||
JM_D98817C43445DC1310BCE927CF 734225009
|
||||
JM_D98817C43446DD1014BAEF23C4 705163642
|
||||
JM_D98817C43440D81116BBEA21C0 760042366
|
||||
JM_D98817C43A45D0121BBDEC22CF 938394559
|
||||
JM_D98817C4354FDD1017BAE124C0 695153836
|
||||
JM_D98817C4354FDA191BB9EC21C7 692890561
|
||||
JM_D98817C43547DD1215BFEA2E 61537639
|
||||
JM_D98817C43445DF1313B8E82F 73721118
|
||||
JM_D98817C43045DD1413BAE120C2 335513874
|
||||
JM_D98817C43546DA1615BBED23C6 602772440
|
||||
JM_D98817C43140DF141ABFE12FC4 267586882
|
||||
JM_D98817C43541D11910BDE827C4 679824102
|
||||
JM_D98817C43446D91316BEE02F 70124798
|
||||
JM_D98817C43440D11110B1EA25C4 769028322
|
||||
JM_D98817C43246DB1316BBEE25C27E 1032427249
|
||||
JM_D98817C43643DC121ABFED21C7 554386461
|
||||
JM_D98817C43A46DF131ABAEF23 90728364
|
||||
JM_DD8E5EDC3741DF1011B8E120CE7F59 547713187889
|
||||
JM_DD8E5EDC3141DF1210B9E923CE7057 527732004877
|
||||
JM_DD8E5EDC374EDB1213B1E922CF7553 548331805923
|
||||
JM_DD8E5EDD374FDD1013B8EF22C47E 44951116529
|
||||
JM_DD8E5EDC3742D81111BBEA20C27355 544003237445
|
||||
JM_DD8E5EDC3745D91217B9E12FC27354 543135088444
|
||||
JM_DD8E5EDC3547DF1013B1E120C17F57 561711887787
|
||||
JM_DD8E5EDC3747D81214BDEA2ECF7051 541036439971
|
||||
JM_DD8E5EDC3041D1151AB1E122C37254 537948885554
|
||||
JM_DD8E5EDC3640DB131AB9EC2FC37E52 556328058592
|
||||
JM_DD8E5EDC3646DE1112B8EF25CF7256 550600162956
|
||||
JM_DD8E5EDC3641DA151ABFEC2FC57751 557248658301
|
||||
JM_DD8E5EDC3640DC1415B1ED2ECE7352 556457849842
|
||||
JM_DD8E5EDC3045DF1511BDEA21C17F51 533743436781
|
||||
JM_DD8E5EDC3147DB1311BBE923C77457 521323204137
|
||||
JM_DD8E5EDC364EDC1811B1E821C67253 558493816053
|
||||
JM_DD8E5EDD3743D01117BDEE26C073 44580547164
|
||||
JM_DD8E5EDD3144DC1014B1E12EC673 42241688904
|
||||
JM_DD8E5EDD374ED01114BCEB20C174 44880652773
|
||||
JM_DD8E5EDC304EDB1712B9E926C27E54 538360001494
|
||||
JM_DD8E5ED83B43D91217B9EA2FC276 18513503841
|
||||
JM_DD8E5EDC3142DC1814BDEA21C37652 524496436512
|
||||
JM_D98817C43645DD1512B0EC20 53540957
|
||||
JM_D98817C43142D81917BFE826C2 240856114
|
||||
JM_D98817C43543D0171AB0EF23C0 658689646
|
||||
JM_D98817C4314ED8131BB8EB 2802912
|
||||
JM_D98817C4364FDA1212B0E821CF 592309169
|
||||
JM_D98817C43247D01612B1EC2E 11870859
|
||||
JM_D98817C43546DB1316BDE8 6032441
|
||||
JM_D98817C4314ED8131BB8EB 2802912
|
||||
JM_D98817C4364FDA1212B0E821CF 592309169
|
||||
JM_D98817C43247D01612B1EC2E 11870859
|
||||
JM_D98817C43546DB1316BDE8 6032441
|
||||
JM_D98817C4324EDB1110B9E027 18302090
|
||||
JM_D98817C43743DB1113B8E92FCF 453011089
|
||||
JM_DD8E5EDB3345DB1215BDEE2FC076 20333747861
|
||||
JM_DD8E5EDB3340DA1414B8E82EC474 20625611923
|
||||
JM_DD8E5EDD3347D91714BAE024C27E 40116639349
|
||||
JM_DD8E5ED83346D91911B0EC2FC676 10018395801
|
||||
JM_DD8E5EDA3545DB1016B0EF2FC571 36331496836
|
||||
JM_D98817C43245D81312BFEE22C4 130206752
|
||||
JM_D98817C43041D91617BCEA25C7 371755321
|
||||
JM_D98817C43546DB181AB0E0 6039899
|
||||
JM_D98817C43140DA1412B9EE 2625007
|
||||
JM_D98817C43543D0171AB0EF23C0 658689646
|
||||
JM_D98817C43142D81917BFE826C2 240856114
|
||||
JM_D98817C43245DD1417BFEF24 13555663
|
||||
JM_D98817C43246DB1211B9EF20C375 1033306752
|
||||
JM_D98817C43A41D11315BCE920C6 979275070
|
||||
JM_D98817C4324FDF1816B9EC23C2 197940544
|
||||
JM_D98817C43446DB1610BCEC 7037255
|
||||
JM_D98817C43544D0171ABAEB27C0 628683206
|
||||
JM_D98817C43745DF1916BBE126C3 437842815
|
||||
JM_D98817C4304EDC1913B0EA26C4 384819312
|
||||
JM_D98817C43A42D11713B1E120C3 949618875
|
||||
JM_D98817C43246DC1416BEEB24C1 104547237
|
||||
JM_D98817C43A4FDF1815BDEC21C2 997974564
|
||||
JM_D98817C43544D91115BCEE2FC5 621075783
|
||||
JM_D98817C43A42DA111BBEE9 9420970
|
||||
JM_D98817C43B40DA131BBFEA26C7 862296311
|
||||
JM_D98817C4324FDE1712B9E820 19660017
|
||||
JM_D98817C43140DF191BB8EF 2678916
|
||||
JM_D98817C43045DA1111BCEE26 33203571
|
||||
JM_D98817C43544DF1711BAE0 6276339
|
||||
JM_D98817C43447DE1011B9E925CF 716130029
|
||||
JM_D98817C4304FD01310BDE820C1 398224177
|
||||
JM_D98817C43246D81811B8ED27CE73 1009314084
|
||||
JM_D98817C4364FD01017BEE127CF 598157809
|
||||
JM_D98817C43247D01217BEE122 11835785
|
||||
JM_D98817C43544D01017B8E92FC0 628151086
|
||||
JM_D98817C43545DA121ABAE020C5 632383973
|
||||
JM_D98817C4304FD11116B8EB27C6 399041200
|
||||
JM_D98817C43A43D1101ABEE020C6 959187970
|
||||
JM_D98817C43241DC1313BEED27 17421740";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user