E-ticaret siteleri için güvenli ödeme işlemleri sağlamak, satışların kesintisiz ve güvenli bir şekilde gerçekleşmesi açısından oldukça önemlidir. Sanal POS entegrasyonu, ödeme süreçlerini hızlandırarak, müşterilerin kredi kartı ve banka kartı ile online alışveriş yapmasına olanak tanır. Nestpay 3D Pay modeli, güvenli ödeme sistemlerinin en yaygın kullanılan modellerindendir. Aşağıda PHP ve .NET dilleriyle sanal POS entegrasyonunu örnek kodlarla birlikte inceleyeceğiz.
1. Nestpay 3D Pay Entegrasyon Adımları
Entegrasyon, üye iş yeri ve Nestpay ödeme geçidi arasındaki iletişimin kurulmasıyla başlar. Nestpay, HTTPS POST yöntemi ile ödeme bilgilerini alır ve işleyerek sonucu geri döner. Kullanıcının 3D doğrulama adımları, bankası tarafından gerçekleştirilir.
Zorunlu Parametreler:
clientid
: Üye iş yeri numarası.amount
: İşlem tutarı.oid
: Sipariş numarası.okUrl
: Başarılı işlem sonrası yönlendirme.failUrl
: Başarısız işlem sonrası yönlendirme.hash
: Güvenlik için doğrulama verisi.rnd
: Rastgele üretilen string (güvenlik amacıyla).
2. PHP İle Sanal POS Entegrasyonu
PHP tabanlı sistemlerde Payten veya Nestpay gibi ödeme geçitlerini entegre etmek oldukça basittir. İşte temel bir PHP kod örneği:
<?php
$clientId = "XXXXXXXX"; // Üye iş yeri numarası
$amount = "9.95"; // İşlem tutarı
$oid = ""; // Sipariş Numarası
$okUrl = "https://example.com/success.php"; // Başarılı işlem URL
$failUrl = "https://example.com/fail.php"; // Başarısız işlem URL
$rnd = microtime(); // Rastgele string
$islemtipi="Auth"; // İşlem tipi
$storekey = "xxxxxx"; // Mağaza anahtarı
$hashstr = $clientId . $oid . $amount . $okUrl . $failUrl . $islemtipi . $rnd . $storekey;
$hash = base64_encode(pack('H*', sha1($hashstr))); // Hash oluşturma
?>
<form method="post" action="https://nestpay.com/fim/est3dgate">
<input type="hidden" name="clientid" value="<?php echo $clientId; ?>" />
<input type="hidden" name="amount" value="<?php echo $amount; ?>" />
<input type="hidden" name="oid" value="<?php echo $oid; ?>" />
<input type="hidden" name="okUrl" value="<?php echo $okUrl; ?>" />
<input type="hidden" name="failUrl" value="<?php echo $failUrl; ?>" />
<input type="hidden" name="rnd" value="<?php echo $rnd; ?>" />
<input type="hidden" name="hash" value="<?php echo $hash; ?>" />
<input type="hidden" name="islemtipi" value="<?php echo $islemtipi; ?>" />
<input type="submit" value="Ödemeyi Tamamla" />
</form>
Bu kod, ödeme formunu oluşturur ve form gönderildiğinde işlem Nestpay sunucularına gönderilir. İşlem sonuçları, okUrl veya failUrl adreslerine yönlendirilir.
3. .NET İle Sanal POS Entegrasyonu
.NET platformunda benzer bir mantıkla Nestpay’e istek gönderilebilir. Aşağıda .NET ile örnek bir kod verilmiştir:
using System;
using System.Security.Cryptography;
using System.Text;
using System.Web.UI;
public partial class _3DPayment : Page
{
protected void Page_Load(object sender, EventArgs e)
{
string clientId = "XXXXXXXX";
string amount = "9.95";
string oid = "";
string okUrl = "https://example.com/success";
string failUrl = "https://example.com/fail";
string rnd = DateTime.Now.ToString();
string islemtipi = "Auth";
string storekey = "xxxxxx";
string hashstr = clientId + oid + amount + okUrl + failUrl + islemtipi + rnd + storekey;
SHA1 sha = new SHA1CryptoServiceProvider();
byte[] hashbytes = Encoding.GetEncoding("ISO-8859-9").GetBytes(hashstr);
byte[] inputbytes = sha.ComputeHash(hashbytes);
string hash = Convert.ToBase64String(inputbytes);
Response.Write("<form method='post' action='https://nestpay.com/fim/est3dgate'>");
Response.Write("<input type='hidden' name='clientid' value='" + clientId + "'>");
Response.Write("<input type='hidden' name='amount' value='" + amount + "'>");
Response.Write("<input type='hidden' name='oid' value='" + oid + "'>");
Response.Write("<input type='hidden' name='okUrl' value='" + okUrl + "'>");
Response.Write("<input type='hidden' name='failUrl' value='" + failUrl + "'>");
Response.Write("<input type='hidden' name='rnd' value='" + rnd + "'>");
Response.Write("<input type='hidden' name='hash' value='" + hash + "'>");
Response.Write("<input type='submit' value='Ödemeyi Tamamla'>");
Response.Write("</form>");
}
}
Bu örnekte de hash değeri hesaplanarak, ödeme isteği Nestpay’e gönderiliyor. Başarılı ya da başarısız işlem sonucunda kullanıcı belirtilen sayfalara yönlendiriliyor.
4. 3D Doğrulama Süreci
Payten’in sunduğu 3D Pay modeli, kart bilgilerinin müşteri doğrulaması yapılmadan üye iş yerine iletilmemesini sağlar. Bu sayede güvenlik en üst seviyede tutulur. mdStatus parametresiyle işlem başarılı olduğunda 1-4 arasında bir değer döner.
Sonuç
Sanal POS entegrasyonu, güvenli ve hızlı ödeme süreçleri sunarak e-ticaret sitelerinin temel ihtiyaçlarından birini karşılar. PHP ve .NET gibi popüler dillerde entegre etmek için Payten’in sunduğu API’ler oldukça kullanıcı dostudur. Güvenli ödeme işlemlerini sağlamak için entegrasyon adımlarını doğru şekilde izleyerek, müşteri memnuniyetini ve satışları artırabilirsiniz.