asp.net学习教程:ASP.NET挪用淘宝API实例详解
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/27 06:50:36 ASP.NET
第一步 获取全部推广商品实体
需要使用类 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
17
18///
19/// 执行TOP隐私API请求。
20///
21///
22///具体的TOP API请求
23///用户会话码
24///
25 T Execute
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
58 {
59return Execute
60 }
61
62public T Execute
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
82 IDictionary
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
94 rsp = tp.Parse(body);
95 }
96else
97 {
98 ITopParser
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
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
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///
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
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
111
112///
113/// 每页返回结果数。最大每页40
114///
115public Nullable
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///
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
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