Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Aras web service
#1
Merhaba Arkadaşlar yardımcı olan herkese şimdiden çok teşekkür ederim
http://customerservicestest.araskargo.c ... rvice.asmx
adresindeki SetAddress metoduna veri göndermek istiyorum kullanıcı adı neodyum kullanıcı şifresi nd2580

yazdığım kod 
KOD: TÜMÜNÜ SEÇ
function TForm1.setadress():String;       //setadress
var
Servis : ServiceSoap;
sa:AddressDto;     //sa set adress
AdresList:ArrayOfAddressDto;
AResult :ArrayOfAddressResultDto;
TResult: AddressResultDto;
begin
 sa:=AddressDto.Create;
 sa.ReceiverName:='Özkan EROL';      //alıcı adı zorunlu
 sa.ReceiverAddress:='Cumhuriyet Mah. Erata Cad. No:105 D:173';    //alıcı adresi zorunlu
 sa.ReceiverPhone1:='5555555';     //telefon zorunlu
 sa.ReceiverCityName:='İSTANBUL';    //İl-Şehir Adı zorunlu
 sa.ReceiverTownName:='AVCILAR';     //ilçe adı zorunlu

 SetLength(AdresList,1);
 AdresList[0]:=sa;

 Servis:= GetServiceSoap(False,'',nil);
 AResult := Servis.SetAddress(AdresList, 'neodyum', 'nd2580');

Result := '';
if Length(AResult) > 0 then Result := AResult[0].ResultMessage;
end;

aldığım hata kodu ektedir c# ile bu setadres çalıştı fakat ben bir türlü gönderemedim.




ARAS KARGO SEVKİYAT ENTEGRASYONU
WEB SERVİS DÖKÜMANI

Tanım Bilgisi

Aras Kargo kurumsal müşterilerinin gönderilerine ait alıcı ve alıcı adres bilgilerini Aras Kargo’ya online olarak iletmesi adına hazırlanmış bir web servis metodudur.
Aras Kargo sistemi ve şube personeli gelen kayıtlara ait adreslerin Varış Merkezilerini belirler. 

Servis Linkleri:

Test Link:
http://customerservicestest.araskargo.c ... rvice.asmx
Kullanılacak Metod İsmi : SetAddress
Servis Parametreleri

Servise ait giriş parametreleri aşağıdaki tabloda belirtilmiştir.

Kargonun alıcısına ait bilgilerinin gönderildiği metottur.
Kargoya ait Varış Merkezi Belireme İşleminin yapılması için gereken bilgilerin gönderilmesi adına kullanılmaktadır.


İSİM TİPİ AÇIKLAMA ZORUNLU
UserName String Web Servis Kullanıcı Adınız Evet
Password String Web Servis Kullanıcı Şifreniz Evet
AddressId String(32) Gönderi Sevk Adres Kodu Hayır
ReceiverName String(200) Alıcı Adı Evet
ReceiverAddress String(250) Alıcı Adresi (String şeklinde toplu adres bilgisi) Evet
ReceiverPhone1 String(10) Telefon-1 Evet
ReceiverPhone2 String(10) Telefon-2 Hayır
ReceiverPhone3 String(10) Telefon-3 Hayır
ReceiverCityName String(40) İl-Şehir Adı Evet
ReceiverTownName String(10) İlçe Adı Evet
CityCode String(32) İl Kodu Hayır
TownCode String(32) İlçe Kodu Hayır
ReceiverDistrictName String(64) Semt Hayır
ReceiverQuarterName String(64) Mahalle Hayır
ReceiverAvenueName String(64) Cadde Hayır
ReceiverStreetName String(64) Sokak Hayır


Servis Sonuç Kodları ;

0 Başarılı
935 ReceiverPhone1 alanı boş olmaz
936 Güncelleme hatası
938 Alıcı Adresini Girmeniz Gerekmektedir
939 Alıcı Adını Girmeniz Gerekmektedir
940 Şehir Adını Girmeniz Gerekmektedir
941 İlçe Adını Girmeniz Gerekmektedir
1000 Kullanıcı Adı ve Şifreniz Yanlıştır
1001 Entegrasyon bilgileriniz güncellenirken bir hata oluşmuştur. Müşteri Temsilcinizle görüşünüz
1002 Aras Şube Bilginiz Tanımlı Değildir. Müşteri Temsilcinizle görüşünüz
70018 ReceiverAddress alanı en fazla 250 karakter olabilir
Cevapla
#2
Hangi satırda alıyorsun hatayı
WWW
Cevapla
#3
Aslında gönderimde alıyorum hatayı ama
AResult := Servis.SetAddress(AdresList, 'neodyum', 'nd2580'); bu gönderim deki AdresList i beğenmiyor
Cevapla
#4
Hata karşıdan dönüyor,
Ancak karşı taraf , senin oluşturduğun xml'de hata olduğu için döndüğünü söylemeye çalışıyor , eksik veya hatalı bir bilgi gönderiyordiğin karşı tarafın önlem almadığı bir yerden patlıyor olabilir , veya karşıda gerçekten sorun vardır.
Önerim bu gibi işlerde önce soap uı kullan , Sonra aşağıdaki gibi giden gelen xml paketlerini incele sonuca daha çabuk ulaşırsın. Ve bunları thread içerisinde yap uygulaman donmasın.

