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