Ziraat Bankası Sanal Pos Ödeme Modülü

misyoner

OpenCart-TR
Katılım
17 Ağu 2010
Mesajlar
4
Tepkime puanı
0
Puanları
0
Selamlar arkadaşlar. Forumdaki YPK modülü bayağı ihtiyacım olduğunda çok işime yaradı. :)
Lakin şimdi müşterimiz Ziraat bankasının sanal pos'tunu kullanmak istiyor ve onların sisteminde önce sipariş bilgileri sisteme bankanın sistemine kaydediliyor, ardından ortak ödeme sayfasının görünmesi için, sipariş kayıdı sonrası oradan post'la gelen Transaction Id bilgisi aynı adrese gönderilerek kullanılıyor. Yani bir seferde tüm bilgileri (müşteri numarası, sipariş tutarı...vb) gönderip ortak ödeme sayfasını açamıyorum. :-/ Halihazırdaki ödeme modüllerinden bu bahsettiğime benzer bir tane var mı, yoksa bu iş nasıl çözerim? :shy:
Alakanız ve yardımınız için şimdiden teşekkür ederim.
 

debreli

OpenCart-TR
Katılım
31 Ağu 2010
Mesajlar
196
Tepkime puanı
0
Puanları
0
Web sitesi
vakifshop.com
buda var bir bak istesen
http://forum.opencart-tr.com/thread-1707.html
 

misyoner

OpenCart-TR
Katılım
17 Ağu 2010
Mesajlar
4
Tepkime puanı
0
Puanları
0
Sağol debreli, onu biliyorum lakin orada ödeme sayfası sitenin içerisinde. Ortak ödeme sayfasını geliştiren firmadaki arkadaşın gönderdiği kodlarda işlemi php kodunda soap class'ı ile yapmış. catalog'un template/payment'ı altında kullandığım banka şablonuna bahsettiğim arkadaşın gönderdiği kodları koyarak kullanmaya çalıştım lakin tpl üzerinde php kodlarını kullanmak ayrı bir alem.

Sorunum tam olarak şu: Elimdeki şablon kodunda tüm sipariş bilgileri bir seferde ortak ödeme sayfası adresine gönderiliyor(catalog/controller/payment altında bir php dosyasında adresi tanımlı) ve o sayfada kredi kartı bilgileri girildikten sonra success durumuna göre sitedeki sayfaya dönülüyor.

Benim ihtiyacım olan, her seferinde catalog/controller/payment altındaki ödeme modülünün dosyasında çağrılan callback fonksiyonunda, kayıt edilen transaction'ın geri dönen bilgisini yakalayıp, ardından verilen adrese bu bilgiyi gönderip ortak ödeme sayfasını açabilmem. Ardından ise success durumuna göre sitedeki sayfaya döneceğim.

Yani catalog/controller/payment altındaki ödeme modülünün dosyasını veya aynı modülün sablonunu öyle ayarlamam gerekiyor ki; sırasıyla, "ortak ödeme sayfası adresine sipariş bilgimi göndereyim; transactionid mi alayım; bunu kontrol edip tekrar göndererek ortak ödeme sayfasını açayım ve müşteri bilgilerini sayfadan onaylatınca siteye dönsün." işlemlerini yapabileyim. Aslen opencart controller mekaniğini anlayamadım. Ödeme sayfasını yapanlardan opencart'a uygun modül yazmalarını isteyemem(ki zannetmiyorum uğraşacaklarını!) ve bunu kotarabilirsem diğer bankalarla alakalı problemler çıkarsa ufaktan işi çözebileceğime inanıyorum.
Biraz kendimi tekrarladığım için kusura bakmayın. Başkasına yazdırmak işin kolay kısmı, ama yaptığını anlamak istiyorsan elini kirletmen gerektiğine inanıyorum.

Buyrun ekte, geliştirici firmanın bana gönderdiği entegrasyon anlatımı mevcut. sadece test adresini içerdiğinden ve firma bilgileri bulunmadığından paylaşmama laf edeceklerini zannetmiyorum.

