轉(zhuǎn)帖|其它|編輯:郝浩|2011-06-22 14:06:23.000|閱讀 646 次
概述:本文和各人具體分享一下如何使用ASP.NET來(lái)調(diào)用淘寶客API開(kāi)發(fā)的實(shí)例講解。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
本文和各人具體分享一下如何使用ASP.NET來(lái)調(diào)用淘寶客API開(kāi)發(fā)的實(shí)例講解。
第一步 獲取全部推廣商品實(shí)體
需要使用類(lèi) ITopClient TOP客戶(hù)端類(lèi)
1using Top.Api.Request;
2
3namespace Top.Api
4 {
5///<summary>
6/// TOP客戶(hù)端。
7///</summary>
8publicinte***ce ITopClient
9 {
10///<summary>
11/// 執(zhí)行TOP公然API請(qǐng)求。
12///</summary>
13///<typeparam name="T">領(lǐng)域?qū)ο?lt;/typeparam>
14///<param name="request">具體的TOP API請(qǐng)求</param>
15///<returns>領(lǐng)域?qū)ο?lt;/returns>
16 T Execute<T>(ITopRequest<T> request) where T : TopResponse;
17
18///<summary>
19/// 執(zhí)行TOP隱私API請(qǐng)求。
20///</summary>
21///<typeparam name="T">領(lǐng)域?qū)ο?lt;/typeparam>
22///<param name="request">具體的TOP API請(qǐng)求</param>
23///<param name="session">用戶(hù)會(huì)話(huà)碼</param>
24///<returns>領(lǐng)域?qū)ο?lt;/returns>
25 T Execute<T>(ITopRequest<T> request, string session) where T : TopResponse;
26 }
27 }
DefaultTopClient 初始化連接(請(qǐng)求地址, 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///<summary>
11/// 基于REST的TOP客戶(hù)端。
12///</summary>
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<T>(ITopRequest<T> request) where T : TopResponse
58 {
59return Execute<T>(request, null);
60 }
61
62public T Execute<T>(ITopRequest<T> request, string session) where T : TopResponse
63 {
64//添加協(xié)議級(jí)請(qǐng)求參數(shù)
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// 添加簽名參數(shù)
75 txtParams.Add(SIGN, TopUtils.SignTopRequest(txtParams, appSecret));
76
77// 是否需要上傳文件
78string body;
79if (request is ITopUploadRequest<T>)
80 {
81 ITopUploadRequest<T> uRequest = (ITopUploadRequest<T>)request;
82 IDictionary<string, FileItem> 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<T> tp =new TopXmlParser<T>();
94 rsp = tp.Parse(body);
95 }
96else
97 {
98 ITopParser<T> tp =new TopJsonParser<T>();
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///<summary>
9/// TaobaokeItemsGetResponse.
10///</summary>
11publicclass TaobaokeItemsGetResponse : TopResponse
12 {
13///<summary>
14/// 淘寶客商品對(duì)象列表。不返回taobaoke_cat_click_url和keyword_click_url兩個(gè)字段。
15///</summary>
16 [XmlArray("taobaoke_items")]
17 [XmlArrayItem("taobaoke_item")]
18public List<TaobaokeItem> TaobaokeItems { get; set; }
19
20///<summary>
21/// 搜索到符合條件的結(jié)果總數(shù)
22///</summary>
23 [XmlElement("total_results")]
24publiclong TotalResults { get; set; }
25 }
26 }
TaobaokeItemsGetRequest 在請(qǐng)求類(lèi)中設(shè)置相應(yīng)條件信息。
1using System;
2using System.Collections.Generic;
3using Top.Api.Response;
4
5namespace Top.Api.Request
6 {
7///<summary>
8/// TOP API: taobao.taobaoke.items.get
9///</summary>
10publicclass TaobaokeItemsGetRequest : ITopRequest<TaobaokeItemsGetResponse>
11 {
12///<summary>
13/// 商品所在地
14///</summary>
15publicstring Area { get; set; }
16
17///<summary>
18/// 是否主動(dòng)發(fā)貨
19///</summary>
20publicstring AutoSend { get; set; }
21
22///<summary>
23/// 是否支持抵價(jià)券,設(shè)置為true表示該商品支持抵價(jià)券,設(shè)置為false或不設(shè)置表示不判定這個(gè)屬性
24///</summary>
25publicstring CashCoupon { get; set; }
26
27///<summary>
28/// 是否支持貨到付款,設(shè)置為true表示該商品是支持貨到付款,設(shè)置為false或不設(shè)置表示不判定這個(gè)屬性
29///</summary>
30publicstring CashOndelivery { get; set; }
31
32///<summary>
33/// 商品所屬分類(lèi)id
34///</summary>
35public Nullable<long> Cid { get; set; }
36
37///<summary>
38/// 最高累計(jì)推廣傭金選項(xiàng)
39///</summary>
40publicstring EndCommissionNum { get; set; }
41
42///<summary>
43/// 最高傭金比率選項(xiàng)//uybdzd.edu.tc,如:2345表示23.45%.注:要起始傭金比率和最高傭金比率一起設(shè)置才有效。
44///</summary>
45publicstring EndCommissionRate { get; set; }
46
47///<summary>
48/// 可選值和start_credit一樣。start_credit的值一定要小于或即是end_credit的值。注:end_credit與start_credit一起使用才生效
49///</summary>
50publicstring EndCredit { get; set; }
51
52///<summary>
53/// 最高價(jià)格
54///</summary>
55publicstring EndPrice { get; set; }
56
57///<summary>
58/// 累計(jì)推廣量規(guī)模竣事
59///</summary>
60publicstring EndTotalnum { get; set; }
61
62///<summary>[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///</summary>
65publicstring Fields { get; set; }
66
67///<summary>
68/// 是否查詢(xún)消保賣(mài)家
69///</summary>
70publicstring Guarantee { get; set; }
71
72///<summary>
73/// 標(biāo)識(shí)一個(gè)應(yīng)用是否來(lái)在無(wú)線(xiàn)或者手機(jī)應(yīng)用,假如是true則會(huì)使用其他法則加密點(diǎn)擊串。假如不穿值,則默認(rèn)是false.
74///</summary>
75public Nullable<bool> IsMobile { get; set; }
76
77///<summary>
78/// 商品標(biāo)題中包含的關(guān)鍵字。 留意:查詢(xún)時(shí)keyword,cid至少選擇其中一個(gè)參數(shù)
79///</summary>
80publicstring Keyword { get; set; }
81
82///<summary>
83/// 是否商城的商品,設(shè)置為true表示該商品是屬于淘寶商城的商品,設(shè)置為false或不設(shè)置表示不判定這個(gè)屬性
84///</summary>
85publicstring MallItem { get; set; }
86
87///<summary>
88/// 淘寶用戶(hù)昵稱(chēng),注:指的是淘寶的會(huì)員登錄名。假如昵稱(chēng)錯(cuò)誤,那么客戶(hù)就收不到傭金。每個(gè)淘寶昵稱(chēng)都對(duì)應(yīng)于一個(gè)pid,在這里輸進(jìn)要結(jié)算傭金的淘寶昵稱(chēng),當(dāng)推廣的商品成功后,傭金會(huì)打進(jìn)此輸進(jìn)的淘寶昵稱(chēng)的賬戶(hù)。具體的信息可以登進(jìn)阿里媽媽的網(wǎng)站查看。 <font color="red">留意nick和pid至少需要傳遞一個(gè),假如2個(gè)都傳了,將以pid為準(zhǔn)</font>
89///</summary>
90publicstring Nick { get; set; }
91
92///<summary>
93/// 是否30天維修,設(shè)置為true表示該商品是支持30天維修,設(shè)置為false或不設(shè)置表示不判定這個(gè)屬性
94///</summary>
95publicstring OnemonthRepair { get; set; }
96
97///<summary>
98/// 自定義輸進(jìn)串。格式:英文和數(shù)字組成;長(zhǎng)度不能大于12個(gè)字符,區(qū)分不同的推廣渠道,如:bbs,表示bbs為推廣渠道;blog,表示blog為推廣渠道。
99///</summary>
100publicstring OuterCode { get; set; }
101
102///<summary>
103/// 是否海外商品,設(shè)置為true表示該商品是屬于海外商品,默以為false
104///</summary>
105publicstring OverseasItem { get; set; }
106
107///<summary>
108/// 結(jié)果頁(yè)數(shù)。1~99
109///</summary>
110public Nullable<long> PageNo { get; set; }
111
112///<summary>
113/// 每頁(yè)返回結(jié)果數(shù)。最大每頁(yè)40
114///</summary>
115public Nullable<long> PageSize { get; set; }
116
117///<summary>
118/// 用戶(hù)的pid,必須是mm_***x_0_0這種格式中間的"***x". <font color="red">留意nick和pid至少需要傳遞一個(gè),假如2個(gè)都傳了,將以pid為準(zhǔn),且pid的最大長(zhǎng)度是20</font>
119///</summary>
120publicstring Pid { get; set; }
121
122///<summary>
123/// 是否如實(shí)描述(即:先行賠付)商品,設(shè)置為true表示該商品是如實(shí)描述的商品,設(shè)置為false或不設(shè)置表示不判定這個(gè)屬性
124///</summary>
125publicstring RealDescribe { get; set; }
126
127///<summary>
128/// 是否支持7天退換,設(shè)置為true表示該商品支持7天退換,設(shè)置為false或不設(shè)置表示不判定這個(gè)屬性
129///</summary>
130publicstring SevendaysReturn { get; set; }
131
132///<summary>[nextpage]
133/// 默認(rèn)排序:default price_desc(價(jià)格從高到低) price_asc(價(jià)格從低到高) credit_desc(信用等級(jí)從高到低) commissionRate_desc(傭金比率從高到底) commissionRate_asc(傭金比率從低到高) commissionNum_desc(成交量成高到低) commissionNum_asc(成交量從低到高) commissionVolume_desc(總支出傭金從高到底) commissionVolume_asc(總支出傭金從低到高) delistTime_desc(商品下架時(shí)間從高到底) delistTime_asc(商品下架時(shí)間從低到高)
134///</summary>
135publicstring Sort { get; set; }
136
137///<summary>
138/// 起始累計(jì)推廣量傭金。注:返回的數(shù)據(jù)是30天內(nèi)累計(jì)推廣量,具該字段要與最高累計(jì)推廣量一起使用才生效
139///</summary>
140publicstring StartCommissionNum { get; set; }
141
142///<summary>
143/// 起始傭金比率選項(xiàng),如:1234表示12.34%
144///</summary>
145publicstring StartCommissionRate { get; set; }
146
147///<summary>
148/// 賣(mài)家信用: 1heart(一心) 2heart (兩心) 3heart(三心) 4heart(四心) 5heart(五心) 1diamond(一鉆) 2diamond(兩鉆) 3diamond(三鉆) 4diamond(四鉆) 5diamond(五鉆) 1crown(一冠) 2crown(兩冠) 3crown(三冠) 4crown(四冠) 5crown(五冠) 1goldencrown(一黃冠) 2goldencrown(二黃冠) 3goldencrown(三黃冠) 4goldencrown(四黃冠) 5goldencrown(五黃冠)
149///</summary>
150publicstring StartCredit { get; set; }
151
152///<summary>
153/// 起始價(jià)格。傳進(jìn)價(jià)格參數(shù)時(shí),需留意起始價(jià)格和最高價(jià)格必須一起傳進(jìn),并且 start_price <= end_price
154 ///</summary>
155publicstring StartPrice { get; set; }
156
157///<summary>
158/// 累計(jì)推廣量規(guī)模開(kāi)始
159///</summary>
160publicstring StartTotalnum { get; set; }
161
162///<summary>
163/// 是否支持VIP卡,設(shè)置為true表示該商品支持VIP卡,設(shè)置為false或不設(shè)置表示不判定這個(gè)屬性
164///</summary>
165publicstring VipCard { get; set; }
166
167#region ITopRequest Members
168
169publicstring GetApiName()
170 {
171return"taobao.taobaoke.items.get";
172 }
173
174public IDictionary<string, string> 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
212 }
213 }
///<summary>
/// taobao.taobaoke.items.get 查詢(xún)淘寶客推廣商品
///</summary>
///<param name="req">請(qǐng)求實(shí)體參數(shù)</param>
///<returns>返回商品實(shí)體數(shù)組</returns>
publicstatic TaobaokeItem[] GetItemArray(TaobaokeItemsGetRequest req)
{
ITopClient client =new DefaultTopClient(Config.ServerURL, Config.Appkey, Config.AppSecret);
req.Pid = Config.Pid;///淘寶客PID 可以到阿里媽媽查詢(xún)
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%
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載