Ingenico POS entegrasyonu Hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen adelphiforumz »

ertank yazdı:Access violation veren ve çalışmayan kod örneği gönderebilir misiniz? En basitinden PAIR (eşleşme) yapan kodu paylaşabilir misiniz?
Merhaba

bu konuyu daha önceden sizinde katıldığınız aşağıdaki forum linkinde bulabilirsiniz

En basit test için kullanabileceğiniz fonksiyonda aşağıda bunu delphi içerisinden load edebiliyormusunuz.
Çalışmasıda önemli değil yeterki delphi açıldığında "GMPSmartDLL.dll" load edilmiş olsun
Dinamik yada statik hiç fark etmez.

viewtopic.php?f=2&t=35590&p=192684#p192684]
ek olarakta benim çevirmeye çalıştığım incenico yapısıda ektedir.

Kod: Tümünü seç

unit	DLLIngenico;
interface
uses
	Windows,SysUtils;

  function GMP_FiscalPrinter_Ping(TimeoutInMiliseconds : Integer):UInt32; cdecl; External 'GMPSmartDLL.dll' name 'FiscalPrinter_Ping';
//denediğim diğer şekli  function GMP_FiscalPrinter_Ping(TimeoutInMiliseconds : Integer):UInt32; stdcall; External 'GMPSmartDLL.dll' name 'FiscalPrinter_Ping';

implementation
...
...
..

end.
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
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen ertank »

Ben fonksiyon isimlerini direk kullanmayı tercih ediyorum. Ancak tanımlama anlamında sizin gönderdiğiniz örneklerde bir sorun yok. Çalışan birkaç örnek tanımlama şekli aşağıdaki gibidir.

Kod: Tümünü seç

  function GMP_GetDllVersion(pVersion: PByte): UInt32; cdecl; external 'GMPSmartDLL.dll';
  procedure GetErrorMessage(ErrorCode: UInt32; Buffer: PByte); cdecl; external 'GMPSmartDLL.dll';
  function Json_FiscalPrinter_Echo(szEcho_Out: PByte; EchoLen_Out, TimeoutInMiliseconds:integer): UInt32; cdecl; external 'GMPSmartDLL.dll';
  function FiscalPrinter_Ping(TimeoutInMiliseconds: Integer): UInt32; cdecl; external 'GMPSmartDLL.dll';
Diğer kullanılacak fonksiyonları örnek .NET uygulaması içinden bakıp tanımlayabilirsiniz. Ancak yukarıdaki kodlar sizin bahsettiğiniz Access Violation hatasına sebep olmazlar. Bazı fonksiyonlar parametre olarak PByte gerektiriyor (örnek uygulama içinde "byte[]" şeklinde tanımlanmış parametrelerin Delphi karşılığı PByte oluyor). Bu parametreleri olduğu gibi değişken olarak vermemelisiniz. Değişkeni pointer olarak parametre geçmelisiniz. Eğer farklı bir kullanım var ise Access Violation hatası alma sebebiniz bundan kaynaklı olabilir.

Diğer taraftan .NET uygulaması içindeki "struct" tanımlarının Delphi karşılıklarını oluşturmadan DLL dosyasını kullanmanız mümkün değil. İlerleyen kısımlarda JSON kullanmanız gerekecek ve bu tanımlar olmadan JSON string oluşturamaycaksınız. Örnek birkaç struct tanımını bu konu başlığı altında paylaşmıştım. Bu tanımlar tercih edip kullanacağınız JSON kütüphanesine göre ufak değişiklikler gerektirebilir. Nerelerde değişiklik gerektiğini .NET uygulamasını debug ederek bulabilirsiniz ancak. Tamamen ücretsiz Visual Studio 2015 Community Edition sizin bu noktadaki ihtiyacınızı karşılamak için yeterlidir.

.NET uygulaması bazı fonksiyon kullanımları için DLL fonksiyon ismine çok benzeyen fonksiyonlar tanımlamış. Bunu JSON kullandığı tüm fonksiyonlar için yapmış neredeyse. Bu noktalarda sizin kullanım pratiğinize göre aynı şekilde kullanıp kullanmamak size kalmış.

Kısacası, C# ile yazılmış uygulamayı yaklaşk %95 oranında Delphi'ye çevirmeniz gerekli. Kalan %5 kısım JSON kullanımı, sizin uygulamanızın çalışma ekranındaki farklılıklar vb. olacaktır.

Hata aldığınız kodu paylaşabilirseniz yardımcı olmaya çalışırım.
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen adelphiforumz »

Bilgi ve desteğiniz için 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
ebaytar
Üye
Mesajlar: 10
Kayıt: 03 Eki 2008 10:02

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen ebaytar »

Biz de bayağı kazındık izleyeceğimiz yol konusunda açıkcası.

bir arkadaşımız c++ kodlarıyla bir dll üretti bunun içinde de fiş i başlatma , işlemleri yazdırma ve fişi sonlandırma için gerekli olan metodlara karşılık gelecek bir kaç temel metodu koyduk sadece. Biraz yolu uzattık belki ama işimizi gördük bu şekilde.