Edit: Forum eklenti kısmı çalışmıyor galiba. Docs'dan paylaşıyorum:
https://docs.google.com/document/edit?id=1Db4J4v9NMlBD3ifq84FHuY6qgP4D9uPSIxBE4GQ2jg8&hl=en&authkey=CObet7AP

Arkadaşlar en azından opencart bünyesinde gelen ödeme modüllerinden bahsettiğime benzer çalışan sistem var mı yok mu birisi söyleyebilir mi? Varsa eğer, çalışma şekline bakıp ondan fikir alabilirim.
 

misyoner

OpenCart-TR
Katılım
17 Ağu 2010
Mesajlar
4
Tepkime puanı
0
Puanları
0
Son mesajdan beridir sorunu kısmen hallettim. Bankanın kredi kartı sayfasına bağlanabiliyorum. Bunu da şöyle gerçekleştirdim: ödeme modülünün kontrol dosyasında(catalog/controller/payment altındaki) index fonksiyonu içinde siparişimle alakalı kull. bilgileri, sipariş tutarı, taksit...vb bilgileri uygun tarzda birleştirip Curl class'ı ile transaction'ın kaydedildiği sayfaya post ediyorum. Curl elde yoksa ise Stream yapıp gönderiyorum. Curl kapanana veya Stream sonuca bağlanana kadar bir 30 sn bekleniyor. Daha sonra bana dönen transaction id bilgisini modülün tpl'sindeki (template/payment altındaki) forma aktarıp, oradan ödeme sayfasını açıyorum.

...da, dönüşte callback'de sipariş numarasıyla transaction id'sini ilişkilendirmeye uğraşıyorum. Ziraat sağolsun, onlara gönderdiğim sipariş numarasını hiçe saymış gibiler. Sipariş numarasını "1" gönderiyorum, onlar transaction id'nin 32 bitlik koduyla cevap veriyorlar. Session kullanmakta güvenlik açığı yaratabilir. Bakalım, şu encrytion özelliğini kullanabilecek miyim? Alakadar olan herkese teşekkürler. :)

Kod:
$requestSaveTransaction = '&AmountCode=' . urlencode(stripslashes(html_entity_decode($this->data['AmountCode'], ENT_QUOTES, 'UTF-8')));
		$requestSaveTransaction .= '&UserName=' . urlencode(stripslashes(html_entity_decode($this->data['UserName'], ENT_QUOTES, 'UTF-8')));
		$requestSaveTransaction .= '&Password=' . urlencode(stripslashes(html_entity_decode($this->data['Password'], ENT_QUOTES, 'UTF-8')));
		$requestSaveTransaction .= '&MerchantGUID=' . urlencode(stripslashes(html_entity_decode($this->data['MerchantGUID'], ENT_QUOTES, 'UTF-8')));
		$requestSaveTransaction .= '&MerchantID=' . urlencode(stripslashes(html_entity_decode($this->data['MerchantID'], ENT_QUOTES, 'UTF-8')));
		$requestSaveTransaction .= '&InstalmentCount=' . urlencode(stripslashes(html_entity_decode($this->data['InstalmentCount'], ENT_QUOTES, 'UTF-8')));
		$requestSaveTransaction .= '&AmountMerchant=' . urlencode(stripslashes(html_entity_decode($this->data['AmountMerchant'], ENT_QUOTES, 'UTF-8')));
		$requestSaveTransaction .= '&AmountBank=' . urlencode(stripslashes(html_entity_decode($this->data['AmountBank'], ENT_QUOTES, 'UTF-8')));

		if (extension_loaded('curl')) {
				
					$ch = curl_init('https://yonetim-test.ziraatbank.com.tr/IPOSMerchant_UserInterface/save_transaction.aspx');
				

				curl_setopt($ch, CURLOPT_POST, true);
				curl_setopt($ch, CURLOPT_POSTFIELDS, $requestSaveTransaction);
				curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
				curl_setopt($ch, CURLOPT_HEADER, false);
				curl_setopt($ch, CURLOPT_TIMEOUT, 30);
				curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		
				$response = curl_exec($ch);
			/*
				if ($response, $this->data['MerchantGUID']) != 0) {
					$this->data['hatam'] = $response;
					
				}
			*/
				curl_close($ch);
			} else { 
				$header  = 'POST /cgi-bin/paycgi HTTP/1.0' . "\r\n";
				$header .= 'Content-Type: application/x-www-form-urlencoded' . "\r\n";
				$header .= 'Content-Length: ' . strlen(utf8_decode($requestSaveTransaction)) . "\r\n";
				$header .= 'Connection: close'  ."\r\n\r\n";
				
				
					$fp = fsockopen('https://yonetim-test.ziraatbank.com.tr/IPOSMerchant_UserInterface/save_transaction.aspx', 80, $errno, $errstr, 30);
				
					
				
			
				if ($fp) {
					fputs($fp, $header . $request);
				
					while (!feof($fp)) {
						$response = fgets($fp, 1024);
				/*	
						if (strcmp($response, $this->data['MerchantGUID']) != 0) {
							$this->data['hatam'] = $response;
							
						}
				*/		
					}
					
				
					fclose($fp);
					
				}
			 }
 

