Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Webmaster Kaynaklari » ://www » php deki kodu asp de çalışırtırmak


Yanıt
 
LinkBack Seçenekler
Old 10.01.2008   #1 (permalink)
 
Üyelik Tarihi: 10.05.2005
Yer: konya
Yaş: 35
Mesaj: 44
php deki kodu asp de çalışırtırmak


bu kodu buldum bunu ASP de nasıl uyarlarım yani XML olarak nasıl post ederim
kod bilgim zayıf yardımcı olursanız sevinirim..?
PHP Code:

<?PHP

define 
('CURL_METHOD''LINUX'); // LINUX veya PHP
define ('TEST_ORTAMI''E'); // E veya H (E: Test sonuçlarının ekrana yazılması amacıyla)

if (TEST_ORTAMI == 'E') { // Bankadan dönen XML sonucu ekrana da yazdırmak için E seçelim
$apiname "aktest1"//API kullanıcı adı
$apipass "aktest1"//API kullanıcı şifresi
$apiclient "112345678"// Firma SanalaPOS ID

// $banka değişkeni ödeme sayfasından post edilerek hangi banka serverine daha gönderileceği belirlenir
// Tek banka ise buna gerek yok
if ($HTTP_POST_VARS["banka"] == "akbank") {
$gateway "https://www.sanalakpos.com/servlet/cc5ApiServer";
}
if (
$HTTP_POST_VARS["banka"] == "fortis") {
$gateway "https://vpos.est.com.tr/servlet/cc5ApiServer";
}
if (
$HTTP_POST_VARS["banka"] == "finansbank") {
$gateway "https://www.fbwebpos.com/servlet/cc5ApiServer";
}
if (
$HTTP_POST_VARS["banka"] == "garanti") {
$gateway "https://ccpos.garanti.com.tr/servlet/cc5ApiServer";
}
if (
$HTTP_POST_VARS["banka"] == "halkbank") {
$gateway "https://vpos.est.com.tr/servlet/cc5ApiServer";
}
if (
$HTTP_POST_VARS["banka"] == "isbank") {
$gateway "https://spos.isbank.com.tr/servlet/cc5ApiServer";
}
if (
$HTTP_POST_VARS["banka"] == "kocbank") {
$gateway "https://www.kocbankvpos.com/servlet/cc5ApiServer";
}

// Direk istediğimiz bankayı herhangi bir yerden post data almadan test etmek için aşağıdakilerden birini seç
$gateway "https://cc5test.est.com.tr/servlet/cc5ApiServer"//EST Test server
// $gateway = "https://www.fbwebpos.com/servlet/cc5ApiServer";
// $gateway = "https://ccpos.garanti.com.tr/servlet/cc5ApiServer"; // Garanti bank gerçek server

// Aşağıdaki kodlar test için elle girildi. Ama ödeme sayfasından post edilerek kullanıcak tabi gerçek uygulamada
// Gerçek uygulamada burası silinecek ve ödeme sayfasından post edilecek değişkenler kullanılacak...
$type "Auth"// Kart para çekme işlemi için Auth/PreAuth vs....
$oid "Ord-1232"; / Order_Id
$ip
=GetHostByName($REMOTE_ADDR);
$cardno "4242424242424242";
$expmonth "05";
$expyear "08";
$cv2 "001";
$total "10.05";
$taksit ""// Kaç taksit yapılacak
}

// Evet, aşağıdaki bankanın bizden beklediği XML veri formatı. Değişkenleri ödeme sayfasından post ediyoruz. (Burada yukarıdaki statik değerleri kullanıyoruz)
$request "DATA=<?XML version=\"1.0\" encoding=\"ISO-8859-9\"?>
<CC5Request>
<Name>$apiname</Name>
<Password>$apipass</Password>
<ClientId>$apiclient</ClientId>
<IPAddress>$ip</IPAddress>
<Email>$email</Email>
<Mode>P</Mode>
<OrderId>$oid</OrderId>
<GroupId></GroupId>
<TransId></TransId>
<UserId></UserId>
<Type>$type</Type>
<Number>$cardno</Number>
<Expires>$expmonth/$expyear</Expires>
<Cvv2Val>$cv2</Cvv2Val>
<Total>$total</Total>
<Currency>949</Currency>
<Taksit>$taksit</Taksit>
<BillTo>
<Name>$Bname</Name>
<Street1>$Baddr1</Street1>
<Street2>$Baddr2</Street2>
<Street3></Street3>
<City>$Bcity</City>
<StateProv></StateProv>
<PostalCode>$Bzip</PostalCode>
<Country>$Bcountry</Country>
<Company></Company>
<TelVoice>$phone</TelVoice>
</BillTo>
<ShipTo>
<Name>$userid</Name>
<Street1></Street1>
<Street2></Street2>
<Street3></Street3>
<City></City>
<StateProv></StateProv>
<PostalCode></PostalCode>
<Country></Country>
</ShipTo>
<Extra></Extra>
</CC5Request>
"
;

