本文和各人具體分享一下如何使用ASP
NET來調用淘寶客API開發的實例講解
第一步 獲取全部推廣商品實體
需要使用類 ITopClient TOP客戶端類
using Top
Api
Request;
namespace Top
Api
{
///<summary>
/// TOP客戶端
///</summary>
publicinte***ce ITopClient
{
///<summary>
/// 執行TOP公然API請求
///</summary>
///<typeparam name=
T
>領域對象</typeparam>
///<param name=
request
>具體的TOP API請求</param>
///<returns>領域對象</returns>
T Execute<T>(ITopRequest<T> request) where T : TopResponse;
///<summary>
/// 執行TOP隱私API請求
///</summary>
///<typeparam name=
T
>領域對象</typeparam>
///<param name=
request
>具體的TOP API請求</param>
///<param name=
session
>用戶會話碼</param>
///<returns>領域對象</returns>
T Execute<T>(ITopRequest<T> request
string session) where T : TopResponse;
}
}
DefaultTopClient 初始化連接(請求地址
Appkey
AppSecret)
using System;
using System
Collections;
using System
Collections
Generic;
using Top
Api
Parser;
using Top
Api
Request;
using Top
Api
Util;
namespace Top
Api
{
///<summary>
/// 基於REST的TOP客戶端
///</summary>
publicclass DefaultTopClient : ITopClient
{
publicconststring APP_KEY =
app_key
;
publicconststring FORMAT =
format
;
publicconststring METHOD =
method
;
publicconststring TIMESTAMP =
timestamp
;
publicconststring VERSION =
v
;
publicconststring SIGN =
sign
;
publicconststring PARTNER_ID =
partner_id
;
publicconststring SESSION =
session
;
publicconststring FORMAT_XML =
xml
;
privatestring serverUrl;
privatestring appKey;
privatestring appSecret;
privatestring format = FORMAT_XML;
private WebUtils webUtils;
#region DefaultTopClient Constructors
public DefaultTopClient(string serverUrl
string appKey
string appSecret)
{
this
appKey = appKey;
this
appSecret = appSecret;
this
serverUrl = serverUrl;
this
webUtils =new WebUtils()
}
public DefaultTopClient(string serverUrl
string appKey
string appSecret
string format)
: this(serverUrl
appKey
appSecret)
{
this
format = format;
}
publicvoid SetTimeout(int timeout)
{
webUtils
Timeout = timeout;
}
#endregion
#region ITopClient Members
public T Execute<T>(ITopRequest<T> request) where T : TopResponse
{
return Execute<T>(request
null)
}
public T Execute<T>(ITopRequest<T> request
string session) where T : TopResponse
{
//添加協議級請求參數
TopDictionary txtParams =new TopDictionary(request
GetParameters())
txtParams
Add(METHOD
request
GetApiName())
txtParams
Add(VERSION
)
txtParams
Add(APP_KEY
appKey)
txtParams
Add(FORMAT
format)
txtParams
Add(PARTNER_ID
top
sdk
net
)
txtParams
Add(TIMESTAMP
DateTime
Now)
txtParams
Add(SESSION
session)
// 添加簽名參數
txtParams
Add(SIGN
TopUtils
SignTopRequest(txtParams
appSecret))
// 是否需要上傳文件
string body;
if (request is ITopUploadRequest<T>)
{
ITopUploadRequest<T> uRequest = (ITopUploadRequest<T>)request;
IDictionary<string
FileItem> fileParams = TopUtils
CleanupDictionary(uRequest
GetFileParamet ers())
body = webUtils
DoPost(this
serverUrl
txtParams
fileParams)
}
else
{
body = webUtils
DoPost(this
serverUrl
txtParams)
}
T rsp;
if (FORMAT_XML
Equals(format))
{
ITopParser<T> tp =new TopXmlParser<T>()
rsp = tp
Parse(body)
}
else
{
ITopParser<T> tp =new TopJsonParser<T>()
rsp = tp
Parse(body)
}
return rsp;
}
#endregion
}
}
TaobaokeItemsGetResponse 信息返回
using System;
using System
Xml
Serialization;
using System
Collections
Generic;
using Top
Api
Domain;
namespace Top
Api
Response
{
///<summary>
/// TaobaokeItemsGetResponse
///</summary>
publicclass TaobaokeItemsGetResponse : TopResponse
{
///<summary>
/// 淘寶客商品對象列表
不返回taobaoke_cat_click_url和keyword_click_url兩個字段
///</summary>
[XmlArray(
taobaoke_items
)]
[XmlArrayItem(
taobaoke_item
)]
public List<TaobaokeItem> TaobaokeItems { get; set; }
///<summary>
/// 搜索到符合條件的結果總數
///</summary>
[XmlElement(
total_results
)]
publiclong TotalResults { get; set; }
}
}
TaobaokeItemsGetRequest 在請求類中設置相應條件信息
using System;
using System
Collections
Generic;
using Top
Api
Response;
namespace Top
Api
Request
{
///<summary>
/// TOP API: ems
get
///</summary>
publicclass TaobaokeItemsGetRequest : ITopRequest<TaobaokeItemsGetResponse>
{
///<summary>
/// 商品所在地
///</summary>
publicstring Area { get; set; }
///<summary>
/// 是否主動發貨
///</summary>
publicstring AutoSend { get; set; }
///<summary>
/// 是否支持抵價券
設置為true表示該商品支持抵價券
設置為false或不設置表示不判定這個屬性
///</summary>
publicstring CashCoupon { get; set; }
///<summary>
/// 是否支持貨到付款
設置為true表示該商品是支持貨到付款
設置為false或不設置表示不判定這個屬性
///</summary>
publicstring CashOndelivery { get; set; }
///<summary>
/// 商品所屬分類id
///</summary>
public Nullable<long> Cid { get; set; }
///<summary>
/// 最高累計推廣傭金選項
///</summary>
publicstring EndCommissionNum { get; set; }
///<summary>
/// 最高傭金比率選項
如
表示
%
注
要起始傭金比率和最高傭金比率一起設置才有效
///</summary>
publicstring EndCommissionRate { get; set; }
///<summary>
/// 可選值和start_credit一樣
start_credit的值一定要小於或即是end_credit的值
注
end_credit與start_credit一起使用才生效
///</summary>
publicstring EndCredit { get; set; }
///<summary>
/// 最高價格
///</summary>
publicstring EndPrice { get; set; }
///<summary>
/// 累計推廣量規模竣事
///</summary>
publicstring EndTotalnum { get; set; }
///<summary>[nextpage]
/// 需返回的字段列表
可選值
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 ;字段之間用
分隔
///</summary>
publicstring Fields { get; set; }
///<summary>
/// 是否查詢消保賣家
///</summary>
publicstring Guarantee { get; set; }
///<summary>
/// 標識一個應用是否來在無線或者手機應用
假如是true則會使用其他法則加密點擊串
假如不穿值
則默認是false
///</summary>
public Nullable<bool> IsMobile { get; set; }
///<summary>
/// 商品標題中包含的關鍵字
留意
查詢時keyword
cid至少選擇其中一個參數
///</summary>
publicstring Keyword { get; set; }
///<summary>
/// 是否商城的商品
設置為true表示該商品是屬於淘寶商城的商品
設置為false或不設置表示不判定這個屬性
///</summary>
publicstring MallItem { get; set; }
///<summary>
/// 淘寶用戶昵稱
注
指的是淘寶的會員登錄名
假如昵稱錯誤
那麼客戶就收不到傭金
每個淘寶昵稱都對應於一個pid
在這裡輸進要結算傭金的淘寶昵稱
當推廣的商品成功後
傭金會打進此輸進的淘寶昵稱的賬戶
具體的信息可以登進阿裡媽媽的網站查看
<font color=
red
>留意nick和pid至少需要傳遞一個
假如
個都傳了
將以pid為准</font>
///</summary>
publicstring Nick { get; set; }
///<summary>
/// 是否
天維修
設置為true表示該商品是支持
天維修
設置為false或不設置表示不判定這個屬性
///</summary>
publicstring OnemonthRepair { get; set; }
///<summary>
/// 自定義輸進串
格式
英文和數字組成
長度不能大於
個字符
區分不同的推廣渠道
如
bbs
表示bbs為推廣渠道
blog
表示blog為推廣渠道
///</summary>
publicstring OuterCode { get; set; }
///<summary>
/// 是否海外商品
設置為true表示該商品是屬於海外商品
默以為false
///</summary>
publicstring OverseasItem { get; set; }
///<summary>
/// 結果頁數
~
///</summary>
public Nullable<long> PageNo { get; set; }
///<summary>
/// 每頁返回結果數
最大每頁
///</summary>
public Nullable<long> PageSize { get; set; }
///<summary>
/// 用戶的pid
必須是mm_***x_
_
這種格式中間的
***x
<font color=
red
>留意nick和pid至少需要傳遞一個
假如
個都傳了
將以pid為准
且pid的最大長度是
</font>
///</summary>
publicstring Pid { get; set; }
///<summary>
/// 是否如實描述(即
先行賠付)商品
設置為true表示該商品是如實描述的商品
設置為false或不設置表示不判定這個屬性
///</summary>
publicstring RealDescribe { get; set; }
///<summary>
/// 是否支持
天退換
設置為true表示該商品支持
天退換
設置為false或不設置表示不判定這個屬性
///</summary>
publicstring SevendaysReturn { get; set; }
///<summary>[nextpage]
/// 默認排序
default price_desc(價格從高到低) price_asc(價格從低到高) credit_desc(信用等級從高到低) commissionRate_desc(傭金比率從高到底) commissionRate_asc(傭金比率從低到高) commissionNum_desc(成交量成高到低) commissionNum_asc(成交量從低到高) commissionVolume_desc(總支出傭金從高到底) commissionVolume_asc(總支出傭金從低到高) delistTime_desc(商品下架時間從高到底) delistTime_asc(商品下架時間從低到高)
///</summary>
publicstring Sort { get; set; }
///<summary>
/// 起始累計推廣量傭金
注
返回的數據是
天內累計推廣量
具該字段要與最高累計推廣量一起使用才生效
///</summary>
publicstring StartCommissionNum { get; set; }
///<summary>
/// 起始傭金比率選項
如
表示
%
///</summary>
publicstring StartCommissionRate { get; set; }
///<summary>
/// 賣家信用
heart(一心)
heart (兩心)
heart(三心)
heart(四心)
heart(五心)
diamond(一鑽)
diamond(兩鑽)
diamond(三鑽)
diamond(四鑽)
diamond(五鑽)
crown(一冠)
crown(兩冠)
crown(三冠)
crown(四冠)
crown(五冠)
goldencrown(一黃冠)
goldencrown(二黃冠)
goldencrown(三黃冠)
goldencrown(四黃冠)
goldencrown(五黃冠)
///</summary>
publicstring StartCredit { get; set; }
///<summary>
/// 起始價格
傳進價格參數時
需留意起始價格和最高價格必須一起傳進
並且 start_price <= end_price
///</summary>
publicstring StartPrice { get; set; }
///<summary>
/// 累計推廣量規模開始
///</summary>
publicstring StartTotalnum { get; set; }
///<summary>
/// 是否支持VIP卡
設置為true表示該商品支持VIP卡
設置為false或不設置表示不判定這個屬性
///</summary>
publicstring VipCard { get; set; }
#region ITopRequest Members
publicstring GetApiName()
{
return
ems
get
;
}
public IDictionary<string
string> GetParameters()
{
TopDictionary parameters =new TopDictionary()
parameters
Add(
area
this
Area)
parameters
Add(
auto_send
this
AutoSend)
parameters
Add(
cash_coupon
this
CashCoupon)
parameters
Add(
cash_ondelivery
this
CashOndelivery)
parameters
Add(
cid
this
Cid)
parameters
Add(
end_commissionNum
this
EndCommissionNum)
parameters
Add(
end_commissionRate
this
EndCommissionRate)
parameters
Add(
end_credit
this
EndCredit)
parameters
Add(
end_price
this
EndPrice)
parameters
Add(
end_totalnum
this
EndTotalnum)
parameters
Add(
fields
this
Fields)
parameters
Add(
guarantee
this
Guarantee)
parameters
Add(
is_mobile
this
IsMobile)
parameters
Add(
keyword
this
Keyword)
parameters
Add(
mall_item
this
MallItem)
parameters
Add(
nick
this
Nick)
parameters
Add(
onemonth_repair
this
OnemonthRepair)
parameters
Add(
outer_code
this
OuterCode)
parameters
Add(
overseas_item
this
OverseasItem)
parameters
Add(
page_no
this
PageNo)
parameters
Add(
page_size
this
PageSize)
parameters
Add(
pid
this
Pid)
parameters
Add(
real_describe
this
RealDescribe)
parameters
Add(
sevendays_return
this
SevendaysReturn)
parameters
Add(
sort
this
Sort)
parameters
Add(
start_commissionNum
this
StartCommissionNum)
parameters
Add(
start_commissionRate
this
StartCommissionRate)
parameters
Add(
start_credit
this
StartCredit)
parameters
Add(
start_price
this
StartPrice)
parameters
Add(
start_totalnum
this
StartTotalnum)
parameters
Add(
vip_card
this
VipCard)
return parameters;
}
#endregion
}
}
///<summary>
/// ems
get 查詢淘寶客推廣商品
///</summary>
///<param name=
req
>請求實體參數</param>
///<returns>返回商品實體數組</returns>
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 >
? response
TaobaokeItems
ToArray() : null;
} %D%
From:http://tw.wingwit.com/Article/program/net/201311/12828.html