saytekin

OpenCart-TR
Katılım
25 Eyl 2010
Mesajlar
19
Tepkime puanı
0
Puanları
0
merhaba
benim müşterimde aynı dosyaları bankadan almış.
Bu entegrasyon işlemi ile bankanın uğraşması gerekmiyormu ?

Sonuçta adamlar yazılımı hazır yazıp göndermişler sitenize entegre edin deyip sürekli arayanlara yanıt vererek ömürleri geçiyor.

ben http://code.google.com/p/opencart-sanalpos/ bu adrestekini deneyerek verdikleri bilgileri girmeye çalıştım olmadı sanırım.

birde test için kredi kartı bilgisi v.s. vermiş ama kredi kartı sahibinin ad soyadı verilmemiş. bu test kredi kartı olduğu için önemsiz mi yoksa unutulmuşmu onu öğrenmek istedim başta.


birde sizin bahsettiğiniz yapıda çalıştığımız hostingde curl desteği yok.
sizin bu fonksiyon çalışmıyor sanırım.


Bu bankalar neden işi zora sokarlar anlamam PAYPAL gibi basit bir sisteme oturtturamadılar bu sistemi her banka ayrı telden çalıyor.

SaveTransactionPHP.rar
OrtakOdeme Sample.zip
QueryTransactionwithTransactionGUID.rar
QueryTransactionwithTransactionGUIDphp.rar
SaveTransaction.rar


şeklinde dosyalar gönderilmiş bu dosyaları açıklayabilirmisiniz tam olarak hangisi ne iş yapıyor.
sanırım hepsinin içeriğinde // ile işaretli üye işyeri adı kodu vs. bölümleri güncellenerek // işaretleri kaldırılacak ardından kullanılacak ama ne yazanlardan bir şey anladım ne kullanabildim.

şimdiden cevaplarınız ve paylaşımlarınız işin teşekkürler.


birde bir yazı ile karşılaştım adamın biri ziraat bankası pos olayı ile ilgili baya bir sorun yaşamış hiç rasladınızmı acaba.

alıntı yapıyorum yazıyı :


Proje geliştiriyorsunuz, program geliştiriyorsunuz belki de eğitim süreçleri tasarlıyorsunuz. MMistanbul.com‘dan Zehra Doruk sayesinde dikkatimi çekmiş çok öenmli bir video. Adeta son 3 ayımı ifade ediyor. Çevirilerinden bazıları şöyleymiş;
“5 haftalık bir iş planının 4. haftasındayız ama gereksinimleri yeni öğrendik”, “Yarım günümü daha fazla nasıl iş çıkartabileceğimize dair bir toplantıda harcadım, çalışmak yerine..”, “patron bir magazin dergisinde daha üretken olduğunu okuduğu programın bir kopyasını getirdi ve süreçleri yarı yarıya kısaltacağını sanıyor!”..

