熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET挪用淘寶API實例詳解

2022-06-13   來源: .NET編程 
    本文和各人具體分享一下如何使用ASPNET來調用淘寶客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%


From:http://tw.wingwit.com/Article/program/net/201311/12828.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.