淘宝平台开发 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'+
'×tamp='+ URLEncod
相关文档:
dynamic就是它是动态方法,没有静态地址,所以速度慢一点
virtual是虚方法,如果在基类中不声明成虚方法的话,继承后,该方法会提示一警告信息,把基类中方法屏蔽掉了
---------------------------------------------------------------
动态(Dynamic)和虚拟(Virtual)后都可以使用Override关键字在派生类中对对应 ......
过程无返回值,函数有返回值。
procedure MyProc(m,n : Integer; o : String; p : Single = 2.5; q : String = 'Delphi');
如上例所示,过程声明和定义中,多个参数是用分号隔开的,但在调用时是用逗号隔开的 。eg:
......
用Delphi开发数据库应用,一般会涉及到闪屏(Splash)、登录窗口、主数据模块(或主数据库连接)以及主窗口。通常在项目文件中,splash窗口显示过,一些需要加载的资源、窗口加载过后,Application.Run之前,进行用户登录。
//测试CSDN博客对DELPHI代码的支持
program TEST;
uses
Forms,
Windows,
MainF in 'Ma ......
function ListFiles(Dir: String):TStrings;
var
FSearchRec: TSearchRec;
FileList: TStrings;
FindResult: Integer;
begin
if Dir[length(Dir)]<>'\' then Dir:=Dir+'\';
FileList :=TStringList.Create;
FindResult:=FindFirst(Dir+'*.*,faAnyFile+faDirectory,FSearchRec);
while FindRes ......