procedure RioResponse(const MethodName: string; SOAPResponse: TStream);
procedure RioRequest(const MethodName: string; SOAPRequest: TStream);


function TForm2.setadress(): String;
var
 Servis: ServiceSoap;
 sa: AddressDto; // sa set adress
 AdresList: ArrayOfAddressDto;
 AResult: ArrayOfAddressResultDto;
 TResult: AddressResultDto;
 MyRio: THTTPRIO;
begin
 MyRio := THTTPRIO.Create(nil);
 MyRio.OnAfterExecute := RioResponse;
 MyRio.OnBeforeExecute := RioRequest;
 sa := AddressDto.Create;
 sa.ReceiverName := 'Özkan EROL'; // alıcı adı zorunlu
 sa.ReceiverAddress := 'Cumhuriyet Mah. Erata Cad. No:105 D:173';
 // alıcı adresi zorunlu
 sa.ReceiverPhone1 := '5555555'; // telefon zorunlu
 sa.ReceiverCityName := 'İSTANBUL'; // İl-Şehir Adı zorunlu
 sa.ReceiverTownName := 'AVCILAR'; // ilçe adı zorunlu

 SetLength(AdresList, 1);
 AdresList[0] := sa;

 Servis := GetServiceSoap(False, '', MyRio);
 AResult := Servis.SetAddress(AdresList, 'neodyum', 'nd2580');

 Result := '';
 if Length(AResult) > 0 then
   Result := AResult[0].ResultMessage;
end;


procedure RioRequest(const MethodName: string; SOAPRequest: TStream);

var
 intStrList: TStringList;
 Header: String;
 FileName: String;
 ss: TStringStream;
 Value: String;
begin
 try
   intStrList := TStringList.Create;
   SOAPRequest.Position := 0;
   intStrList.LoadFromStream(SOAPRequest);
   intStrList.SaveToFile('C:\RioRequest.xml');
   ShellExecute(0, 'open', PWidechar(FileName), nil, nil, SW_SHOWNORMAL);
 finally
   intStrList.Free;
 end;
end;

procedure RioResponse(const MethodName: string; SOAPResponse: TStream);
var
 intStrList: TStringList;
 FileName: String;
begin
 try
   intStrList := TStringList.Create;
   SOAPResponse.Position := 0;
   intStrList.LoadFromStream(SOAPResponse);
   intStrList.SaveToFile('C:\RioResponse.xml');
   ShellExecute(0, 'open', PWidechar(FileName), nil, nil, SW_SHOWNORMAL);
 finally
   intStrList.Free;
 end;
end;
WWW
Cevapla
#5
hocam siz bu değişikliklerle göndere bildiniz mi?
ben gönderemedim hala

Arasın diğer metotlarına veri gönderip alabiliyorum hiç bir sıkıntı yok sadece bu setadress metodunda sıkıntı yaşıyorum
birde aynı işyerindeki arkadaşım c# ile hiç sorun yaşamadan veri gönderdi başarılı sonucunu aldı
Cevapla
#6
Selam Kardeşim ben sana vereyim çalıştı ok.Gereksizleri silersin

