103

13010 ワード

この間、上司の指示に従って、宝を洗うことによって.
APIは自分のアプリケーションに合うシステムを開発しました.例えば、大量アップロード、大量修正の名称、価格などの機能はここで私の開発過程を書いて、自分の前の時間の仕事のためにまとめます.
 
タオバオ開発プラットフォーム(http://www.taobao.com/theme/tao_source/鏖prev)は、第三者の開発者にAPIインターフェースと関連開発環境のプラットフォームを提供し、開発者が自分のシステムをタオバオショップとアリに適用できるようにするとともに、SAASモードを利用して開発者が開発したシステムもこのプラットフォームで販売することができます.
開発の準備をするためには、同盟サイトを開発してアカウントを登録しなければなりません(http://isv.alisoft.com/isv/portal/home/home.jspa).
以下は簡単に宝を洗う開発のAPIインターフェースと機能の説明を列挙します.
 
 
 
APIリスト
 
 
 
 
 
アリアプリAPI
ユーザークラス
  alisoff.validateUser
他のインターフェースを呼び出す前に、このインターフェースを呼び出す必要があります.このインターフェースは、ユーザーのアイデンティティを検証するために使用されます.一般的には、AlisoffソフトウェアのインターフェースからISVアプリケーションのアイデンティティ検証プロセスにジャンプするときに使用されます.
  alisoff.validateAppUser
このインターフェース方法は、あるユーザがある購読例を検証する有効なユーザを実現する.
  alisoff.udb.getsUserId
アリババ中国語ステーション(またはタオバオ)のアカウントによって、ユーザーのソフトウェア接続プラットフォームのユーザーIDを取得します.
  alisoff.udb.get Domain Logigind
ソフトウェア接続プラットフォームのユーザーIDにより、ユーザーのアリババ中国語ステーション(またはタオバオ)アカウントを取得する.
 
注文類
  alisoff.get SubscCtrl
このインターフェース方法は、Isvクエリ購読記録の機能を実現します.
  alisoff.get UsingUser
このインターフェース方法は、あるユーザが注文したアプリケーションを取得するユーザ使用リストを実現します.
 
科目コード
  科目別データ構造
オンライン財務システムの科目データ構造を提供します.
  alisoff.fi.account.get Detail Accuounts
このインターフェース方法は、現在の会社のすべての最終科目リストを取得することを実現します.
  alisoff.fi.account.getAcceountByCode
このインターフェース方法は、科目コードに基づいて科目オブジェクトを取得することができます.
 
証明書類
  証憑類データ構造
オンライン財務システムの証憑データ構造を提供します.
  alisoff.fi.voucher.gen Voucher
このインターフェース方法は会計証憑の生成を実現する.
 
淘宝API
 
淘宝API共通テストアカウントを参照してください。
 
ユーザークラス
  ユーザクラスデータ構造
宝を洗う上にユーザーの個人の資料のデータの構造を登録することを提供します.
  taobao.users.get
このインターフェース方法は大量にユーザに資料を公開することを実現します.
  taobao.user.get
このインターフェースの方法は単一のユーザー情報を得ることを実現します.
 
クラス属性クラス
  クラスデータ構造
提供するデータ構造はタオバオ検索ページの類目属性展示と商品発表類目属性の選択を実現することができます.
  taobao.itemcats.list.get
このインターフェース方法は、フロントに展示されているバイヤーが閲覧できる商品類を実現します.
  taobao.itemcats.get
このインターフェース方法はバックグラウンドで販売者が商品を発表するための標準商品類を得ることを実現します.
  taobao.shopcats.list.get
このインターフェース方法は、フロントに展示されている店舗の種類を実現します.
  taobao.sellerrcus.list.get
このインターフェース方法は、フロントに展示されている店舗内の販売者によるカスタム商品類を実現します.
  taobao.itemprops.get
このインターフェース方法は、バックグラウンドで販売者が商品を発表するための商品の標準属性と属性値のリストを得ることを可能にする.
  taobao.itemprop.get
このインターフェース方法はバックグラウンドで販売者が商品を発表するための単一の商品属性を得ることを実現する.
  taobao.itemboot.list.get
このインターフェースの方法は、フロントに展示されているバイヤーが閲覧するための商品クラスの第1階のプロパティリストを実現するために使用されます.
  taobao.itemprop.list.get
このインターフェース方法は、フロントに展示されているバイヤーが閲覧できる商品の属性を実現します.
  taobao.spu.get
このインターフェース法はspuを得るために実現される.
 
商品の種類
  商品類データ構造
商品検索データ構造を提供します.
  taobao.items.get
このインターフェースの方法は商品情報の検索を実現します.
  taobao.items.onsale.get
このインターフェース方法は、現在のセッションユーザ(売り手でなければならない)を得るための販売中の商品リストを実現する.
  taobao.items.instock.get
このインターフェース方法は、現在のセッションユーザ(売り手でなければならない)の在庫商品を検索することを実現する.
  taobao.item.get
このインターフェース方法は単一商品情報の検索を実現します.
  taobao.item.add
このインターフェースの方法は商品を追加することを実現します.
  taobao.item.udate
このインターフェースの方法は商品の更新を実現します.
 
取引の種類
取引類データ構造
取引クエリデータ構造を提供します.
  taobao.trads.bougt.get
このインターフェース方法は、現在のセッションユーザを検索してバイヤーとして達成した取引記録を実現する.
  taobao.trads.sold.get
このインターフェース方法は、現在のセッションユーザ(売り手として)が販売している取引データを検索することを可能にする.
  taobao.trads.get
このインターフェース方法は、取引情報を検索するためのものです.
 
 
 
 
 
 APIインターフェースというのは、url+関連パラメータのpostから指定された住所に従って、タオバオを洗って該当結果XMLに戻ります.
次はアリソフトウェアAPI alisoff.validateUserに対して口を押してテストしました.
すべてのコードは全部文書の中でコピーして、APPIDとCERT CODEを自分のものに変えて、正しい結果を返します.主要コードは私もcopyします.時間の書式に注意します.yyy-M-dd hh:mm:ss 
 
 
Code
 1HttpRequest request = HttpContext.Current.Request;
 2        //          ISV    URL     ,user_id、app_instance_id token
 3        string ASSPUserId = request.Params["user_id"];
 4        string ASSPInstanceId = request.Params["app_instance_id"];
 5        string appId = request.Params["app_id"]; //       
 6        string token = request.Params["token"]; //          token,   10    
 7        string code = "6edec0e0f98d11dda9cea2a8074f2e0a";//       
 8        System.DateTime timestamp = System.DateTime.Now.ToString(“yyyy-MM-dd hh:mm:ss”);//          
 9        if (ASSPInstanceId!=null)
10        { //sip_sign       , CERT CODE              ,           md5 
11//    16       32    
12            string sipsign = code + "appId" + appId + "appInstanceId" + ASSPInstanceId 
13+ "sip_apinamealisoft.validateUser" + "sip_appkey" + appId + "sip_timestamp" + timestamp 
14+ "token" + token + "userId" + ASSPUserId;
15            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
16            sipsign = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(sipsign))).Replace("-", "");
17            //sip_sign  END
18
19            //       ,  sip_appkey、sip_apiname、sip_timestamp sip_sign,sip_apiname  
20//     validateUser  ,          
21            string SIPdate ="sip_appkey=" + appId + "&sip_apiname=alisoft.validateUser&sip_timestamp=" + timestamp + "&sip_sign=" + sipsign+
22"&userId=" + ASSPUserId + "&appId=" + appId + "&appInstanceId=" + ASSPInstanceId + "&token=" +
23 token;
24            ASCIIEncoding encoding = new ASCIIEncoding();
25            byte[] postdata = encoding.GetBytes(SIPdate);//        
26            //             (SIP)        :http://sipdev.alisoft.com/sip/rest, 
27//      :http://sip.alisoft.com/sip/rest,
28            //         ,           
29            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://sipdev.alisoft.com/sip/rest");
30            myRequest.Method = "POST";
31            myRequest.ContentType = "application/x-www-form-urlencoded";
32            myRequest.ContentLength = postdata.Length;
33            Stream newStream = myRequest.GetRequestStream();
34            //     
35            newStream.Write(postdata, 0, postdata.Length);
36            newStream.Close();
37            //        
38            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
39            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
40            string content = reader.ReadToEnd();
41            //       ,    XML     ,       XML  
42            XmlDocument xmlDoc = new XmlDocument();
43            xmlDoc.LoadXml(content);
44            XmlNode xn = xmlDoc.SelectSingleNode("String");
45           // windowalert(content);
46            if (xn == null)
47            {
48                //      。。。。
49            }
50            else
51            {
52                XmlElement xe = (XmlElement)xn;
53                string result = xe.InnerText;
54                if ("1".Equals(result))
55                {
56                    Response.Write("1");
57                }
58                else if ("0".Equals(result))
59                {
60                    Response.Write("0");
61                }
62            }
63        }
64