O kadar doğru ki, pratik halini yaşadığım için anlatmadan geçemeyeceğim.
İşimiz sanal pos kurulumuydu. İlk etapta bir sayfalık bir form doldurup bankaya ilettik. Sonra banka tarafından istenen ve sitede bulunması gereken visa / master card logosunu, Gizlilik Politikası , Garanti İade Koşulları , Firma Bilgileri , Teslimat Politikası , Müşteri Hizmetleri gibi bilgileri sitemize ekledik. Beklemeye başladık. Bankamızın bunları kontrol etmesi yaklaşık 22 gün sürdü diye hatırlıyorum. Üstünden aylar geçtiği için tam hatırlayamıyorum kusura bakmayın.

Sonra bize bir telefon ve eposta geldi. Test aşamasına sitemizi hazırlamamız için sabit IP, SSL sertifikası gibi şartları hazırlamamız ve XML sistemi kurmamız istendi. Innova firmasının altyapısını kullanan bankamız Ziraat Bank’ın ilk defa pos kurulumu yaptığımız için yönetim paneli giriş kodu göndermediğini anladık. Dökümantasyon ise sadece ASP scriptleri için açıklamalar içeriyordu. İnnova‘dan PHP örnekler talep ettiğimizde bir kaç kaynak gönderdiler ama bir türlü CURL ile XML sorgulamaları yapamıyorduk. Bu sorun bir kaç günümüze mal oldu. Sonra PHP SOAP extention desteği ile yapabileceğimizi ama host firmamızın bu desteği vermediğini öğrendik. CGI gibi kullanmamızı istiyorlardı SOAP kütüphanelerini. Bu konuda uzuuunn süre araştırma yaptıktan sonra asla yeterli türkçe kaynağa ulaşamayacağımı anladım. CURL, SOAP, XML gibi konularda emin olun hiçte öyle fazla bilirkişi yok Türkiye’de. Hele bunların yanında PHP’yi de bilen kaç kişi vardır bilemiyorum. Zira bana Türkiye’den yardım bir ana kadar gelmedi.

Bu sıralarda araştırırken şu anda İngiltere’de bir oyun firmasında çalışan ve sanıyorum master yapan Görkem PAÇACI‘ya denk geldim. Ekşi sözlükte yazdığı bilgi dolu cümleleri okuyup, orada yazar olmadığım için mesaj atamadığımdan sosyomat.com’da kendisine nicki ile ulaşabildim. Sağolsun çok yardımcı oldu ve benim es geçtiğim PHP’nin nuSOAP kütüphanesinin işe yarayabileceğini söyledi. Zira yaradı da. Artık sorgulama yapabiliyorduk.

Ama verilen bilgilerle bir türlü yönetim paneline giriş yapamıyorduk. İnnova’dan teknik danışmanımıza sorduğumuzda sizde giriş kodu yok mu dedi. Evet gelen epostada yoktu. Sonra Bileşim A.Ş.’den giriş kodunu istedik. Kullanıcı adı ve şifremizle kullanınca girebildik. Girince çok şaşırdık. Çünkü sadece girebiliyorduk ama içerde herhangi bir işlem yapamıyorduk. Bu süre zaafında günler su gibi geçmişti. Sanırım bir ay kadar oldu. Bildirince bir süre sonra panelde yetkiler açıldı.