Geliştirme süreci sonrasındaki durum ile ilgili olarak ayrı bir bilgi paylaşayım;
Entegrasyon için verilen cihazlarla müşterilerde olan cihazlar üzerindeki yazılımlar aynı değil bu yüzden hemen yazdım devreye alayım gibi bir olay yok. Entegrasyon geliştirme süreci tamamlandıktan sonra PAVO ile görüşüp test için randevu alınması gerekiyor. Bu testten sonra müşterinin cihazına gerekli yazılımın yüklenmesi için ingenico ya bilgi veriliyor sanırım ve ondan sonra gerçek ortamda çalışmayı devreye alabiliyorsunuz. Dün randevu talebinde bulundum yoğunluk sebebiyle 2 ay sonrasına gün verdiler. Geliştirmesi ayrı dert devreye alması ayrı dert :)
satiuqea
Üye
Mesajlar: 11
Kayıt: 27 Haz 2016 01:18

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen satiuqea »

Arkadaşlar merhaba,
Bu konuda somut sonuç var mıdır ?
C ve türevleri konusunda hiç bilgim yok verilen. dll eklenmiyor tür hatası dönmekte.

Nasıl bir yol izleyerek çözerim bu olayı.
Yol göstermeniz dileğiyle.
Herkese iyi günler.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen ertank »

Merhaba, 2 Eylül tarihli örnek DLL fonksiyon tanımları çalışmaktadır. Eğer tür hatası alıyor iseniz C# veri türü ile Delphi veri türünü eşleştirememişsinizdir.
satiuqea
Üye
Mesajlar: 11
Kayıt: 27 Haz 2016 01:18

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen satiuqea »

Hocam merhaba,
Başaramadım ne yazık ki küçük bir örnek paylaşma şansın var mı benimle ?
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen ertank »

Merhaba,

Aşağıdaki bağlantıdan örnek uygulamayı indirebilirsiniz. Uygulama Ping, Echo ve DLL Versiyon bilgilerinin nasıl kullanılabileceğini göstermektedir.

http://www.dosya.tc/server10/y9uw21/ing ... e.rar.html

Örnek uygulama Delphi 10.2 üzerinde hazırlanmıştır. Sıkıştırılmış dosyayı WinRar 5.0 veya daha sonraki sürümler ile açabilirsiniz.
En son ertank tarafından 29 Eyl 2017 05:47 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
satiuqea
Üye
Mesajlar: 11
Kayıt: 27 Haz 2016 01:18

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen satiuqea »

Hocam merhabalar,
Yardımların için teşekkür ederim.
wakabayashi
Üye
Mesajlar: 4
Kayıt: 12 May 2018 11:34

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen wakabayashi »

Merhaba, konuyu hortlatmış olacağım. ingenico SDK'sı elinde olan var mı?
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen ertank »

Merhaba,

Ingenico zaten SDK paylaşımında bulunmakta. Kendilerinden talep ederseniz size en son P12 sürümünü ileteceklerdir. Bu SDK C#, Java vb diller için örnekler içermekte ancak içinde Delphi örneği bulunmamaktadır. Eğer istediğiniz Delphi örnek kodu ise bu konuyu başından itibaren okumanızı tavsiye edebilirim.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen ertank »

Merhaba,

Ingenico entegrasyonunu çok pratik hale getiren bir bileşen geliştirdim. Detaylar için: viewtopic.php?f=12&t=37332
Kullanıcı avatarı
IZLEN
Üye
Mesajlar: 58
Kayıt: 07 Mar 2008 02:40
İletişim:

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen IZLEN »

slm kodu paylasma imkaniniz varmi bende ugrasiyorum ama hala cozemedim tesekkurler
İzlen
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen ertank »

Merhaba,

Yukarıdaki bağlantının ilk mesajında belirttiğim gibi oluşturulan sınıfı ücreti karşılığında Delphi2007-Delphi 10.2.3 arasındaki herhangi bir sürüm için DCU dosyası olarak temin edebiliyorum.

Bağlantı: viewtopic.php?f=12&t=37332
wakabayashi
Üye
Mesajlar: 4
Kayıt: 12 May 2018 11:34

Re: Ingenico POS entegrasyonu Hakkında

Mesaj gönderen wakabayashi »

ertank yazdı: 12 May 2018 10:23 Merhaba,

Ingenico zaten SDK paylaşımında bulunmakta. Kendilerinden talep ederseniz size en son P12 sürümünü ileteceklerdir. Bu SDK C#, Java vb diller için örnekler içermekte ancak içinde Delphi örneği bulunmamaktadır. Eğer istediğiniz Delphi örnek kodu ise bu konuyu başından itibaren okumanızı tavsiye edebilirim.
Merhaba
Tüm mobil pos cihazları için işlev görür mü bahsettiğiniz sdk? Yani ICT, IWL serilerini geliştirebilir miyiz
Cevapla