procedure TForm1.Button1Click(Sender: TObject);
var
data:AddressDto;
AdresList:ArrayOfAddressDto;
soapbaglanti:ServiceSoap;
AResult :ArrayOfAddressResultDto;
ladres:string;
Uid: TGuid;
Result: HResult;
begin
try
// sa.ReceiverName:='Özkan EROL';      //alıcı adı zorunlu
// sa.ReceiverAddress:='Cumhuriyet Mah. Erata Cad. No:105 D:173';    //alıcı adresi zorunlu
// sa.ReceiverPhone1:='5555555';     //telefon zorunlu
// sa.ReceiverCityName:='İSTANBUL';    //İl-Şehir Adı zorunlu
// sa.ReceiverTownName:='AVCILAR';     //ilçe adı zorunlu
data:=AddressDto.Create;
ladres:='http://customerservicestest.araskargo.com.tr/arascargoservice/arascargoservice.asmx?wsdl';
soapbaglanti := GetServiceSoap(false,ladres,nil);
data.ReceiverName:='Özkan EROL';
data.ReceiverAddress:='Cumhuriyet Mah. Erata Cad. No:105 D:173';
data.ReceiverPhone1:='5052419956';
data.ReceiverCityName:='İstanbul';
data.ReceiverTownName:='Avcilar';
Result:=CreateGuid(Uid);
data.ImportCargoInfoId:=GuidToString(Uid);
SetLength(AdresList,1);
AdresList[0]:=data;
AResult:=soapbaglanti.SetAddress(AdresList,'neodyum','nd2580');
if Length(AResult) > 0 then mmo1.lines.add(AResult[0].ResultMessage);
finally

end;

end;

end.

Unuttum da aldığın hata guid ile ilgili gönderirken guid istenemektedir. onu verdiğim örnekte otomatik olarak oluşturabilirsin.
Kolay gelsin

lZZprE.png
Cevapla
#7
r3n4m3 üstat çok teşekkür ederim. Allah senden razı olsun. oldu bu iş
Cevapla
#8
Sevindim kardeşim bir ara baya uğraştım en çok zorlandığım sağlık bakanlığındaki web servislerle uğraşmak bizde delphi ile 98'den beri ugrasiyorum. Pek yazmayı sevmem ama dedim hadi yardımcı olayım Big Grin

Kolay gelsin
Cevapla
#9
Aras kargo kodunu paylaştığınız için teşekkür ederim, Sırf size teşekkür etmek için üye oldum.
Cevapla
#10
Kardeşim Selam bende şimdi denedim interface not suprted diyor;
Daha önce UPS ile yapmıştık şimdi ARAS kargo ile anlaşmak üzere firma birde bende 
data.ImportCargoInfoId:=GuidToString(Uid);
Bu kısım altı çizili geliyor
var
data:AddressDto;
AdresList:ArrayOfAddressDto;
soapbaglanti:ServiceSoap;
AResult :ArrayOfAddressResultDto;
ladres:string;
Uid: TGuid;
Result: HResult;
begin
try
// sa.ReceiverName:='Özkan EROL';      //alıcı adı zorunlu
// sa.ReceiverAddress:='Cumhuriyet Mah. Erata Cad. No:105 D:173';    //alıcı adresi zorunlu
// sa.ReceiverPhone1:='5555555';     //telefon zorunlu
// sa.ReceiverCityName:='İSTANBUL';    //İl-Şehir Adı zorunlu
// sa.ReceiverTownName:='AVCILAR';     //ilçe adı zorunlu
data:=AddressDto.Create;
ladres:='http://customerws.araskargo.com.tr/arascargoservice.asmx?wsdl';
soapbaglanti := GetServiceSoap(false,ladres,nil);
data.ReceiverName:='Özkan EROL';
data.ReceiverAddress:='Cumhuriyet Mah. Erata Cad. No:105 D:173';
data.ReceiverPhone1:='5052419956';
data.ReceiverCityName:='İstanbul';
data.ReceiverTownName:='Avcilar';
Result:=CreateGuid(Uid);

data.ImportCargoInfoId:=GuidToString(Uid);


SetLength(AdresList,1);
AdresList[0]:=data;
AResult:=soapbaglanti.SetAddress(AdresList,'feba','ma842tc7gm');
if Length(AResult) > 0 then memo1.lines.add(AResult[0].ResultMessage);
finally

end;

Yardımların için çok teşekkürler.

Aldığım hata bu şekilde

 interface not supported
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Soap Web Service abdullahBuyuk 4 2.346 17-11-2021, Saat: 20:27
Son Yorum: enigma
  Datasnap rest service türkçe karakter sorunu hakkında yanniosman 2 1.379 01-04-2021, Saat: 01:11
Son Yorum: yanniosman
  [ÇÖZÜLDÜ] Windows Service içerisinden başka uygulama çalışmasını kontrol etme theSinan 2 2.846 08-06-2019, Saat: 12:17
Son Yorum: elixir84
  Windows Service Uygulamasının durdurulmasını ve Kaldırılmasını Engellemek aruno 15 10.773 06-11-2018, Saat: 00:23
Son Yorum: aruno
  Rest Service TBytes edo 1 2.450 25-10-2017, Saat: 23:58
Son Yorum: ismailkocacan



Konuyu Okuyanlar: 1 Ziyaretçi