淘寶平臺開發 delphi 示例

淘寶開放平臺的開發例子大多都是c#,php,java等,缺少Pascal的例子。

現用delphi寫了一個示例,

關鍵點是簽名的生成,簽名需按key字母順序排序,並去掉等於號後首尾相連。

關鍵代碼:

 

 memstr:= TMemoryStream.Create;

 //用授權碼獲取 session
  IdHTTP1.Get('http://container.api.tbsandbox.com/container?authcode='+memo1.Text,memstr);
  setlength(ss,memstr.Size);
  memstr.Position:= 0;
  memstr.Read(ss[1],memstr.Size);
   ss:= Utf8ToAnsi(ss);

  //切分session top_session=282730527fc47c5e27838f5dd8aeb098afefd&top_sign=LiTSTYs/DQHpRAGA4OPEZA==
  ss:= copy(ss,pos('top_session=',ss)+12,255);
  ss:= copy(ss,1,pos('&',ss)-1);
  memo1.Lines.Add(ss);
  //製作簽名,下列代碼有冗餘的單引號,主要是爲了顯示邏輯關係。
  ss2:=secrect_key+'app_key'+app_Key +
       'fields'+'tid,seller_nick,buyer_nick,status,orders.title,orders.price,orders.num'+
        'format'+ 'xml'+
       'method'+'taobao.trades.sold.get'+
        'session'+ss+
        'sign_method'+'md5'+
        'timestamp'+datetimetostr(now)+
       'v'+ '2.0'+ secrect_key;
    
  ss2:= UpperCase(StrMD5(ss2));    //生成簽名md5

 

   //合成參數

      ss3:= 'app_key='+app_Key +
       '&fields='+'tid,seller_nick,buyer_nick,status,orders.title,orders.price,orders.num'+
        '&format='+ 'xml'+
       '&method='+'taobao.trades.sold.get'+
        '&session='+ss+
        '&sign_method='+'md5'+
        '&timestamp='+ URLEncode(datetimetostr(now),true)+
       '&v='+ '2.0'+
        '&sign='+ ss2;

 

   //取得數據
    memstr.Clear;
    IdHTTP1.Get('http://gw.api.tbsandbox.com/router/rest?'+ss3,memstr);
    setlength(ss,memstr.Size);
  memstr.Position:= 0;
  memstr.Read(ss[1],memstr.Size);
   ss:= Utf8ToAnsi(ss);
   memo1.Lines.Add(ss);
 memstr.Free;

 

完整例子下載:

http://e.ys168.com/?ufo2003

 

本例子在沙盒環境下測試通過。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章