作业帮 > ASP.NET > 教育资讯

asp.net学习教程:ASP.NET挪用淘宝API实例详解

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 02:03:15 ASP.NET
asp.net学习教程:ASP.NET挪用淘宝API实例详解
asp.net学习教程:ASP.NET挪用淘宝API实例详解ASP.NET
【51Test.NET-asp学习教程:ASP.NET挪用淘宝API实例详解】:

   第一步 获取全部推广商品实体

   需要使用类 ITopClient TOP客户端类

   1using Top.Api.Request;

   2

   3namespace Top.Api

   4 {

   5///

   6/// TOP客户端。

   7///

   8publicinte***ce ITopClient

   9 {

   10///

   11/// 执行TOP公然API请求。

   12///

   13///领域对象

   14///具体的TOP API请求

   15///领域对象

   16 T Execute(ITopRequest request) where T : TopResponse;

   17

   18///

   19/// 执行TOP隐私API请求。

   20///

   21///领域对象

   22///具体的TOP API请求

   23///用户会话码

   24///领域对象

   25 T Execute(ITopRequest request, string session) where T : TopResponse;

   26 }

   27 }

   DefaultTopClient 初始化连接(请求地址, Appkey, AppSecret);

   1using System;

   2using System.Collections;

   3using System.Collections.Generic;

   4using Top.Api.Parser;

   5using Top.Api.Request;

   6using Top.Api.Util;

   7

   8namespace Top.Api

   9 {

   10///

   11/// 基于REST的TOP客户端。

   12///

   13publicclass DefaultTopClient : ITopClient

   14 {

   15publicconststring APP_KEY ="app_key";

   16publicconststring FORMAT ="format";

   17publicconststring METHOD ="method";

   18publicconststring TIMESTAMP ="timestamp";

   19publicconststring VERSION ="v";

   20publicconststring SIGN ="sign";

   21publicconststring PARTNER_ID ="partner_id";

   22publicconststring SESSION ="session";

   23publicconststring FORMAT_XML ="xml";

   24

   25privatestring serverUrl;

   26privatestring appKey;

   27privatestring appSecret;

   28privatestring format = FORMAT_XML;

   29

   30private WebUtils webUtils;

   31

   32#region DefaultTopClient Constructors

   33

   34public DefaultTopClient(string serverUrl, string appKey, string appSecret)

   35 {

   36this.appKey = appKey;

   37this.appSecret = appSecret;

   38this.serverUrl = serverUrl;

   39this.webUtils =new WebUtils();

   40 }

   41

   42public DefaultTopClient(string serverUrl, string appKey, string appSecret, string format)

   43 : this(serverUrl, appKey, appSecret)

   44 {

   45this.format = format;

   46 }

   47

   48publicvoid SetTimeout(int timeout)

   49 {

   50 webUtils.Timeout = timeout;

   51 }

   52

   53#endregion

   54

   55#region ITopClient Members

   56

   57public T Execute(ITopRequest request) where T : TopResponse

   58 {

   59return Execute(request, null);

   60 }

   61

   62public T Execute(ITopRequest request, string session) where T : TopResponse

   63 {

   64//添加协议级请求参数

   65 TopDictionary txtParams =new TopDictionary(request.GetParameters());

   66 txtParams.Add(METHOD, request.GetApiName());

   67 txtParams.Add(VERSION, "2.0");

   68 txtParams.Add(APP_KEY, appKey);

   69 txtParams.Add(FORMAT, format);

   70 txtParams.Add(PARTNER_ID, "top-sdk-net-");

   71 txtParams.Add(TIMESTAMP, DateTime.Now);

   72 txtParams.Add(SESSION, session);

   73

   74// 添加签名参数

   75 txtParams.Add(SIGN, TopUtils.SignTopRequest(txtParams, appSecret));

   76

   77// 是否需要上传文件

   78string body;

   79if (request is ITopUploadRequest

   80 {

   81 ITopUploadRequest uRequest = (ITopUploadRequest)request;

   82 IDictionary fileParams = TopUtils.CleanupDictionary(uRequest.GetFileParamet ers());

   83 body = webUtils.DoPost(this.serverUrl, txtParams, fileParams);

   84 }

   85else

   86 {

   87 body = webUtils.DoPost(this.serverUrl, txtParams);

   88 }

   89

   90 T rsp;

   91if (FORMAT_XML.Equals(format))

   92 {

   93 ITopParser tp =new TopXmlParser();

   94 rsp = tp.Parse(body);

   95 }

   96else

   97 {

   98 ITopParser tp =new TopJsonParser();

   99 rsp = tp.Parse(body);

   100 }

   101

   102return rsp;

   103 }

   104

   105#endregion

   106 }

   107 }

   TaobaokeItemsGetResponse 信息返回

   1using System;

   2using System.Xml.Serialization;

   3using System.Collections.Generic;

   4using Top.Api.Domain;

   5

   6namespace Top.Api.Response

   7 {

   8///

   9/// TaobaokeItemsGetResponse.

   10///

   11publicclass TaobaokeItemsGetResponse : TopResponse

   12 {

   13///

   14/// 淘宝客商品对象列表。不返回taobaoke_cat_click_url和keyword_click_url两个字段。

   15///

   16 [XmlArray("taobaoke_items")]

   17 [XmlArrayItem("taobaoke_item")]

   18public List TaobaokeItems { get; set; }

   19

   20///

   21/// 搜索到符合条件的结果总数

   22///

   23 [XmlElement("total_results")]

   24publiclong TotalResults { get; set; }

   25 }

   26 }

   TaobaokeItemsGetRequest 在请求类中设置相应条件信息。

   1using System;

   2using System.Collections.Generic;

   3using Top.Api.Response;

   4

   5namespace Top.Api.Request

   6 {

   7///

   8/// TOP API: taobao.taobaoke.items.get

   9///

   10publicclass TaobaokeItemsGetRequest : ITopRequest

   11 {

   12///

   13/// 商品所在地

   14///

   15publicstring Area { get; set; }

   16

   17///

   18/// 是否主动发货

   19///

   20publicstring AutoSend { get; set; }

   21

   22///

   23/// 是否支持抵价券,设置为true表示该商品支持抵价券,设置为false或不设置表示不判定这个属性

   24///

   25publicstring CashCoupon { get; set; }

   26

   27///

   28/// 是否支持货到付款,设置为true表示该商品是支持货到付款,设置为false或不设置表示不判定这个属性

   29///

   30publicstring CashOndelivery { get; set; }

   31

   32///

   33/// 商品所属分类id

   34///

   35public Nullable Cid { get; set; }

   36

   37///

   38/// 最高累计推广佣金选项

   39///

   40publicstring EndCommissionNum { get; set; }

   4

  1

   42///

   43/// 最高佣金比率选项http://uybdzd.edu.tc,如:2345表示23.45%.注:要起始佣金比率和最高佣金比率一起设置才有效。

   44///

   45publicstring EndCommissionRate { get; set; }

   46

   47///

   48/// 可选值和start_credit一样。start_credit的值一定要小于或即是end_credit的值。注:end_credit与start_credit一起使用才生效

   49///

   50publicstring EndCredit { get; set; }

   51

   52///

   53/// 最高价格

   54///

   55publicstring EndPrice { get; set; }

   56

   57///

   58/// 累计推广量规模竣事

   59///

   60publicstring EndTotalnum { get; set; }

   61

   62///

[nextpage]

   63/// 需返回的字段列表。可选值:num_iid,title,nick,pic_url,price,click_url,commis sion,commission_rate,commission_num,commission_vol u me,shop_click_url,seller_credit_score,item_locatio n ,volume ;字段之间用","分隔

   64///

   65publicstring Fields { get; set; }

   66

   67///

   68/// 是否查询消保卖家

   69///

   70publicstring Guarantee { get; set; }

   71

   72///

   73/// 标识一个应用是否来在无线或者手机应用,假如是true则会使用其他法则加密点击串。假如不穿值,则默认是false.

   74///

   75public Nullable IsMobile { get; set; }

   76

   77///

   78/// 商品标题中包含的关键字。 留意:查询时keyword,cid至少选择其中一个参数

   79///

   80publicstring Keyword { get; set; }

   81

   82///

   83/// 是否商城的商品,设置为true表示该商品是属于淘宝商城的商品,设置为false或不设置表示不判定这个属性

   84///

   85publicstring MallItem { get; set; }

   86

   87///

   88/// 淘宝用户昵称,注:指的是淘宝的会员登录名。假如昵称错误,那么客户就收不到佣金。每个淘宝昵称都对应于一个pid,在这里输进要结算佣金的淘宝昵称,当推广的商品成功后,佣金会打进此输进的淘宝昵称的账户。具体的信息可以登进阿里妈妈的网站查看。 留意nick和pid至少需要传递一个,假如2个都传了,将以pid为准

   89///

   90publicstring Nick { get; set; }

   91

   92///

   93/// 是否30天维修,设置为true表示该商品是支持30天维修,设置为false或不设置表示不判定这个属性

   94///

   95publicstring OnemonthRepair { get; set; }

   96

   97///

   98/// 自定义输进串。格式:英文和数字组成;长度不能大于12个字符,区分不同的推广渠道,如:bbs,表示bbs为推广渠道;blog,表示blog为推广渠道。

   99///

   100publicstring OuterCode { get; set; }

   101

   102///

   103/// 是否海外商品,设置为true表示该商品是属于海外商品,默以为false

   104///

   105publicstring OverseasItem { get; set; }

   106

   107///

   108/// 结果页数。1~99

   109///

   110public Nullable PageNo { get; set; }

   111

   112///

   113/// 每页返回结果数。最大每页40

   114///

   115public Nullable PageSize { get; set; }

   116

   117///

   118/// 用户的pid,必须是mm_***x_0_0这种格式中间的"***x". 留意nick和pid至少需要传递一个,假如2个都传了,将以pid为准,且pid的最大长度是20

   119///

   120publicstring Pid { get; set; }

   121

   122///

   123/// 是否如实描述(即:先行赔付)商品,设置为true表示该商品是如实描述的商品,设置为false或不设置表示不判定这个属性

   124///

   125publicstring RealDescribe { get; set; }

   126

   127///

   128/// 是否支持7天退换,设置为true表示该商品支持7天退换,设置为false或不设置表示不判定这个属性

   129///

   130publicstring SevendaysReturn { get; set; }

   131

   132///

[nextpage]

   133/// 默认排序:default price_desc(价格从高到低) price_asc(价格从低到高) credit_desc(信用等级从高到低) commissionRate_desc(佣金比率从高到底) commissionRate_asc(佣金比率从低到高) commissionNum_desc(成交量成高到低) commissionNum_asc(成交量从低到高) commissionVolume_desc(总支出佣金从高到底) commissionVolume_asc(总支出佣金从低到高) delistTime_desc(商品下架时间从高到底) delistTime_asc(商品下架时间从低到高)

   134///

   135publicstring Sort { get; set; }

   136

   137///

   138/// 起始累计推广量佣金。注:返回的数据是30天内累计推广量,具该字段要与最高累计推广量一起使用才生效

   139///

   140publicstring StartCommissionNum { get; set; }

   141

   142///

   143/// 起始佣金比率选项,如:1234表示12.34%

   144///

   145publicstring StartCommissionRate { get; set; }

   146

   147///

   148/// 卖家信用: 1heart(一心) 2heart (两心) 3heart(三心) 4heart(四心) 5heart(五心) 1diamond(一钻) 2diamond(两钻) 3diamond(三钻) 4diamond(四钻) 5diamond(五钻) 1crown(一冠) 2crown(两冠) 3crown(三冠) 4crown(四冠) 5crown(五冠) 1goldencrown(一黄冠) 2goldencrown(二黄冠) 3goldencrown(三黄冠) 4goldencrown(四黄冠) 5goldencrown(五黄冠)

   149///

   150publicstring StartCredit { get; set; }

   151

   152///

   153/// 起始价格。传进价格参数时,需留意起始价格和最高价格必须一起传进,并且 start_price <= end_price

   154 ///

   155publicstring StartPrice { get; set; }

   156

   157///

   158/// 累计推广量规模开始

   159///

   160publicstring StartTotalnum { get; set; }

   161

   162///

   163/// 是否支持VIP卡,设置为true表示该商品支持VIP卡,设置为false或不设置表示不判定这个属性

   164///

   165publicstring VipCard { get; set; }

   166

   167#region ITopRequest Members

   168

   169publicstring GetApiName()

   170 {

   171return"taobao.taobaoke.items.get";

   172 }

   173

   174public IDictionary GetParameters()

   175 {

   176 TopDictionary parameters =new TopDictionary();

   177 parameters.Add("area", this.Area);

   178 parameters.Add("auto_send", this.AutoSend);

   179 parameters.Add("cash_coupon", this.CashCoupon);

   180 parameters.Add("cash_ondelivery", this.CashOndelivery);

   181 parameters.Add("cid", this.Cid);

   182 parameters.Add("end_commissionNum", this.EndCommissionNum);

   183 parameters.Add("end_commissionRate", this.EndCommissionRate);

   184 parameters.Add("end_credit", this.EndCredit);

   185 parameters.Add("end_price", this.EndPrice);

   186 parameters.Add("end_totalnum", this.EndTotalnum);

   187 parameters.Add("fields", this.Fields);

   188 parameters.Add("guarantee", this.Guarantee);

   189 parameters.Add("is_mobile", this.IsMobile);

   190 parameters.Add("keyword", this.Keyword);

   191 parameters.Add("mall_item", this.MallItem);

   192 parameters.Add("nick", this.Nick);

   193 parameters.Add("onemonth_repair", this.OnemonthRepair);

   194 parameters.Add("outer_code", this.OuterCode);

   195 parameters.Add("overseas_item", this.OverseasItem);

   196 parameters.Add("page_no", this.PageNo);

   197 parameters.Add("page_size", this.PageSize);

   198 parameters.Add("pid", this.Pid);

   199 parameters.Add("real_describe", this.RealDescribe);

   200 parameters.Add("sevendays_return", this.SevendaysReturn);

   201 parameters.Add("sort", this.Sort);

   202 parameters.Add("start_commissionNum", this.StartCommissionNum);

   203 parameters.Add("start_commissionRate", this.StartCommissionRate);

   204 parameters.Add("start_credit", this.StartCredit);

   205 parameters.Add("start_price", this.StartPrice);

   206 parameters.Add("start_totalnum", this.StartTotalnum);

   207 parameters.Add("vip_card", this.VipCard);

   208return parameters;

   209 }

   210

   211#endregion

   &nbs

  p; 212 }

   213 }

   ///

   /// taobao.taobaoke.items.get 查询淘宝客推广商品

   ///

   ///请求实体参数

   ///返回商品实体数组

   publicstatic TaobaokeItem[] GetItemArray(TaobaokeItemsGetRequest req)

   {

   ITopClient client =new DefaultTopClient(Config.ServerURL, Config.Appkey, Config.AppSecret);

   req.Pid = Config.Pid;///淘宝客PID 可以到阿里妈妈查询

   TaobaokeItemsGetResponse response = client.Execute(req);

   if (response.IsError)

   {

   string err = response.ErrMsg;

   string ierr = response.ErrCode;

   ErrorLog.Save("TaobaokeAPI", ierr, err, All.GetErrorCN(int.Parse(ierr)));

   }

   return response.TotalResults >0? response.TaobaokeItems.ToArray() : null;

   } %D%

ASP.NET