Sonra formlar, alış-veriş sistemimizin SSL ve sabit IP entegrasyonu gibi konuları bir hafta içinde hallettik. Site5.com‘un sabit IP vermek konusundaki hızına şaşırdık. sanırım 2 saat kadar sürdü. 3 gün sonrada tüm proxy IP’ye doğru cevap verir oldu. Bu konularda ettiği yardımdan dolayı Exa System‘den Aykut ARDIÇ’a çok teşekkürler. Bileşim A.Ş.’ye durumu bildirince 3D secure sisteminide istediğini bildirdi. Sistemi alıp bir kaç gün inceledim ama akabinde elimde yeterli döküman olmadığınıda farkettim. Bir hafta inceleme öğrenme süresinden sonra İnnova’ya yeniden döndük ve hem bize hem Bileşim A.Ş.’ye giden döküman verme yetkisi bizde yoktur maili ile mailimizi okurken Bileşim A.Ş.’den 3D secure entegrasyonu için ödkümanları almıştık.

Hızla incelerken farkettik ki 3D secure sistemi visa ve master kart root serverlarına operatör gibi çalışan bankaların tüm kredi kartı işlemlerini düzenli şekilde root servera bildirmesi gibi bir özelliğe sahipti. Acaba visa/master bu sistemi bankalara şart koşarken bunu kasten mi istemişti ? Bir güvensizlik mi söz konusuydu onlar içinde. Garipsedik, üstünde durmak istemedik.

Adeta bize piyangodan çıkan 3d secure sistemde Microsoft Tabanlı iPay sanal pos sistemi birleştiğinde inanılmaz bir yavaşlık olacağını tahmin etmek hiçte zor değildi. Zira Onlinenic.com‘da ortağım işlem yaptığında dakikalarca alış-veriş için bekliyor, browser yönlendirmesi şeklinde işleyen 3d secure sisteminde anne kızlık soyadından parçalar bile isteniyordu. Frame olarak görünen sisteme bakıp mecbur olduğumuzdan istemeyerek işlem yapıyorduk. Bu sistemin bir kaç yüz türk lirasını geçmeyecek bir alış veriş sitesinde cazip olmayacağı gün gibi aşikardı. Sistemde ayrıca alışverişler havada kaldığı için bir şekilde kredi kartı kaydı yapmakta gerekiyordu ki sağladığı güvenliği riskede çeviriyordu bizim için.

Bütün bu gelişmeler sonunda bir şekilde anlaştık ve sistemi sağlayıp 3- 3,5 ay sonunda sistemi entegre edebildik. Aldığımız ücret mi ? Söyleyemeyeceğim kadar komik inanın. Zaten kar amaçlı değil girişim amaçlı yapmıştık işi. Ama yapmaz olsaydık keşke demedik değil.

Sözün ve hikayenin özü Türkiye’de birşey geliştirmek zaten zor. Standartları oturmamış birşeyler geliştirmek daha zor. Vasıf, bilgi, emek, tecrübe isteyen bir işi yapmak çok çok daha zor. Ve bu sırada yeterli bilgiye, tecrübeye, insiyatife sahip olmayan insanlarla uğraşmak hayal edemeyeceğiniz kadar zor. Eğer bir iş için yola çıkıyorsanız bilin ki o koskoca binalı, gözünüzde son teknoloji kullanan şirketler hazır iş modellerini alıp yıllarca Türkiye’ye uyarlamakta zorluk çeken aslında buzdağının tam tersi şekilde duran geliştiriciye ve girişimciye hiçte kolaylık sağlamayan şirketler. Karşınıza çıkacak yüzlerce engel var. Hiç biride bu videodaki gibi yarım günüm gitti gibi komik söylemlere eş değil :)
Şimdiden kolay gelsin, bu videodakileri on kat fazla yaşayacaksınız. Ben çeksem uzun metraj olurdu heralde, hatta bir üçleme rahatlıkla çıkartırım.
( Gerçi bütün bu işleri ben yaptım. Peki neden çoğul konuşuyorum çünkü kurumsal bir yapı altında yaptım, o yüzden diye kendimi kandırayım. )



arada birde resim var. akış diyagramını gösteren bu resmide ekliyorum. jpg.
 

Ekli dosyalar

  • diyagram.jpg
    diyagram.jpg
    23.9 KB · Görüntüleme: 159

saytekin

