in Eski Blog Yazılarım

PayPal Instant Payment Notification Scripti

PayPal ile bir ödeme sisteminin ana Fonksiyonu çok bir şey yazmak istemiyom aşağıdaki kodu ve dökümanı inceleyin.

SUB PayPalKontrol()
	Dim PostString,HTTPDurumu,OdemeDurumu
	Dim Item_name, Item_number, Payment_status, Payment_amount
	Dim objHttp,Txn_id, Receiver_email, Payer_email
	
	if (Request.ServerVariables("REQUEST_METHOD") <> "POST") Then

	Else		
		'// PAYAPL'den postlanan veri alınıyor ve arkasına cmd=_notify-validate ekleniyor
		'// Bu özellik sistemden bize VARIFIED veya INVALID mesajının dönmesini sağlıyor.
		
		PostString = Request.Form & "&cmd=_notify-validate"
		
		'// PAYPAL'dan gelen form objeleri tekrar PAYPAL'a postlanıyor.
		set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
		objHttp.open "POST", "https://www.paypal.com/cgi-bin/webscr", false
		objHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
		objHttp.Send PostString	
		
		'// PAYPAL sitesinden dönen httpdurum kodu
		HTTPDurumu	= objHttp.status
		
		'// PAYPAL sitesinden gönen HTTPtext VALIDATE yada INVALID döner.
		OdemeDurumu = objHttp.responseText				
		set objHttp = nothing
			
		Item_name = Request.Form("item_name")
		Item_number = Request.Form("item_number")
		Payment_status = Request.Form("payment_status")
		
		Payment_amount = Request.Form("mc_gross")
		Payment_Fee	   = Request.Form("payment_fee")
			
		Payment_currency = Request.Form("mc_currency")
		Txn_id = Request.Form("txn_id")
		Receiver_email = Request.Form("receiver_email")
		Payer_email = Request.Form("payer_email")

		'// Gerçek ödemeden PAYPAL'ın kestiği ödemeyi çıkartıp bize kalan parayı buluyoruz.
		'// Çıkarmanın doğru olması için baya çaba sarfettim :)
		NetOdeme	= cdbl(Replace(cStr(Payment_amount),".",","))
		Komisyon	= cdbl(Replace(cStr(Payment_Fee),".",","))
		Miktar		= NetOdeme - Komisyon

		'// Yukardaki elde edilen değerlere göre Koşullar işletiliyor.
		if ( INT(HTTPDurumu) <> 200 ) Then '// Veriler başarılı POST'landı ise 200 httpkodu döner

				
		Elseif (OdemeDurumu = "VERIFIED") Then '// PayPal ödemesinde bir sorun yoksa VERIFIED durumu döner.

		Elseif (OdemeDurumu = "INVALID") Then '// PayPal ödemesinde bir uyuşmazlık varsa INVALID döner.
			  	 
		Else

		End if
	End if
END SUB

PP_OrderManagement_IntegrationGuide.pdf

Yorum Bırak

Comment