İnternette bu konu ile ilgili birçok kaynak bulusa da
Asp.Net ile ilgili çok az kaynağa rastlanıyor.
Epayment.dll kullanacağımız bu uygulamada çok fazla teknik konuya girmeden sanal pos'un asp.net üzerinde nasıl uygulandığına değinmeye çalışacağım. Yaptığımız örnek
epayment.dll kullandığı için birçok bankayla uyumlu çalışmaktadır.
Garanti bankası, Akbank, Citibank, Finansbank, HSBC ve İş Bankası bu sistemi kullandığından hepsinde sorunsuz olarak çalışıyor. Bankanızın dökümanlarında
epayment.dll i bulabilir ya da projenin çalışan halini download ederek içindeki dll i kullanabilirsiniz. İlk olarak
epayment.dll ilimizi projemize referans olarak ekleyerek işe başlayalım.
Daha sonra gerekli bilgileri alacağımız form tasarımımızı yaparak uygulamamıza giriş yapalım.
<form id="form1" runat="server">
<label id="lblSonuc" runat="server"></label>
<h2>Kredi kartı ödeme bilgileri</h2>
<p>
<label>Ödenecek miktar</label>
<asp:TextBox ID="kkmiktar" MaxLength="4" Columns="5" runat="server"></asp:TextBox>
<asp:DropDownList ID="kkcekim" runat="server">
<asp:ListItem Text="Tek çekim" Value="1"></asp:ListItem>
<asp:ListItem Text="6 taksit" Value="6"></asp:ListItem>
<asp:ListItem Text="12 taksit" Value="12"></asp:ListItem>
</asp:DropDownList>
</p>
<p>
<label>Kart sahibi</label>
<asp:TextBox ID="kksahip" Columns="50" runat="server"></asp:TextBox>
</p>
<p>
<label>Kart no / CVC no</label>
<asp:TextBox ID="kknum" MaxLength="16" Columns="20" runat="server"></asp:TextBox>
/
<asp:TextBox ID="kkcvc" MaxLength="3" Columns="4" runat="server"></asp:TextBox>
</p>
<p>
<label>Son kullanma tarihi>/label>
<asp:DropDownList ID="kkay" runat="server">
<asp:ListItem Text="1" Value="1"></asp:ListItem>
<asp:ListItem Text="2" Value="2"></asp:ListItem>
<asp:ListItem Text="3" Value="3"></asp:ListItem>
<asp:ListItem Text="4" Value="4"></asp:ListItem>
<asp:ListItem Text="5" Value="5"></asp:ListItem>
<asp:ListItem Text="6" Value="6"></asp:ListItem>
<asp:ListItem Text="7" Value="7"></asp:ListItem>
<asp:ListItem Text="8" Value="8"></asp:ListItem>
<asp:ListItem Text="9" Value="9"></asp:ListItem>
<asp:ListItem Text="10" Value="10"></asp:ListItem>
<asp:ListItem Text="11" Value="11"></asp:ListItem>
<asp:ListItem Text="12" Value="12"></asp:ListItem>
</asp:DropDownList>
/
<asp:DropDownList ID="kkyil" runat="server">
<asp:ListItem Text="2010" Value="2010"></asp:ListItem>
<asp:ListItem Text="2011" Value="2011"></asp:ListItem>
<asp:ListItem Text="2012" Value="2012"></asp:ListItem>
<asp:ListItem Text="2013" Value="2013"></asp:ListItem>
<asp:ListItem Text="2014" Value="2014"></asp:ListItem>
<asp:ListItem Text="2015" Value="2015"></asp:ListItem>
<asp:ListItem Text="2016" Value="2016"></asp:ListItem>
<asp:ListItem Text="2017" Value="2017"></asp:ListItem>
</asp:DropDownList>
</p>
<p>
<label> </label>
<asp:Button ID="kksubmit" Text="Ödeme yap" runat="server" />
</p>
</form>
Formumuzun görünümü şu şekilde oldu :
Bilgileri alacak kodlarımızı yazmaya başlayalım. Bu formdan gelecek bilgileri kontrol ettirmek vs. gibi işlemleri yapmadan basitçe anlatmaya çalışıyorum. Siz gelen bilgileri uygun formatta mutlaka kontrol edin.
Protected Sub kksubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles kksubmit.Click
Try
Dim mycc5pay As New ePayment.cc5payment()
mycc5pay.host = "ADRES" ' Verileri göndereceğimiz adres
mycc5pay.name = "KULLANICIADI" ' Bankadan verilen kullanıcı adı
mycc5pay.password = "PAROLA" ' Bankadan verilen parola
mycc5pay.clientid = "MAGAZAID" ' Bankadan verilen mağaza id
mycc5pay.orderresult = "0" ' 0 Gerçek işlem, 1 Test işlemi
mycc5pay.cardnumber = kknum.Text ' Kredi kartı numarası
mycc5pay.expmonth = kkay.Text ' Kredi kartı son kullanım ay
mycc5pay.expyear = kkyil.Text ' Kredi kartı son kullanım yıl
mycc5pay.cv2 = kkcvc.Text ' Kredi kartı CVC numarası
mycc5pay.currency = 949 ' TL için 949
mycc5pay.chargetype = "Auth"
mycc5pay.ip = Request.ServerVariables("REMOTE_ADDR") ' IP adresi
mycc5pay.subtotal = kkmiktar.Text ' Çekilecek tutar
If kkcekim.SelectedItem.Value = 6 Then ' 6 taksit seçilmişse
mycc5pay.taksit = "6"
ElseIf kkcekim.SelectedItem.Value = 12 Then ' 12 taksit seçilmişse
mycc5pay.taksit = "12"
End If
Dim bankaSonuc As String = mycc5pay.processorder() ' Fonksiyonumuzu çağırıyoruz
Dim bankaHata As String = mycc5pay.errmsg ' Geri dönen hata mesajı
Dim bankaOid As String = mycc5pay.oid ' Geri dönen order id
Dim bankaAppr As String = mycc5pay.appr ' Geri dönen işlem sonucu
Dim bankaProv As String = mycc5pay.code ' Geri dönen provizyon numarası
' Bankadan gelen sonuçları lblSonuc labelına yazdırıyoruz.
If bankaSonuc = "1" Then
If bankaAppr = "Approved" Then ' Ödeme işlemi tamam
lblSonuc.Text = "Ödeme işlemi başarıyla gerçekleşti"
ElseIf bankaAppr = "Declined" Then ' Ödeme işlemi reddedildi
lblSonuc.Text = "Ödeme işlemi banka tarafından reddedildi! : " & bankaHata & ""
Else
lblSonuc.Text = "Bir hata oluştu : " & bankaHata & ""
End If
Else
lblSonuc.Text = "Bankayla irtibat kurulamadı!"
End If
Catch ex As Exception
lblSonuc.Text = ex.Message
End Try
End Sub
Önemli notlar :
Kullanıcıdan alınan bilgileri mutlaka ama mutlaka kontrol edip gönderin.
Taksit parametresi bankayla anlaşma yaptıysanız çalışır aksi halde hata döndürür.
Test yaparken orderresult parametresini "1" olarak değiştirin.
Satış yapacağınız para birimine uygun kodu currency parametresine eşitleyin.
Form tasarımını basit tuttum ve ne yaptıysam yanlarına açıklamalarını yazdım. Formdaki bilgileri siz ister veritabanınızdan alın ister döngülerle çoğaltın. Başlangıç seviyesinde bilmeniz gereken şeyleri çok kafa karıştırmadan anlatmaya çalıştım. Sonraki yazılarımda gönderilen ekstra parametreleri ve diğer özellikleri anlatmaya çalışacağım.
Projenin çalışan halini buradan indirebilirsiniz