OpenCart-TR
Katılım
25 Eyl 2010
Mesajlar
19
Tepkime puanı
0
Puanları
0
Tekrar merhaba.
Innova firmasına bir mesaj atarak yardım istedim.
3 adet soru sordum sorduğum sorulara cevap vermeden örnek bir php dosyası göndermişler.

Kod:
<?php
error_reporting(E_ERROR);

if ($_POST["hdnMode"] != "RESULT") {
    ?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
        <title>iPay iPos Client Test Utility</title>
    </head>
    <body>


        <form id="iPayTestForm" action="OrtakOdeme_iPosClient.php" method="post">
            <input type="hidden" name="hdnMode" value="RESULT">
            <table border="1" id="table1" cellpadding="0" cellspacing="0">
                <tr>
                    <td colspan="2" align="center"
                        style="font-family: Tahoma; font-size:10pt; color: #FFFFFF; font-weight: bold; background-color: #0033CC">
                        Ornek fikir verme amacli hazirlanmistir, kesin calisma garantisi yoktur
                    </td>
                </tr>
                <tr>
                    <td colspan="2" align="center"
                        style="font-family: Tahoma; font-size:10pt; color: #FFFFFF; font-weight: bold; background-color: #0033CC">
                        iPay iPos Client Test Utility
                    </td>
                </tr>
                <tr>
                    <td style="font-family: Tahoma; font-size: 8pt" align="right">Service
                        Url :
                    </td>
                    <td style="font-family: Tahoma; font-size: 8pt">
                        <input type="text"
                               value="https://yonetim.ziraatbank.com.tr/IPOSMerchant_UserInterface/save_transaction.aspx"
                               name="ServiceUrl"
                           style="font-family: Tahoma; font-size: 8pt; font-weight:bold; width:300px;"></td>
                </tr>
                <tr>
                    <td style="font-family: Tahoma; font-size: 8pt" align="right">
                        Tutar :
                    </td>
                    <td style="font-family: Tahoma; font-size: 8pt">
                        <input type="text" value="5550" name="AmountMerchant"
                               style="font-family: Tahoma; font-size:8pt; font-weight: bold; width:300px;">
                    </td>
                </tr>
                <tr>
                    <td style="font-family: Tahoma; font-size: 8pt" align="right">
                        Para Kodu :
                    </td>
                    <td style="font-family: Tahoma; font-size: 8pt">
                        <input type="text" value="949" name="AmountCode"
                               style="font-family: Tahoma; font-size: 8pt;font-weight: bold; width:300px;">
                    </td>
                </tr>
                <tr>
                    <td style="font-family: Tahoma; font-size: 8pt" align="right">
                        �ye Isyeri No :
                    </td>
                    <td style="font-family: Tahoma; font-size: 8pt">
                        <input type="text" value="000000000147079" name="MerchantID"
                               style="font-family: Tahoma; font-size: 8pt; font-weight: bold; width:300px;">
                    </td>
                </tr>
                <tr>
                    <td style="font-family: Tahoma; font-size: 8pt" align="right">
                        Kullanici Adi :
                    </td>
                    <td style="font-family: Tahoma; font-size: 8pt">
                        <input type="text" value="sebiba12" name="UserName"
                               style="font-family: Tahoma; font-size:8pt; font-weight: bold; width:300px;">
                    </td>
                </tr>
                <tr>
                    <td style="font-family: Tahoma; font-size: 8pt" align="right">
                        Sifre :
                    </td>
                    <td style="font-family: Tahoma; font-size: 8pt">
                        <input type="text" value="sebiba12" name="Password"
                               style="font-family: Tahoma; font-size:8pt; font-weight: bold; width:300px;">
                    </td>
                </tr>
                <tr>
                    <td style="font-family: Tahoma; font-size: 8pt" align="right">
                        Is yeri Tekil ID :
                    </td>
                    <td style="font-family: Tahoma; font-size: 8pt">
                        <input type="text" value="28" name="MerchantGUID"
                               style="font-family: Tahoma; font-size: 8pt; font-weight: bold; width:300px;">
                    </td>
                </tr>
                <tr>
                    <td style="font-family: Tahoma; font-size: 8pt" align="right">
                        Taksit Sayisi :
                    </td>
                    <td style="font-family: Tahoma; font-size: 8pt">
                        <input type="text" value="0" name="InstalmentCount"
                               style="font-family: Tahoma; font-size:8pt; font-weight: bold; width:300px;">
                    </td>
                </tr>
                <tr>
                    <td style="font-family: Tahoma; font-size: 8pt" align="center" colspan="2">
                        <input type="submit" value="Submit" style="font-family: Tahoma;font-size: 8pt; font-weight: bold">

                    </td>
                </tr>
            </table>
        </form>

    </body>

</html>
<?php

} else {

$registerUrl = "";
$MerchantGUID = "";
$TrnxGUID = "";
$sendTrnxUrl = "";
$AmountMerchant = "";
$MerchantID = "";
$UserName = "";
$Password = "";
$InstalmentCount = "";
$registerParam = "";


$registerUrl = $_POST["ServiceUrl"];
$MerchantGUID = $_POST["MerchantGUID"];
$AmountMerchant = $_POST["AmountMerchant"];
$AmountCode = $_POST["AmountCode"];
$MerchantID = $_POST["MerchantID"];
$UserName = $_POST["UserName"];
$Password = $_POST["Password"];
$InstalmentCount = $_POST["InstalmentCount"];


$registerParam = "&MerchantGUID=" . $MerchantGUID .
    "&AmountMerchant=" . $AmountMerchant .
    "&AmountBank=" . $AmountMerchant .
    "&AmountCode=" . $AmountCode .
    "&MerchantID=" . $MerchantID .
    "&UserName=" . $UserName .
    "&Password=" . $Password .
    "&InstalmentCount=" . $InstalmentCount;













$options = array(
    'http'=>array(
    'method'=>"POST",
    'header'=>
      "Content-type: application/x-www-form-urlencoded",
    'content'=>$registerParam,
    )
);

$context = stream_context_create($options);

$fp = fopen($registerUrl, 'r', false, $context);

$TrnxGUID = stream_get_contents($fp);


/*

Gonderilen veriler:
-------------------------
ServiceUrl          https://yonetim.ziraatbank.com.tr/IPOSMerchant_UserInterface/save_transaction.aspx
AmountMerchant      5550
AmountCode          949
MerchantID          000000000147079
UserName            sebiba12
Password            sebiba12
MerchantGUID        28
InstalmentCount     0


form icerigi:
--------------------------
Array
(
    [hdnMode] => RESULT
    [ServiceUrl] => https://yonetim.ziraatbank.com.tr/IPOSMerchant_UserInterface/save_transaction.aspx
    [AmountMerchant] => 5550
    [AmountCode] => 949
    [MerchantID] => 000000000147079
    [UserName] => sebiba12
    [Password] => sebiba12
    [MerchantGUID] => 28
    [InstalmentCount] => 0
)

Giden POST mesaji:
----------------------------
&MerchantGUID=28&AmountMerchant=5550&AmountBank=5550&AmountCode=949&MerchantID=000000000147079&UserName=sebiba12&Password=sebiba12&InstalmentCount=0

Donen TrnxGUID degeri:
----------------------------
TrnxGUID:9f45ea63-981f-489b-972a-1504063b41b2

*/








$sendTrnxUrl = "https://yonetim.ziraatbank.com.tr/IposMerchant_UserInterface/SendTransaction.aspx?TransactionID=";

$sendTrnxUrl = $sendTrnxUrl . $TrnxGUID;

header('Location: ' . $sendTrnxUrl . '');



echo "<h3>redirect error!</h3>";

exit();


}
?>



