本文和各人具体分享一下如何使用ASP
NET来调用淘宝客API开发的实例讲解
第一步 获取全部推广商品实体
需要使用类 ITopClient TOP客户端类
using TopApiRequest;
namespace TopApi
{
///<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 SystemCollections;
using SystemCollectionsGeneric;
using TopApiParser;
using TopApiRequest;
using TopApiUtil;
namespace TopApi
{
///<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)
{
thisappKey = appKey;
thisappSecret = appSecret;
thisserverUrl = serverUrl;
thiswebUtils =new WebUtils()
}
public DefaultTopClient(string serverUrl string appKey string appSecret string format)
: this(serverUrl appKey appSecret)
{
thisformat = format;
}
publicvoid SetTimeout(int timeout)
{
webUtilsTimeout = 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(requestGetParameters())
txtParamsAdd(METHOD requestGetApiName())
txtParamsAdd(VERSION )
txtParamsAdd(APP_KEY appKey)
txtParamsAdd(FORMAT format)
txtParamsAdd(PARTNER_ID topsdknet)
txtParamsAdd(TIMESTAMP DateTimeNow)
txtParamsAdd(SESSION session)
// 添加签名参数
txtParamsAdd(SIGN TopUtilsSignTopRequest(txtParams appSecret))
// 是否需要上传文件
string body;
if (request is ITopUploadRequest<T>)
{
ITopUploadRequest<T> uRequest = (ITopUploadRequest<T>)request;
IDictionary<string FileItem> fileParams = TopUtilsCleanupDictionary(uRequestGetFileParamet ers())
body = webUtilsDoPost(thisserverUrl txtParams fileParams)
}
else
{
body = webUtilsDoPost(thisserverUrl txtParams)
}
T rsp;
if (FORMAT_XMLEquals(format))
{
ITopParser<T> tp =new TopXmlParser<T>()
rsp = tpParse(body)
}
else
{
ITopParser<T> tp =new TopJsonParser<T>()
rsp = tpParse(body)
}
return rsp;
}
#endregion
}
}
TaobaokeItemsGetResponse 信息返回
using System;
using SystemXmlSerialization;
using SystemCollectionsGeneric;
using TopApiDomain;
namespace TopApiResponse
{
///<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 SystemCollectionsGeneric;
using TopApiResponse;
namespace TopApiRequest
{
///<summary>
/// TOP API: emsget
///</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_iidtitlenickpic_urlpriceclick_urlcommis sioncommission_ratecommission_numcommission_vol u meshop_click_urlseller_credit_scoreitem_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>
/// 商品标题中包含的关键字 留意查询时keywordcid至少选择其中一个参数
///</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()
{
returnemsget;
}
public IDictionary<string string> GetParameters()
{
TopDictionary parameters =new TopDictionary()
parametersAdd(area thisArea)
parametersAdd(auto_send thisAutoSend)
parametersAdd(cash_coupon thisCashCoupon)
parametersAdd(cash_ondelivery thisCashOndelivery)
parametersAdd(cid thisCid)
parametersAdd(end_commissionNum thisEndCommissionNum)
parametersAdd(end_commissionRate thisEndCommissionRate)
parametersAdd(end_credit thisEndCredit)
parametersAdd(end_price thisEndPrice)
parametersAdd(end_totalnum thisEndTotalnum)
parametersAdd(fields thisFields)
parametersAdd(guarantee thisGuarantee)
parametersAdd(is_mobile thisIsMobile)
parametersAdd(keyword thisKeyword)
parametersAdd(mall_item thisMallItem)
parametersAdd(nick thisNick)
parametersAdd(onemonth_repair thisOnemonthRepair)
parametersAdd(outer_code thisOuterCode)
parametersAdd(overseas_item thisOverseasItem)
parametersAdd(page_no thisPageNo)
parametersAdd(page_size thisPageSize)
parametersAdd(pid thisPid)
parametersAdd(real_describe thisRealDescribe)
parametersAdd(sevendays_return thisSevendaysReturn)
parametersAdd(sort thisSort)
parametersAdd(start_commissionNum thisStartCommissionNum)
parametersAdd(start_commissionRate thisStartCommissionRate)
parametersAdd(start_credit thisStartCredit)
parametersAdd(start_price thisStartPrice)
parametersAdd(start_totalnum thisStartTotalnum)
parametersAdd(vip_card thisVipCard)
return parameters;
}
#endregion
&nbs
p;
}
}
///<summary>
/// emsget 查询淘宝客推广商品
///</summary>
///<param name=req>请求实体参数</param>
///<returns>返回商品实体数组</returns>
publicstatic TaobaokeItem[] GetItemArray(TaobaokeItemsGetRequest req)
{
ITopClient client =new DefaultTopClient(ConfigServerURL ConfigAppkey ConfigAppSecret)
reqPid = ConfigPid;///淘宝客PID 可以到阿里妈妈查询
TaobaokeItemsGetResponse response = clientExecute(req)
if (responseIsError)
{
string err = responseErrMsg;
string ierr = responseErrCode;
ErrorLogSave(TaobaokeAPI ierr err AllGetErrorCN(intParse(ierr)))
}
return responseTotalResults >? responseTaobaokeItemsToArray() : null;
} %D%