Files
29WxOrder/Work/_29Tools/BLL/WxApiBLL.cs
T

116 lines
4.0 KiB
C#

using AllBase;
using AllBase.Helper;
using AllBase.Model.DBModel;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
namespace Work._29Tools.BLL
{
public class WxApiBLL
{
private WXShopTokenInfo UpdateShopWxToken(ShopLoginInfo shop)
{
var url = BaseClass.Build29WxObjString("shop/e57_get_wx_shop_token");
var data = UserLogin.GetSignaturex();
data += "&shop_id=" + shop.ShopId;
var html = GetHtml.PostUtf8(url, data);
// 获取失败
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":0"))
{
return new WXShopTokenInfo() { shopId = shop.ShopId, accessToken = "", mdyTime = DateTime.Now };
}
else
{
var token = new WXShopTokenInfo()
{
shopId = shop.ShopId,
accessToken = BaseRegex.GetStringJson(ref html, "accessToken"),
mdyTime = DateTime.Now,
};
return token;
}
}
public WXShopTokenInfo GetWxToken(ShopLoginInfo shop)
{
WXShopTokenInfo token = GlobalConfig.lstWXShopTokenInfo.FirstOrDefault(t => t.shopId == shop.ShopId);
if (token == null)
token = new WXShopTokenInfo();
if (token.isExpire || string.IsNullOrEmpty(token.accessToken))
{
token = new WxApiBLL().UpdateShopWxToken(shop);
if (!string.IsNullOrEmpty(token.accessToken))
{
GlobalConfig.lstWXShopTokenInfo.RemoveAll(t => t.shopId == shop.ShopId);
GlobalConfig.lstWXShopTokenInfo.Add(token);
NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_shop_token_list", GlobalConfig.lstWXShopTokenInfo);
}
}
return token;
}
/// <summary>
/// 代发订单查询
/// </summary>
/// <param name="shop"></param>
/// <param name="orderId"></param>
/// <param name="status">100 待发货 199 部分发货 200 已发货 300 已取消</param>
/// <returns></returns>
public string WxApiDropshipSearch(ShopLoginInfo shop, string orderId, int status)
{
StringBuilder sb = new StringBuilder();
sb.Append(UserLogin.GetSignaturex());
sb.Append("&token=").Append(GetWxToken(shop).accessToken);
sb.Append("&order_id=").Append(orderId);
sb.Append("&status=").Append(status);
var url = BaseClass.Build29WxObjString("product/wx_api_dropship_search");
var data = sb.ToString();
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"errcode\":0"))
html = GetHtml.PostUtf8(url, data);
return html;
}
public string WxApiDropshipAssign(ShopLoginInfo shop, string orderId, string spuId, string skuId, int cnt)
{
StringBuilder sb = new StringBuilder();
sb.Append(UserLogin.GetSignaturex());
sb.Append("&token=").Append(GetWxToken(shop).accessToken);
sb.Append("&order_id=").Append(orderId);
sb.Append("&dropship_product_list=").Append("[{\"spu_id\":\"").Append(spuId + "\",\"sku_id\":\"").Append(skuId + "\",\"product_cnt\":").Append(cnt).Append("}]");
var url = BaseClass.Build29WxObjString("product/wx_api_dropship_assign");
var data = sb.ToString();
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"errcode\":0"))
html = GetHtml.PostUtf8(url, data);
return html;
}
public string WxApiDropshipCancel(ShopLoginInfo shop, string orderId, string dropShopOrderId, string spuId, string skuId, int cnt)
{
StringBuilder sb = new StringBuilder();
sb.Append(UserLogin.GetSignaturex());
sb.Append("&token=").Append(GetWxToken(shop).accessToken);
sb.Append("&order_id=").Append(orderId);
sb.Append("&ds_order_id=").Append(dropShopOrderId);
sb.Append("&dropship_product_list=").Append("[{\"spu_id\":\"").Append(spuId).Append("\",\"sku_id\":\"").Append(skuId).Append("\",\"product_cnt\":").Append(cnt).Append("}]");
var url = BaseClass.Build29WxObjString("product/wx_api_dropship_cancel");
var data = sb.ToString();
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"errcode\":0"))
html = GetHtml.PostUtf8(url, data);
return html;
}
}
}