/// <summary>
/// 请求签名
/// </summary>
/// <param name="urlPath"></param>
/// <param name="paramDic"></param>
/// <returns></returns>
private string sign(string urlPath, Dictionary<string, string> paramDic)
{
byte[] signatureKey = Encoding.UTF8.GetBytes("N3U2jQmsJa");//此处用自己的签名密钥
List<string> list = new List<string>();
foreach (KeyValuePair<string, string> kv in paramDic)
{
list.Add(kv.Key + kv.Value);
}
list.Sort();
string tmp = urlPath;
foreach (string kvstr in list)
{
tmp = tmp + kvstr;
}
//HMAC-SHA1
HMACSHA1 hmacsha1 = new HMACSHA1(signatureKey);
hmacsha1.ComputeHash(Encoding.UTF8.GetBytes(tmp));
byte[] hash = hmacsha1.Hash;
//TO HEX
return BitConverter.ToString(hash).Replace("-", string.Empty).ToUpper();
}
/// <summary>
/// 查询交易订单列表(卖家视角)
/// </summary>
/// <param name="StartTime">yyyy-MM-dd HH:mm:ss</param>
/// <param name="EndTime">yyyy-MM-dd HH:mm:ss</param>
/// <param name="Page">当前页</param>
// success, cancel(交易取消,违约金等交割完毕), waitbuyerpay(等待卖家付款), waitsellersend(等待卖家发货), waitbuyerreceive(等待买家收货 )
private void GetOrders(string access_token, string StartTime, string EndTime, int Page = 1)
{
try
{
string STime = Convert.ToDateTime(StartTime).ToString("yyyyMMddHHmmssfff") + "+0800";
string ETime = Convert.ToDateTime(EndTime).ToString("yyyyMMddHHmmssfff") + "+0800";
Dictionary<string, string> DicParameters = new Dictionary<string, string>();
//DicParameters.Add("_aop_signature", "");
DicParameters.Add("access_token", access_token);
DicParameters.Add("createStartTime", STime);
DicParameters.Add("createEndTime", ETime);
DicParameters.Add("page", Page.ToString());
DicParameters.Add("orderStatus", "cancel");
DicParameters.Add("pageSize", "20");//最大查询条数20 条
DicParameters.Add("needMemoInfo", "true");
DicParameters.Add("_aop_signature", sign("param/1/com.alibaba.trade/alibaba.trade.getSellerOrderList/6023877", DicParameters));
string url = "https://gw.open.1688.com/openapi/param/1/com.alibaba.trade/alibaba.trade.getSellerOrderList/6023877?" + string.Join("&", DicParameters.Select(w => w.Key + "=" + w.Value));
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url.Replace("+", "%2B"));
HttpWebResponse Response = (HttpWebResponse)request.GetResponse();
trade trade;
List<orders> ordersList;
using (Stream s = Response.GetResponseStream())
{
using (StreamReader sr = new StreamReader(s))
{
string msg = sr.ReadToEnd();
}
}
}
catch (Exception ex)
{
throw;
}
}
/// <summary>
/// 根据id查询单据详细信息(卖家视角)
/// </summary>
/// <param name="id"></param>
/// <param name="access_token"></param>
private void GetOrderByID(string id, string access_token)
{
Dictionary<string, string> DicParameters = new Dictionary<string, string>();
//DicParameters.Add("_aop_signature", "");
DicParameters.Add("access_token", access_token);
DicParameters.Add("orderId", id);
DicParameters.Add("includeFields", "NativeLogistics");
DicParameters.Add("_aop_signature", sign("param/1/com.alibaba.trade/alibaba.trade.get.sellerView/6023877", DicParameters));
string url = "https://gw.open.1688.com/openapi/param/1/com.alibaba.trade/alibaba.trade.get.sellerView/6023877?" + string.Join("&", DicParameters.Select(w => w.Key + "=" + w.Value));
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (Stream s = response.GetResponseStream())
{
using (StreamReader sr = new StreamReader(s))
{
string json = sr.ReadToEnd();
}
}
}