Delphiµ÷ÓÃMagento's Webservice
×î½üÐèÒª½«Magento(¹úÍâ±È½Ï³öÃûµÄ¿ªÔ´PHP+MySQLµç×ÓÉÌÎñÍøÕ¾)ÓëÒ»¸öERP½øÐÐÕûºÏ£¬¾ÍÐèÒªµ÷ÓÃMagentoµÄWebservice¡£
MagentoÌṩ2Ì×api¡£
×¢£ºÈç¹ûÐèҪͬ¹¹µ÷ÓÃÐèҪʹÓõÚ1¸öwsdl£¬ÈçÒì¹¹³ÌÐòµ÷ÓÃÐèʹÓõÚ2¸öwsdl¡£
1.http://xxx.xxxxxxx.xxx/magento/api/soap/?wsdl
2.http://xxx.xxxxxxx.xxx/magento/api/v2_soap/?wsdl
µ÷Óò½Öè
Ò»¡¢ÔÚMagentoÖд´½¨µ÷ÓÃWebserviceµÄÓû§ÃûÓëÃÜÂë(½øÈëMagentoºǫ́¹ÜÀí->System->Web Services->Users)£¬ÔÚ´´½¨Óû§Ç°ÏÈÉè¼ÆÒ»¸ö½ÇÉ«(½øÈëMagentoºǫ́¹ÜÀí->System->Web Services->Roles)£¬ÓÃÀ´¶Ôµ÷ÓÃWebserviceµÄȨÏÞ½øÐÐÏÞÖÆ
¶þ¡¢ÔÚDelphi¶ËÓÃWSDL Import¹¤¾ß½øÐе¼È룬µ¼Èëºó»á×Ô¶¯Éú³ÉÏà¹Ø¶ÔÏóµÄÀàÐÅÏ¢
Èý¡¢Ê¹ÓÃMagentoµÄ½Ó¿Ú£¬µ÷ÓÃlogin¡¢salesOrderInfoµÈº¯Êý
Àý1£ºËÑË÷Ïà¹Ø×´Ì¬µÄ¶©µ¥
procedure TFrmSiteManagement.getOrderList;
var
P:Mage_Api_Model_Server_V2_HandlerPortType;
sessionID:WideString;
filterOn:filters;
aE:associativeEntity ;
aA:associativeArray;
orderList:salesOrderEntityArray;
order:salesOrderEntity;
i:Integer;
begin
P:= HTTPRIO1 as Mage_Api_Model_Server_V2_HandlerPortType;
//filter
filterOn:=filters.Create;
SetLength(aA,1);
aE:=associativeEntity.Create;
aE.key:='status';
aE.value:='Pending';
aA[0]:=aE;
filterOn.filter:=aA;
try
try
sessionID:= P.login('apiuser','apiuser');
orderList:=P.salesOrderList(sessionID,filterOn);
for i:=low(orderList) to high(orderList) do
begin
sessionID:= P.login('apiuser','apiuser');
order:=P.salesOrderInfo(sessionID,orderList[i].increment_id);
addContent(i,order) ;
end;
except
on E:Exception do
begin
ShowMessage(E.Message);
end;
end;
finally
P:=nil;
aE.Free;
SetLength(aA,0);
end;
end;
Àý2£ºLoad¶©µ¥Ã÷ϸ
var
P:Mage_Api_Model_Server_V2_HandlerPortType;
sessionID:WideString;
order: salesOrderEntity;
begin
P:= HTTPRIO1 as Mage_Api_Model_Server_V2_HandlerPortType;
try
try
sessionID:= P.login('apiuser
Ïà¹ØÎĵµ£º
ö¾ÙÀàÐÍ
¡¡¡¡Pascal³ÌÐò²»½öÓÃÓÚÊýÖµ´¦Àí£¬»¹¸ü¹ã·ºµØÓÃÓÚ´¦Àí·ÇÊýÖµµÄÊý¾Ý¡£ÀýÈ磬ÐÔ±ð¡¢Ô·ݡ¢ÐÇÆÚ¼¸¡¢ÑÕÉ«¡¢µ¥Î»Ãû¡¢Ñ§Àú¡¢Ö°ÒµµÈ¡£
1¡¢Ã¶¾ÙÀàÐ͵͍Òå
¸ñʽ:¡¡type ö¾ÙÀàÐͱêʶ·û=(±êʶ·û1,±êʶ·û2,…,±êʶ·ûn)
2¡¢Ã¶¾ÙÀàÐÍÊý¾ÝÌØµã
¢Ù ö¾ÙÔªËØÖ»ÄÜÊDZêʶ·û£»
ÀýÈ磬ÏÂÁÐÀàÐͶ¨ÒåÊǺϷ¨µÄ£º
¡¡¡¡ type ......
Delphi×Ö·û´®¼ÓÃܽâÃܺ¯Êý
¹¦ÄÜ£º×Ö·û´®¼ÓÃܺͽâÃÜ
Ê×Ïȶ¨ÒåÒ»¸ö³£Á¿Êý×é
const
XorKey:array[0..7] of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47); //×Ö·û´®¼ÓÃÜÓÃ
ÔÚ³ÌÐòÀï¼ÓÈëÒÔÏÂÁ½¸öº¯Êý£¬
function Enc(Str:String):String;//×Ö·û¼ÓÃܺ¯數 這ÊÇÓõÄÒ»個 ......
²éÕÒÁíÍâÒ»¸ö´°¿ÚµÄ¾ä±ú£º handle := FindWindow(nil,PChar('´°¿ÚµÄ±êÌâ'));//²éµ½´°Ìå¾ä±ú
²éÕÒ×Ó´°Ì壺childHandle := FindWindowEx(handle,0,'×Ó´°ÌåÀà','×Ó´°Ìå±êÌâ');
ÁíÍâÓиöö¾Ù×Ó´°ÌåµÄAPI£¬EnumChildWindows(Ö÷´´Ìå¾ä±ú,@»Øµ÷º¯Êý,Óû§²ÎÊý);
ÓÃÕâ¸öº¯ÊýÐèÒª×Ô¼ºÐ´Ò»¸ö»Øµ÷µÄº¯Êý£¬±ÈÈ磺
function EnumChil ......
1. ×Ö·û´®Á¬½ÓÖ±½ÓÓÃ+£¬ÓëJavaºÍPythonÖеÄÏàͬ
2. Ö´ÐÐÍⲿÃüÁîʹÓÃwinexec£¬ShellExecute
eg. ShellExecute(0, 'open', 'jre/bin/java', '-lang zh-CN', 'E:\myfolder', SW_SHOW);
3. ÅжÏÎļþ¡¢Îļþ¼ÐÊÇ·ñ´æÔÚ
FileExists('C:\Users\bill\somefile.txt')
......
¼¼Êõ½»Á÷,DH½²½â. ½ñÌìÀ´ÊµÏÖÒ»¸ö¼òµ¥µÄÎå×ÓÆå,Ö±½ÓÓÃGDIÀ´»µÄÒ»¸öÓÎÏ·.
Ê×ÏÈÎÒÃÇÀ´ÏëÏÂÔõô´æ·ÅÊý¾Ý,ÄÄЩµØ·½ÊÇ°×Æå,ÄÄЩµØ·½ÊÇºÚÆå,ÄÄЩµØ·½Ã»ÓÐÏÂÆå?
¶Ô,ÎÒÃÇÓÃÒ»¸ö¶þάÊý×é,Èç¹ûÊý×éÖÐijһ¸öλÖõÄֵΪ0´ú±íûÓÐÏÂÆå,Ϊ1´ú±íÊÇ°×Æå,Ϊ2´ú±íÊÇºÚÆå.
ºÃ¾ÍÕâô˵¶¨ÁË,ΪÁËʹÓ÷½±ã,ÎÒÃÇ´òËã×ö³ÉÒ»¸ö¿Ø¼ ......