Ingenico POS entegrasyonu Hakkında
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Ingenico POS entegrasyonu Hakkında
Selamlar
Ingenico Pos ÖKC ile çalışan ve "GMPSmartDLL.dll" ile Delphi üzerinden direkt cihaza entegrasyon sağlayan varmıdır.
Ben bu Dll'i bir türlü delphi içerisinden Dinamik yada Statik olarak declere edip kullanamadım.
Teşekkürler
Ingenico Pos ÖKC ile çalışan ve "GMPSmartDLL.dll" ile Delphi üzerinden direkt cihaza entegrasyon sağlayan varmıdır.
Ben bu Dll'i bir türlü delphi içerisinden Dinamik yada Statik olarak declere edip kullanamadım.
Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Ingenico POS entegrasyonu Hakkında
DLL acaba .NET için hazırlanmış olabilir mi? Yoksa C# DLL'i mi? Ingenico size detaylı bilgiyi verecektir.
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Ingenico POS entegrasyonu Hakkında
Ingenico ya sorduğumuzda kütüphanenin Visual Studio kullanarak C++ ile yazıldığını ilettiler
eğer sorun olursa "Visual C++ Redistributable for Visual Studio 2015" kütüphanesi kurun dendi fakat kursamda bir şey değişmedi.
Açaba benmi beceremedim yoksa gerçekten kütüphane delphide çalışmıyormu onun için forumda bilen yada kullanan varmı diye sordum
İngenico tarafında delphiyi bilen olmadığından yardımcı olamıyacaklarını ilettiler.
Teşekkürler
eğer sorun olursa "Visual C++ Redistributable for Visual Studio 2015" kütüphanesi kurun dendi fakat kursamda bir şey değişmedi.
Açaba benmi beceremedim yoksa gerçekten kütüphane delphide çalışmıyormu onun için forumda bilen yada kullanan varmı diye sordum
İngenico tarafında delphiyi bilen olmadığından yardımcı olamıyacaklarını ilettiler.
Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Ingenico POS entegrasyonu Hakkında
GMPSmartDLL.dll dosyasını görmemiz mümkün müdür ? Yada indirebileceğimiz bir yer ?
Re: Ingenico POS entegrasyonu Hakkında
Merhaba,
Aşağıdaki örnekten yola çıkarak kullanmanız mümkün olabilir. Ancak normal DLL gibi tüm fonksiyonlarında string, integer vb parametreler kullanmıyor. Fonksiyon isimlerinden de tahmin edileceği üzere birçok fonksiyon JSON formatı üzerinden çalışmaktadır. Kullanacağınız DLL versiyonu önemlidir.
Benim verdiğim örnekler standart değişkenler üzerinden çalışan fonksiyonlara ait. JSON için kullanılacakları bende henüz çözemedim. Bununla beraber fikir vermesi için "Json_GMP_StartPairingInit" için kullanabileceğiniz iki tane record tanımını da aşağıda ekledim.
Bu DLL ile ilgili olarak numerik alanları BCD haline getiren fonksiyonları Delphi ile yazan arkadaş varsa paylaşır ise çok memnun olurum. Zira ben henüz çözemedim.
Aşağıdaki örnekten yola çıkarak kullanmanız mümkün olabilir. Ancak normal DLL gibi tüm fonksiyonlarında string, integer vb parametreler kullanmıyor. Fonksiyon isimlerinden de tahmin edileceği üzere birçok fonksiyon JSON formatı üzerinden çalışmaktadır. Kullanacağınız DLL versiyonu önemlidir.
Benim verdiğim örnekler standart değişkenler üzerinden çalışan fonksiyonlara ait. JSON için kullanılacakları bende henüz çözemedim. Bununla beraber fikir vermesi için "Json_GMP_StartPairingInit" için kullanabileceğiniz iki tane record tanımını da aşağıda ekledim.
Bu DLL ile ilgili olarak numerik alanları BCD haline getiren fonksiyonları Delphi ile yazan arkadaş varsa paylaşır ise çok memnun olurum. Zira ben henüz çözemedim.
Kod: Tümünü seç
uses
.
.
.
procedure GetErrorMessage(ErrorCode: UInt32; Buffer: array of Byte); cdecl; external 'GMPSmartDLL.dll';
function Json_FiscalPrinter_Echo(szEcho_Out: array of Byte; EchoLen_Out, TimeoutInMiliseconds:integer): UInt32; cdecl; external 'GMPSmartDLL.dll';
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
.
.
.
private
{ Private declarations }
ST_GMP_PAIR : record
In_ProcOrderNum : array [0..3] of Byte;
In_ProcDate : array [0..3] of Byte;
In_ProcTime : array [0..3] of Byte;
In_DeviceBrand : array [0..16] of Byte;
In_DeviceModel : array [0..16] of Byte;
In_DeviceSerialNum : array [0..16] of Byte;
In_DeviceEcrRegisterNo : array [0..17] of Byte;
end;
ST_GMP_PAIR_RESP: record
Out_ProcOrderNum : array[0..6] of Byte;
Out_ProcDate : array[0..6] of Byte;
Out_ProcTime : array[0..6] of Byte;
Out_DeviceBrand : array[0..16] of Byte;
Out_DeviceModel : array[0..16] of Byte;
Out_DeviceSerialNum : array[0..16] of Byte;
Out_ErrorRespCode : array[0..2] of Byte;
Out_StatusCode : array[0..2] of Byte;
Out_VersionNumber : array[0..8] of Byte;
end;
public
{ Public declarations }
end;
var
Form5:TForm5;
implementation
{$R *.dfm}
procedure TForm5.Button1Click(Sender: TObject);
var
i:Integer;
b:array [0..200] of Byte;
pResp:array[0..200000] of Byte;
s:string;
begin
i := Json_FiscalPrinter_Echo(b, 200, 200);
if i <> 0 then begin
GetErrorMessage(i, b);
SetString(s, PAnsiChar(@b[0]), SizeOf(b));
Memo1.Lines.Add('HATA: ' + s);
Exit;
end else begin
Memo1.Lines.Add('Echo başarılı: ' + IntToStr(i));
end;
end;
Re: Ingenico POS entegrasyonu Hakkında
Merhabalar
Mesajın üzerinden biraz zaman geçmiş ama biz bu olaya yeni düştük
Ingenico Yazarkasa ile ilgili aramalarda hep sizin mesajlarınıza denk geldiğim için size de danışmak istedim. yazar kasa entegrasyonu süreciyle ilgili bir sorum olacak eğer cevaplama şansınız varsa memnun olurum.
Bir müşterimiz ide280 modelini temin etmiş. Bu yazar kasa için entegrasyon çalışmalarını yapıyoruz. Tüm fonksiyonlarını kullanmayacağız sadece basitçe otomasyon tarafında oluşturulan fiş kaydını cihaza gönderip çıktı vermesi şeklinde işlemi yapacağız. Fiş kesme işini yaptık bu kısımda bir sorun yok. Eğer problem varsa canlı kullanıma alınca daha net göreceğiz aksaklıkları. Ancak cihazın ping fonksiyonu ile ilgili bir anormallik var gibi.
Biz ethernet üzerinden bağlantıyı kullanıyoruz, bağlantı başlatmadan önce Ping komutu gönderip cihazın ulaşılabilir olup olmadığını kontrol etmek istiyoruz. Eğer cihaz ulaşılabilir durumdaysa ping cevabı hemen dönüyor. Test amaçlı cihazın güç kablosunu çıkarıp erişilemez hale getiriyorum ve ping komutunu tekrar veriyorum. Varsayılan parametrelerle ping fonksiyonundan hata mesajının dönmesi 1 dakikayı buluyor hatta 1 dakikadan 5-6 sn daha fazla sürüyor. Kullanıcıyı ekranda bu kadar zaman bekletmek çok mantıklı gelmiyor.
Ini deki timeout sürelerini 1000 ms yapıp retry değerlerini de 1 yaptığımda ise ancak 20-25 sn ye iniyor. cihaz desteği veren firma kredi kartı ödemelerindeki süre faktöründen dolayı bu değerlerin varsayılan değerlerde kalmasının daha sağlıklı olacağı yönünde bir duyuru maili atmış.
Siz ping fonksiyonunu kullanıyor musunuz ? Kullanıyorsanız ulaşılamaz durumdayken hata mesajının dönüş süresi sizde de böyle uzun mu ?
Yardımlarınız için şimdiden teşekkür ederim.
Mesajın üzerinden biraz zaman geçmiş ama biz bu olaya yeni düştük
Ingenico Yazarkasa ile ilgili aramalarda hep sizin mesajlarınıza denk geldiğim için size de danışmak istedim. yazar kasa entegrasyonu süreciyle ilgili bir sorum olacak eğer cevaplama şansınız varsa memnun olurum.
Bir müşterimiz ide280 modelini temin etmiş. Bu yazar kasa için entegrasyon çalışmalarını yapıyoruz. Tüm fonksiyonlarını kullanmayacağız sadece basitçe otomasyon tarafında oluşturulan fiş kaydını cihaza gönderip çıktı vermesi şeklinde işlemi yapacağız. Fiş kesme işini yaptık bu kısımda bir sorun yok. Eğer problem varsa canlı kullanıma alınca daha net göreceğiz aksaklıkları. Ancak cihazın ping fonksiyonu ile ilgili bir anormallik var gibi.
Biz ethernet üzerinden bağlantıyı kullanıyoruz, bağlantı başlatmadan önce Ping komutu gönderip cihazın ulaşılabilir olup olmadığını kontrol etmek istiyoruz. Eğer cihaz ulaşılabilir durumdaysa ping cevabı hemen dönüyor. Test amaçlı cihazın güç kablosunu çıkarıp erişilemez hale getiriyorum ve ping komutunu tekrar veriyorum. Varsayılan parametrelerle ping fonksiyonundan hata mesajının dönmesi 1 dakikayı buluyor hatta 1 dakikadan 5-6 sn daha fazla sürüyor. Kullanıcıyı ekranda bu kadar zaman bekletmek çok mantıklı gelmiyor.
Ini deki timeout sürelerini 1000 ms yapıp retry değerlerini de 1 yaptığımda ise ancak 20-25 sn ye iniyor. cihaz desteği veren firma kredi kartı ödemelerindeki süre faktöründen dolayı bu değerlerin varsayılan değerlerde kalmasının daha sağlıklı olacağı yönünde bir duyuru maili atmış.
Siz ping fonksiyonunu kullanıyor musunuz ? Kullanıyorsanız ulaşılamaz durumdayken hata mesajının dönüş süresi sizde de böyle uzun mu ?
Yardımlarınız için şimdiden teşekkür ederim.
Re: Ingenico POS entegrasyonu Hakkında
Merhaba,
Ingenico ile mümkünse USB kablo kullanın. PAVO kendisi de tavsiyesi bu şekilde. TCP/IP üzerinden bağlantı standart işletim sistemi üzerinden yapılıyor. Protokol zaman aşımı süreleri standart 1 dakika olarak ayarlanmıştır. Bunun dışında da başka sorunlarla karşılaşmanız yüksek ihtimal.
DLL içinden zaman aşımı değerini değiştirmek sadece 1 dakika + 1 saniye gibi olan sürenin 1 saniye kısmını değiştirir.
Bu arada, kağıt bitmesi durumunu da ciddi kontrollere tabi tutmanız gerekebilir. Cihaz yanlış bilmiyorsam kağıt bitti hata mesajı göndermiyor. Başka bir mesaj gönderiyor.
Ingenico ile mümkünse USB kablo kullanın. PAVO kendisi de tavsiyesi bu şekilde. TCP/IP üzerinden bağlantı standart işletim sistemi üzerinden yapılıyor. Protokol zaman aşımı süreleri standart 1 dakika olarak ayarlanmıştır. Bunun dışında da başka sorunlarla karşılaşmanız yüksek ihtimal.
DLL içinden zaman aşımı değerini değiştirmek sadece 1 dakika + 1 saniye gibi olan sürenin 1 saniye kısmını değiştirir.
Bu arada, kağıt bitmesi durumunu da ciddi kontrollere tabi tutmanız gerekebilir. Cihaz yanlış bilmiyorsam kağıt bitti hata mesajı göndermiyor. Başka bir mesaj gönderiyor.
Re: Ingenico POS entegrasyonu Hakkında
Merhaba
bilgilendirmeniz için teşekkürler, 4-5 farklı şube var. Merkeze uzak masaüstü ile bağlanıp yazılımı kullanıyorlar. Sadece merkez şubede lokal kullanım söz konusu. Bu yüzden ethernet olayını tercih etmek durumundayız biraz. Uygulama uzak sunucu da çalışırken yazarkasalar lokalde bulunacak. Uzak masaüstünden lokaldeki seri portu , paralel portu, yazıcıları kullanıyoruz ama bu cihazın bu tür bir desteği var mı bilmiyorum açıkçası, şimdiye kadar hep ethernet üzerinden çalıştık geliştirme sürecinde. En azından merkez şubede usb kullanırız daha hızlı olacaksa.
bilgilendirmeniz için teşekkürler, 4-5 farklı şube var. Merkeze uzak masaüstü ile bağlanıp yazılımı kullanıyorlar. Sadece merkez şubede lokal kullanım söz konusu. Bu yüzden ethernet olayını tercih etmek durumundayız biraz. Uygulama uzak sunucu da çalışırken yazarkasalar lokalde bulunacak. Uzak masaüstünden lokaldeki seri portu , paralel portu, yazıcıları kullanıyoruz ama bu cihazın bu tür bir desteği var mı bilmiyorum açıkçası, şimdiye kadar hep ethernet üzerinden çalıştık geliştirme sürecinde. En azından merkez şubede usb kullanırız daha hızlı olacaksa.
Re: Ingenico POS entegrasyonu Hakkında
Hız anlamında aynı olacaktır. Yani fiş yazma süresi daha hızlı olmayacaktır. Sadece TCP/IP ile bağlantı olmadığı zaman "bağlantı var mı?" kontrolü bekleme süresi 1 dakika civarında iken USB ile daha kısa sürede olacaktır.
Re: Ingenico POS entegrasyonu Hakkında
Bende de var bir ingenico ide280 . Bu DLL dosyasını nasıl elde edebilirim. Biraz uğraşayım bakalım
Re: Ingenico POS entegrasyonu Hakkında
PAVO firması bayi sözleşmesi yapan firmalara temin ediyor SDK kodlarını (ve DLL dosyasını) bildiğim kadarıyla.
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Ingenico POS entegrasyonu Hakkında
Selamlar
Ingenico'nun verdiği DLL'leri forumun başladığındada yazdığım gibi direkt delphi ile kullanamıyorsun.
Alt yapısı CSharp .net kütüphaneleri kullanılarak yazılmış. Bunun için bayağı uğraşman gerekiyor.
ben 5 günümü harcadım çeviri yaptım fakat iletişim sırasında sürekli adresleme hataları aldım
eğer başaran olursa nasıl yapıldığı konusunda bilgi paylaşırsanız memnun olurum.
İyi Çalışmalar
Ingenico'nun verdiği DLL'leri forumun başladığındada yazdığım gibi direkt delphi ile kullanamıyorsun.
Alt yapısı CSharp .net kütüphaneleri kullanılarak yazılmış. Bunun için bayağı uğraşman gerekiyor.
ben 5 günümü harcadım çeviri yaptım fakat iletişim sırasında sürekli adresleme hataları aldım
eğer başaran olursa nasıl yapıldığı konusunda bilgi paylaşırsanız memnun olurum.
İyi Çalışmalar
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Ingenico POS entegrasyonu Hakkında
Merhaba,adelphiforumz yazdı:Selamlar
Ingenico'nun verdiği DLL'leri forumun başladığındada yazdığım gibi direkt delphi ile kullanamıyorsun.
Alt yapısı CSharp .net kütüphaneleri kullanılarak yazılmış. Bunun için bayağı uğraşman gerekiyor.
ben 5 günümü harcadım çeviri yaptım fakat iletişim sırasında sürekli adresleme hataları aldım
eğer başaran olursa nasıl yapıldığı konusunda bilgi paylaşırsanız memnun olurum.
İyi Çalışmalar
Sanırım bir noktada yanlış anlama var. Ingenico DLL dosyası olarak Delphi ile kullanılabilir C# DLL dosyası temin ediyor. Yukarıda, aynı konu başlığı altında bir iki fonksiyon tanımı ve kullanımı ile ilgili örnek vermiştim. Bu kodlar çalışan kodlardır.
Ancak sorun genelde JSON formatlarında çıkıyor. Simülatör dedikleri C#.NET örnek uygulama DLL içindeki fonksiyonlara parametrelerinin çoğunu (muhtemelen C# diline özgü format içeren) JSON formatında olmasını bekliyor. Büyük oranda JSON formatları aynı olsa da bazı noktalarda değişik olabiliyor. Örneğin C# dilinde kullanılabilen ancak Delphi dilinde özel kelime olarak nitelendirilen ve değişken adı olarak kullanılamayan durumlar ile karşılaşabiliyorsunuz.
Ayrıca, geliştirme yapmak için kullanılan cihaz PAVO firması tarafından geliştirme amacıyla temin edilen cihazlardan değil ise ve resmi kullanım için tanımlanmış bir cihaz ise yüksek ihtimalle çalışmayacaktır. PAVO resmi anlamda DLL ile cihazı kullanacak uygulamaların HASH değerlerini alıp kendi sisteminde yetkilendiriyor. Cihazlar kendi GPRS internet bağlantısı üzerinden iletişim kurmaya çalışan EXE dosyanın hash değerini (DLL dosyası PAIR edildiği sırada arka planda bu değeri üretip cihaza bildiriyor) kontrol ediyor. İzin verilmeyen bir EXE dosya ise istek yerine getirilmiyor. Yani cihazı kullanamıyorsunuz. Geliştirme amacı ile temin edilen cihazlar bu kontrolü yapmıyor. Özel olarak tüm EXE dosyalar ile çalışabilecek şekilde ayarlanıyor.
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Ingenico POS entegrasyonu Hakkında
Merhabaertank yazdı:Merhaba,adelphiforumz yazdı:Selamlar
Ingenico'nun verdiği DLL'leri forumun başladığındada yazdığım gibi direkt delphi ile kullanamıyorsun.
Alt yapısı CSharp .net kütüphaneleri kullanılarak yazılmış. Bunun için bayağı uğraşman gerekiyor.
ben 5 günümü harcadım çeviri yaptım fakat iletişim sırasında sürekli adresleme hataları aldım
eğer başaran olursa nasıl yapıldığı konusunda bilgi paylaşırsanız memnun olurum.
İyi Çalışmalar
Sanırım bir noktada yanlış anlama var. Ingenico DLL dosyası olarak Delphi ile kullanılabilir C# DLL dosyası temin ediyor. Yukarıda, aynı konu başlığı altında bir iki fonksiyon tanımı ve kullanımı ile ilgili örnek vermiştim. Bu kodlar çalışan kodlardır.
Ancak sorun genelde JSON formatlarında çıkıyor. Simülatör dedikleri C#.NET örnek uygulama DLL içindeki fonksiyonlara parametrelerinin çoğunu (muhtemelen C# diline özgü format içeren) JSON formatında olmasını bekliyor. Büyük oranda JSON formatları aynı olsa da bazı noktalarda değişik olabiliyor. Örneğin C# dilinde kullanılabilen ancak Delphi dilinde özel kelime olarak nitelendirilen ve değişken adı olarak kullanılamayan durumlar ile karşılaşabiliyorsunuz.
Ayrıca, geliştirme yapmak için kullanılan cihaz PAVO firması tarafından geliştirme amacıyla temin edilen cihazlardan değil ise ve resmi kullanım için tanımlanmış bir cihaz ise yüksek ihtimalle çalışmayacaktır. PAVO resmi anlamda DLL ile cihazı kullanacak uygulamaların HASH değerlerini alıp kendi sisteminde yetkilendiriyor. Cihazlar kendi GPRS internet bağlantısı üzerinden iletişim kurmaya çalışan EXE dosyanın hash değerini (DLL dosyası PAIR edildiği sırada arka planda bu değeri üretip cihaza bildiriyor) kontrol ediyor. İzin verilmeyen bir EXE dosya ise istek yerine getirilmiyor. Yani cihazı kullanamıyorsunuz. Geliştirme amacı ile temin edilen cihazlar bu kontrolü yapmıyor. Özel olarak tüm EXE dosyalar ile çalışabilecek şekilde ayarlanıyor.
Cihaz PAVO tarafında geliştirilme sağlanması için verilen cihaz fakat daha cihaza erişim sağlamadan bile
sadece eldeki dll içindeki bazı fonksiyonları çağırmaya kalktığınızda bile bir çok yerde "access violation at address" hatası ile karşılaştım.
Bu durum belki benim bilgi eksikliğimde kaynaklı olabilir fakat PAVO ya bu konuda yardımcı olmalarını rica ettiğimizde ise
aldığım cevap bizde delphi bilen yok siz internetten araştırın, bizim cihazımız C# kullanılarak sorunsuz çalışıyor dendi.
Bende bunun üzerine farklı bir cihaz arayışına girdim ve Pidion diye bir cihaz buldum ve bana verdikleri
DLL dosyasını import ettim. sonuç olarak toplam 1 günde bütün sistemi sorunsuz şekilde entegre edebildim.
Eğer Ingenico cihaz ile delphi üzerinden sorunsuz uygulama geliştirmiş bir kişi varsa bura somut olarak paylaşabilirse ve nasıl bir yol izlediğinide anlatabilirse çok teşekkür ederim.
İyi Çalışmalar
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Ingenico POS entegrasyonu Hakkında
Access violation veren ve çalışmayan kod örneği gönderebilir misiniz? En basitinden PAIR (eşleşme) yapan kodu paylaşabilir misiniz?