[/code]

Bu dosyayı localhost da veya linux hosting de denediğimde
https://yonetim.ziraatbank.com.tr/IposMerchant_UserInterface/SendTransaction.aspx?TransactionID=
bu sayfaya yönlendirilip işlem numarası hatalı! uyarısını alıyorum.
sorun MerchantGUID ilemi alakalı acaba rasgele bir sayı yazıyorum bu sayı nedir.
Benim anladığım firmanın belirlediği bir sayı yani 1 bile olabilir.

birde

Donen TrnxGUID degeri:
----------------------------
TrnxGUID:9f45ea63-981f-489b-972a-1504063b41b2

dosyada böyle bir şey var. bu TrnxGUID değeri nedir bunu nasıl kullanacağız.
ben böyle bir ID değeri üretemedim. Yardımcı olursanız sevinirim.
 

misyoner

OpenCart-TR
Katılım
17 Ağu 2010
Mesajlar
4
Tepkime puanı
0
Puanları
0
Kusura bakmayın uzun zamandır buraya bakmıyordum. Sorun oldukça dönüyorum işte ne yaparsınız...

@Saytekin bey; çalıştığımız hosting'de curl desteği var. Olmasa bile library'sini eklemeniz yeterli. Bizde o vakit WHM panel üzerinden apache update üzerinden gitmiştik. Tabii compile işi bayağı vakit alıyor. Hosting sizde değilse ilgili firmaya sormanız lazım. Diğer türlü örnek olarak kullandığınız modül dosyasını parçalayıp, sayfa sayfa her bilgiyi post ettirmeniz lazım. Callback yapılacak sayfaları da Ziraat bankasına bildirmelisiniz.