if (
CURL_METHOD == "LINUX") {
// linux cURL metodu - shell üzerinden curl çalıştırılır, biraz daha hızlıdır. Shell erişim hakkınız olmalı
$result = `curl -s -d '$request' $gateway`;
$sresult explode("\n",$result);

foreach (
$sresult as $da)
{
$i=strpos($da,">");
$j=strrpos($da,"<");
$x=strpos($da,"<");
$keysubstr($da,$x+1,$i-$x-1);
$valsubstr($da,$i+1,$j-$i-1);
$ret[$key]=$val;

if (
$key == "ProcReturnCode"$ProcReturnCode $val;
if (
$key == "AuthCode"$AuthCode $val;
if (
$key == "ErrMsg"$ErrMsg $val;
if (
$key == "HOSTMSG"$HOSTMSG $val;
}
}

else {
// PHP cURL metodu
$ch curl_init(); // initialize curl handle
curl_setopt($chCURLOPT_URL,$gateway); // set url to post to
curl_setopt($chCURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($chCURLOPT_TIMEOUT10); // times out after 4s
curl_setopt($chCURLOPT_POSTFIELDS$request); // add POST fields
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // Eğer SSL uyarısı alınıyorsa bunu açalım
$result curl_exec($ch); // run the whole process

if (curl_errno($ch)) print curl_error($ch);
else 
curl_close($ch);

$response_tag="Response";
$posf strpos $result, ("<" $response_tag ">") );
$posl strpos $result, ("</" $response_tag ">") ) ;
$Response substr $result$posf+strlen($response_tag)+$posl $posf strlen($response_tag)-) ;

$response_tag="OrderId";
$posf strpos $result, ("<" $response_tag ">") );
$posl strpos $result, ("</" $response_tag ">") ) ;
$OrderId substr $result$posf+strlen($response_tag)+$posl $posf strlen($response_tag)-) ;

$response_tag="AuthCode";
$posf strpos $result"<" $response_tag ">" );
$posl strpos $result"</" $response_tag ">" ) ;
$AuthCode substr $result$posf+strlen($response_tag)+$posl $posf strlen($response_tag)-) ;

$response_tag="ProcReturnCode";
$posf strpos $result"<" $response_tag ">" );
$posl strpos $result"</" $response_tag ">" ) ;
$ProcReturnCode substr $result$posf+strlen($response_tag)+$posl $posf strlen($response_tag)-) ;

$response_tag="ErrMsg";
$posf strpos $result"<" $response_tag ">" );
$posl strpos $result"</" $response_tag ">" ) ;
$ErrMsg substr $result$posf+strlen($response_tag)+$posl $posf strlen($response_tag)-) ;

$response_tag="HOSTMSG";
$posf strpos $result"<" $response_tag ">" );
$posl strpos $result"</" $response_tag ">" ) ;
$HOSTMSG substr $result$posf+strlen($response_tag)+$posl $posf strlen($response_tag)-) ;
}

// Bankadan dönen XML sonucu ekrana yazdırmak için
if (TEST_ORTAMI == 'E') {echo htmlspecialchars($result); exit();}

