Bu proje PHP yazılım dili ve https://dev.param.com.tr/tr/api dökümantasyonu kullanılarak kodlandı.
https://okesmez.com/parampos-v2/test.php bağlantısından örnek çalışan projeye ulaşabilirisniz.
- İşletmeye ait olan tanımlamalar.
Config/index.php
dosyası üzerinde tanımlanmalıdır. Config/index.php
dosyası içerisinde tanımlı olarak bulunanWHICH
(7.satır) parametresi iki değer alabiliyor. eğer test üzerinde işlem yürütmek istiyorsanızTEST
, canlı servis adresi üzerinde çalışmak istiyorsanızPROD
olarak tanımlamalısınız.- Eğer canlı yani PROD ortamda çalışmak istiyorsanız.
Config/index.php
sayfasına aşağıdaki örneğe benzer bir datayıPOST
methodu ile göndermelisiniz.
$_POST = [ '-KK_Sahibi-' => 'okesmez', '-KK_No-' => '4022774022774026', '-KK_SK_Ay-' => 12, '-KK_SK_Yil-' => 26, '-KK_CVC-' => '000', '-KK_Sahibi_GSM-' => '', '-Siparis_ID-' => time(), '-Siparis_Aciklama-' => 'Test Siparişi', '-Taksit-' => 1, //1,2,3,5.... '-Islem_Tutar-' => '12,00', '-Toplam_Tutar-' => '12,00', '-Islem_ID-' => 'islemId'.time(), '-IPAdr-' => $_SERVER['REMOTE_ADDR'], '-1a-' => 'Test Data 1', '-2a-' => 'Test Data 2', '-3a-' => 'Test Data 3', ];
- Parampos kullanılarak yapılan ödeme işlemlerinin başarılı ve başarısız tamamlanamsı durumuna göre
yönlendirileceği adresleri yine
Config/index.php
dosyasında tanımlamalısınız.(30 ve 31. satırlar)
- 3D Pay ile ödemeye ait örnek çalışan kodlar için https://github.com/ofke-yazilim/parampos-v2/blob/master/index.php dosyasınI inceleyebilirsiniz.
- Özel Taksit oranlarının çekildiği örnek çalışan kodlar için https://github.com/ofke-yazilim/parampos-v2/blob/master/installment.php dosyasını inceleyebilirisiniz.
- Xml dizini içerisine, kullanılacak soap xml dosyası eklenir.(Örneğin 3D Pay için https://dev.param.com.tr/tr/api/oedeme-v2 adresinde bulunan tab menu içerisindeki
Request
sekmesinde bulunan xml verisi alınır.) - Builder dizini içerisine gidilerek: class içerisine eklenmiş olan XML prametrelerini içerecek bir array tanımlanır. Array içerisindeki değerler yukarıda bahsettiğim linkte bulunan
Gönderilecek Parametreler
sekmesinde mevcuttur. Ardından tanımlanan bu array'ı return olarak döndürecek fonksiyon tanımlanır. - Request dizinine girerek en üst kısma Servise ait endpoint tanımlaması yapılır. Parampos üzerinde çalışan tüm servis adreslerine ve endpointlerine
https://test-dmz.param.com.tr:4443/turkpos.ws/service_turkpos_test.asmx adresinden ilgili methodlara tıklayarak ulaşabilirsiniz. Endpoint verileri açmış olduğunuz sayfada
?
ve sonrasında tanımlı olan değerlerdir. Örneğin?op=Pos_Odeme
gibi. - Request içerisinde tanımladığınız değer ayrıca servisi çağırdığınız zaman kullanacağınız
type
değerini de temsil eder. - Request dizininde ayrıca sevise istek atacağımız xml verisini hazırlayacak bir fonksiyon ekliyoruz. Bu fonksiyon Builder içerisinden hazırlanan parametreleri: XML içerisinde tanımlamış olduğumuz xml dosyasında belirtilen uygun yerlere koyarak ilgili request xml verisini hazırlayacaktır.
- Response içerisinde: Request içerisinde tanımlana endpoint ile aynı isimde bir fonksiton tanımlaması yapılacak. Bu fonksiyon servisten gelen xml verisinii parse edecek şekilde düzenlenecek.
- Ardından aşağıda bulunan örnek kodlara uygun olarak ilgili servis verileri çağrılabilir.
// Turn off error reporting error_reporting(0); require_once 'Config/index.php'; //Konfigirasyon tanımlamaları alınıyor require_once 'Request/Request.php'; //Request için xml hazırlayan class ekleniyor require_once 'Builder/Builder.php'; // İstek parametrelerini array olarak ayarlar $request = new Request(); $builder = new Builder(); $data = []; //Request parametrelerini saklıyor. /** * Aşağıdaki hazırlanacak yeni servisin çalıştırılmasın sağlayan fonksiyonların çağrılması şeklini içerir. */ $parameters = $builder->BURAYA BUILDER İÇERİSİNDE TANIMLANAN FONKSİYON İSMİ GELECEK(); //Servise gönderilecek olan xml içeriği hazırlanıyor $request_xml = $request->BURAYA REQUEST İÇERİSİNDE TANIMLANAN FONKSİYON İSMİ GELECEK($parameters); //Servis çağrılıyor ve Response verisi alınıyor $response = $request->sendRequest($request_xml, 'BURAYA REQUEST İÇERİSİNDE ENDPOINT İÇİN TANIMLANAN DEĞER GELECEK');