Yazdığınız dosyalar bizde de mevcut. Bizdekilerde curl benzeri bir kullanımı olan SOAP'la gönderim işlemi yapılmış fakat sonuçta o dosyalar bence size işlemin işleyişine dair fikir verme amaçlı olarak gönderilmişler. Önceki mesajda verdiğim google docs menşeili döküman dosyası size işleyiş konusunda daha fazla yardımcı olacaktır zannımca.



Merchantguid'yi kendiniz yaratıyorsunuz ve bu bilgi sitenizdeki sipariş kaydına özel bir index numarası. Merchantguid'i siz sadece kendi siteniz üzerinde siparişi loglamak için(Yönetim panelinde siparişler kısmı) kullansanız bile Ziraat'a göndermek zorundasınız. Tüm banka tarafındaki bu siparişle alakalı işlemleri, transaction kaydını ilk sefer yaptıktan sonra size dönen transaction id ile yapabilirsiniz. Merchantguid'yi ise sadece o andaki tüm işlemler bittikten sonra, eski işlem sonucunu bankadan öğrenmek için kullanabiliyorsunuz.

TrnxGUID bilgisi transaction id'si ve bankanın transaction kaydı sonrası döndüğü bilgi. Bu bilgiyle ortak ödeme sayfasına bağlanabiliyor veya diğer gönderimleri yapabiliyorsunuz. TransactionID= parametresiyle bu bilgiyi transaction süresince iletişim kurarken bankaya gönderiyorsunuz. Yine yukarıda bahsettiğim dökümanda anlatım mevcut.
 

saytekin

OpenCart-TR
Katılım
25 Eyl 2010
Mesajlar
19
Tepkime puanı
0
Puanları
0
TransactionID= bunu hiç alamıyoruz

örnek olarak gönderdiği dosya : http://www.hepsimedikalmarket.com/eticaret/OrtakOdeme_iPosClient.php
buraya upload ettim ve bankadan verilen bilgiler ile test yapmaya çalıştım bu sayfadan değişiklik yaparak. veya hiç değişiklik yapmadan submit demeden önce direk olarak tarayıcıya gelen sayfa üzerinden değerleri girerek denedim ama olmuyor ziraat ortak ödeme sayfasına yönleniyor ve işlem numarası hatası şeklinde uyarı alıyorum ve TransactionID= boş olarak dönüyor.


Zaten bu httppos yöntemi ile yapıldığında Curl v.s. kullanmıyor hiç yani neden çalışmıyor çözemedim innova ve bankadakiler sorun yok diyorlarmış .. anlamadım...teşekkürler.
 
Üst