if (
$ProcReturnCode == "00") {
if (!
headers_sent($filename$linenum)) {
// Bankadan 00 başarılı kodu gelmişse artık işleme devam edebiliriz
header ("Location: checkout_process.PHP?auth_code=$AuthCode");
}
else { 
// Eğer header already sent by... uyarısı çıkıyorsa javaScriptle deneyelim
$isSSL $_SERVER['SERVER_PORT'] == '443' 'https' 'http';
$host strlen($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:$_SERVER['SERVER_NAME'];
echo 
'<script LANGUAGE="JavaScript">';
echo 
'window.location="'$isSSL .'://'.$host'/' 'checkout_process.PHP?auth_code='.$AuthCode.'";';
echo 
'// -->';
echo 
'</script>';
}
}

else { 
// Bankadan 00 başarılı kodu gelmmeişse gelen koda göre neymiş problem bir bakalım
switch ($ProcReturnCode) {
case 
"01"$msg "Kredi kartınız için bankanız provizyon talep etmektedir. İşlem sonuçlanmamıştır."; break;
case 
"02"$msg "Kredi kartınız için bankanız provizyon talep etmektedir. İşlem sonuçlanmamıştır."; break;
case 
"04"$msg "Bu kredi kartı ile alışveriş yapamazsınız. Başka bir kartla tekrar deneyiniz."; break;
case 
"05"$msg "İşlem onaylanmadı. Kredi kartınız ile işlem limitini aşmış olabilirsiniz. Bankanızı arayınız."; break;
case 
"09"$msg "Kredi kartınız yenilenmiştir. Yenilenmiş kartınız ile tekrar deneyiniz."; break;
case 
"10"$msg "İşlem onaylanmadı. Başka bir kredi kartı ile işlem yapmayı deneyiniz."; break;
case 
"14"$msg "Kredi kart numaranız hatalıdır. Kart bilgilerinizi kontrol edip tekrar deneyiniz."; break;
case 
"16"$msg "Kredi kartınızın bakiyesi yetersiz. Başka bir kredi kartı ile tekrar deneyiniz."; break;
case 
"30"$msg "Bankanıza ulaşılamadı. Tekrar denemenizi tavsiye ediyoruz."; break;
case 
"36"$msg "Kredi kartınız kayıp veya çalıntı olarak bildirilmiştir."; break;
case 
"41"$msg "Kredi kartınız kayıp veya çalıntı olarak bildirilmiştir."; break;
case 
"43"$msg "Kredi kartınız kayıp veya çalıntı olarak bildirilmiştir."; break;
case 
"51"$msg "Kredi kartınızın bakiyesi yetersiz. Başka bir kredi kartı ile tekrar deneyiniz."; break;
case 
"54"$msg "İşlem onaylanmadı. Kartınızı kontrol edip tekrar deneyiniz."; break;
case 
"57"$msg "İşlem onaylanmadı. Başka bir kredi kartı ile işlem yapmayı deneyiniz."; break;
case 
"58"$msg "Yetkisiz bir işlem yapıldı. Örn: Kredi kartınızın ait olduğu banka dışında bir bankadan taksitlendirme yapıyor olabilirsiniz. Başka bir kredi kartı ile işlem yapmayı deneyiniz."; break;
case 
"62"$msg "İşlem onaylanmadı. Başka bir kredi kartı ile işlem yapmayı deneyiniz."; break;
case 
"65"$msg "Kredi kartınızın günlük işlem limiti dolmuştur. Başka bir kredi kartı ile deneyiniz."; break;
case 
"77"$msg "İşlem onaylanmadı. Başka bir kredi kartı ile işlem yapmayı deneyiniz."; break;
case 
"82"$msg "İşlem onaylanmadı. Kart bilgilerinizi kontrol edip tekrar deneyiniz."; break;
case 
"91"$msg "Bankanıza ulaşılamıyor. Başka bir kredi kartı ile tekrar deneyiniz."; break;
default: 
$msg 'Bir hata oluştu (Hata Kodu:'.$ProcReturnCode.') Tekrar deneyiniz. sorun devam ederse lütfen bizimle temasa geçiniz.'; break;
}
if (!
headers_sent($filename$linenum)) {
// Problem $msg değişkenine atandı. Bunu bir ekranda gösterelim ve işleme baştan başlayalım olayı burada
header ("Location: checkout_payment.PHP?payment_error=creditcard&error=$msg"); // Buraya yönlenecek sayfa belirtilir
}
else { 
// Eğer header already sent by... uyarısı çıkıyorsa javaScriptle deneyelim birde
$isSSL $_SERVER['SERVER_PORT'] == '443' 'https' 'http';
$host strlen($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:$_SERVER['SERVER_NAME'];
echo 
'<script LANGUAGE="JavaScript">';
echo 
'window.location="'$isSSL .'://'.$host'/' 'checkout_payment.PHP?payment_error=creditcard&error='.$msg.'";';
echo 
'// -->';
echo 
'</script>';
}
}
?>
akgun şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Sponsorlu Bağlantılar
Zoque.Forum
Reklam
Yanıt

Etiketler

asp , php , sanalpos , xml



 
Zoque'a hoşgeldiniz!
Zoque 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. "Az ama Öz" sloganından yola çıkarak, kaliteli ve nitelikli katılımı temel alır.

Saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [ » ]


Üye Girişi:

UslanmaM baktabul.com TEKplatform TEKplatform

En popüler ilk 100 etiket
Tag Cloud
acil adsl ajax almak arama araniyor ariyorum ariyoruz asp bilen bilgi bilgisayar blog calisma canon css dijital div domain dosya eleman film firefox flash font form forum fotograf freelance google gore grafik grafiker hakkinda hangi hata hatasi hosting html ilgili ilk image internet istanbul istiyorum java javascript karakter kayit kisisel kullanimi link logo mac mail menu muzik mysql nasil neden nedir online photoshop php problemi program programi reklam resim satilik sayfa script server ses sistemi site sitesi son soru sorun sorunsali sorunu sql swf tasarim tasarimci tasarimcisi tasarimi turk turkce veri video web windows wordpress xml yardim yazi yeni zoque
Zoque RSS Aboneliği
Son eklenen konuları e-posta ile haber verelim mi?

Forum Yazılımı: vBulletin® Version 3.7.3 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

Arayüz/Skin "Güneş" © www.zoque.com / net. Copyright © 1999 - 2008
Forum Saati GMT +2. Şu anda saat: 03:52.