WooCommerce PayU Compay Eklentisi

ComPay Nedir ?

ComPay’in ne olduğunu ve nasıl çalıştığını kısaca anlatmak gerekirse; ComPay online alışverişlerinizi internet bankacılığı üzerinden gerçekleştirmenizi sağlayan bir ödeme yöntemi. PayU, ComPay ile yaptığı işbirliği ile ComPay’i entegre etti ve PayU üye işyerlerine bu hizmeti sunmaya başladı. Konuyla ilgili yazıya buradan ulaşabilirsiniz.

WooCommerce PayU ComPay Eklentisi Nasıl Çalışıyor ?

Müşterileriniz ödeme adımında “İnternet bancılığı ile ödeme” ya da “ComPay ile öde” seçeneğini işaretliyor.

payu-compay

Kullanıcı, bir sonraki adımda kullanacağı internet şubesini seçeceği, ComPay sayfasına yönlendirilir. Şu an için PayU kullanıcıları sadece “Akbank Direkt” internet şubesi ile işlem yapabilmektedir. ComPay diğer bankaların internet bankacılığı uygulamalarınında aktif edilmesi için gerekli çalışmalara devam etmektedir.

Kullanıcı “Akbank Direkt” seçeneğini işaretleyip, ComPay ile öde” butonuna tıkladığında gerekli güvenlik doğrulaması ve şifre işlemleri için Akbank sayfasına yönlendirilir.

Sonraki adımda, kullanıcı hesap bilgileri seçimi ve işlemi onayla adımlarını tamamlayarak ödemeyi gerçekleştirmiş olur. İlgili tutar, kullanıcının banka hesabından tahsil edilmiş olur.

Neden WooCommerce PayU ComPay Eklentisini Kullanmalıyım ?

  • Kredi kartı ile ödeme yapmak istemeyen müşterilerinize alternatif bir ödeme yöntemi sunabilirsiniz.
  • ComPay üyelik gerektirmediği için hızlı ve pratiktir.
  • Alıcı adı, IBAN vs bilgiler girmeniz gerekmez.
  • Zaman kısıtlaması olmadan 7/24 kullanılabilmektedir.

Eklenti, standart wordpress kurulum ekranından hızlıca kurulabilmektedir. PayU üye işyeri bilgilerinizi girerek eklentiyi aktif edebilirsiniz. Kurulum öncesinde PayU ile iletişime geçerek ComPay ile ödeme yönteminden yararlanmak istediğinizi belirterek, bu ödeme metodunu aktif ettiriniz.

Dilerseniz eklentiyi aşağıdaki demo mağazadan test edebilirsiniz.

http://serkanyildirim.com.tr/shop/

Ayrıca, eklentiyi temin etmek ve eklenti ile ilgili tüm sorularınız için aşağıdaki bağlantıda yer alan iletişim formunda bana ulaşabilirsiniz.

İletişim Formu

 

 

 

 

 

WooCommerce PayU Havale ile Ödeme Eklentisi

PayU üye işyeri iseniz, havale ile ödeme seçeneği için de PayU’nun “Wire Transfer”  “Havale İle Ödeme” servisinden faydalanabilirsiniz.

Her ne kadar kredi kartı kullanıcısı sayısı artmış olsa da, online alışverişlerde havale ile ödemeyi tercih eden kullanıcı sayısı azımsanmayacak sayıda.

Havale ile ödeme sisteminde yaşanan başlıca sorunlardan biri de ödemelerin takip edilmesi süreci. Kullanıcı havale ile ödeme yaptığında, işlem eğer birden fazla banka ile çalışıyor iseniz, tüm bankaları tek tek kontrol etmeniz ve ödemenin hesabınıza düşüp düşmediğini kontrol etmeniz gerekebilir. Sonrasında ise ödeme hesaba düşmüş ise bu sefer ilgili siparişi kendi site panelinizde manuel olarak onaylamanız gerekmektedir.

Kısaca havale ile ödeme almak, ilave bir operasyon ve manuel iş yükü getirebilir.

PayU Havale İle Ödeme (Wire Transfer) Servisi Nasıl İşliyor ?

  • Kullanıclar, ödeme sayfasında havale ile ödeme seçeneğini seçer ve ilgili tutarı, referans numarası belirterek PayU’ nun banka hesaplarından birine transfer eder.
  • PayU, bu transferi onaylar ve iş yeri paneline siparişi yansıtır.Aynı zamanda IPN servisi ile de iş yeri tarafına bildirim yapar.
  • PayU, işyerine belirlenen takvime göre ödemeyi yapar.
  • Siparişin iptal ya da iade edilmesi durumunda üye işyeri iadeyi PayU kontrol panelinden yapar ve PayU ilgili tutarı müşterinin hesabına iade eder.

WooCommerce PayU Havale İle Ödeme (Wire Transfer) Eklentisi

Hazırlamış olduğum “WooCommerce PayU Havale İle Ödeme Eklentisi” ile woocommerce siteniz üzerinden PayU’nun bu servisini hızlıca kullanmaya başlayabilirsiniz.

payu-havale-ile-odeme

Eklenti kurulumu, standart wordpress eklenti yükleme arayüzünden yapılabilmektedir. PayU üye işyeri bilgilerini girdiğinizde Havale ile ödeme eklentisini web sitenize eklemiş olacaksınız. Müşteriniz ödeme adımında Havale ile ödeme seçeneğini işaretlediğinde bir sonraki sayfada işlem referans numarası ve ilgili banka detaylarına (Banka adı, IBAN) bilgilerine ulaşacaktır.

payu-havale-ile-odeme

Neden WooCommerce PayU Havale İle Ödeme Eklentisini Kullanmalıyım ?

  • Havale işlemlerinini manuel işlem yükünden kurtularak bu ödemelerinde PayU aracılığı ile alınmasını sağlayabilirsiniz.
  • IPN servisi sayesinde ödeme PayU tarafından onaylandığı anda, aynı zamanda siteniz tarafında da onaylanmasını sağlayabilirsiniz.
  • Sadece kredi kartı değil, tüm ödemelerinizi tek panelden (PayU Kontrol Paneli) takip edebilirsiniz.
  • PayU’nun birçok bankada bulunan hesapları sayesinde, müşteriniz para transferi sırasında ilave masraflarla karşılaşmaz.

Dilerseniz eklentiyi aşağıdaki demo mağazadan test edebilirsiniz.

http://serkanyildirim.com.tr/shop/

Ayrıca, eklentiyi temin etmek ve eklenti ile ilgili tüm sorularınız için aşağıdaki bağlantıda yer alan iletişim formunda bana ulaşabilirsiniz.

İletişim Formu

 

 

 

 

WooCommerce PayU BKM Express Eklentisi

PayU BKM Express

PayU BKM Express eklentisinden önce, BKM Express’in ne olduğu hakkında bir fikri olmayanlar için, sanırım öncelikle BKM Express in ne olduğu ile ilgili bilgi vererek yazıya başlamak daha uygun olacaktır.

BKM Express Nedir ?

BKM Express online alışverişlerde kart bilgisi girmeden, alışveriş yaptığınız siteye kart bilgilerini vermeden ve aynı zamanda kartınızı yanınızda taşımanıza gerek kalmadan güvenli ve hızlı bir şekilde ödeme yapmanıza imkan sağlayan ücretsiz bir ödeme sistemi (dijital cüzdan) uygulamasıdır.

BKM Express ile ilgili daha detaylı bilgiye resmi web sitesinden ulaşabilirsiniz.

https://bkmexpress.com.tr/

WooCommerce PayU BKM Express Eklentisi

PayU BKM Express ile yaptığı işbirliği ile BKM Express ödeme yöntemini sistemine entegre etti. Bu şekilde PayU üye işyerleri aynı zamanda BKM Express ile ödeme alabilme imkanına kavuştular.

Hazırlamış olduğum WooCommerce PayU BKM Express Eklentisi, woocommerce sistemini kullanan PayU üye işyerlerine hızlıca bu ödeme yöntemini web sitelerine ekleme imkanı sağlamaktadır.

PayU BKM Express

Eklenti kurulumu, standart wordpress eklenti yükleme arayüzünden yapılabilmektedir. PayU üye işyeri bilgilerini girdiğinizde BKM Express ile ödeme eklentisini web sitenize eklemiş olacaksınız. Müşteriniz ödeme adımında BKM Express ile ödeme seçeneğini işaretlediğinde direk olarak BKM Express login sayfasına yönlendirilecek ve ödemeyi gerçekleştirebilecektir.

bkm express login

Neden WooCommerce PayU BKM Express Eklentisini Kullanmalıyım ?

  • İnternetten alışverişe soğuk bakan birçok kişinin en büyük endişelerinden biri, “Acaba kredi kartı bilgilerim çalınır mı? ” korkusu. BKM Express ile ödeme yöntemi işte tam bu noktada devreye giriyor. Bu şekilde kredi kartı bilgilerini verme korkusu yaşayan müşterileriniz için BKM Express ile ödeme yöntemini sunabilirsiniz.
  • BKM Express’in düzenli olarak yaptığı kampanyalar sayesinde satış dönüşüm oranlarınızı artırabilirsiniz.
  • BKM Express kullanıcıları bu ödeme yöntemi ile yaptıkları işlemde ilave bir masraf ödemezler.

Dilerseniz eklentiyi aşağıdaki demo mağazadan test edebilirsiniz.

http://serkanyildirim.com.tr/shop/

Ayrıca, eklentiyi temin etmek ve eklenti ile ilgili tüm sorularınız için aşağıdaki bağlantıda yer alan iletişim formunda bana ulaşabilirsiniz.

İletişim Formu

 

 

 

PayU BIN API Kullanımı

Uzun zamandır bloğumda bir şeyler yazmaya vakit bulamamıştım. Bu yazımda kullanıcılardan gelen talepler doğrultusunda PayU card info yani PayU BIN API kullanılarak kredi kartı sorgulama işlemini anlatacağım.

BIN numarası bildiğiniz üzere kredi kartı numarasının ilk 6 hanesini teşkil eder. Aşağıda sorgu için oluşturacağımız örnek php kodunu paylaşıyorum.

<?php
$URL =”https://secure.payu.com.tr/api/card-info/v1/”;
$MERCHANT = “OPU_TEST”; //İşyeri entegrasyon ismi yazılacak
$SECRET = “SECRET_KEY”;//Kodlama anahtarı yazılacak
$TIMESTAMP = time();
$BIN = “454360”;
$sig = hash_hmac(‘sha256’, $MERCHANT . $TIMESTAMP, $SECRET);
$urlReqest =$URL.$BIN.”?merchant=”.$MERCHANT.”&timestamp=”.$TIMESTAMP.”&signature=”.$sig;
$json = file_get_contents($urlReqest);
var_dump($json);
?>

PayU BIN sorgu API’si için oluşturacağımız isteği GET metodunu kullanarak, “https://secure.payu.com.tr/api/card-info/v1/” adresine yapmamız gerekiyor. Oluşturduğumuz query string ($urlReqest) sırasıyla URL,BIN,merchant,timestamp ve signature alanlarından oluşuyor.

İmza alanını ($sig ) oluştururken $MERCHANT . $TIMESTAMP parametrelerini birleştirerek yukarıdaki örnekte görüldüğü üzere, hash_hmac  fonksiyonunu ile ‘sha256’ olarak şifreliyoruz.

Eğer herşeyi doğru olarak gerçekleştirdi iseniz, aşağıdaki gibi bir url elde etmiş olmanız gerekiyor.

https://secure.payu.com.tr/api/card-info/v1/454360?merchant=OPU_TEST×tamp=1481359374&signature=496cd7484f74c1c3e321ca328a093183fb757b30188860011c8aec31ea408884

Aşağıdaki iki satır oluşturduğumuz isteğin cevabını bize getirmektedir. Dönen response bilgisi JSON formatındadır. Artık json ile gelen veriyi decode edebilir ve dilediğiniz şekilde parse ederek sorgulamış olduğunuz bin numarası ile ilgili detaylara ulaşabilirsiniz.

$json = file_get_contents($urlReqest);
var_dump($json);

Örnek response bilgisi aşağıdaki gibi olacaktır.

payu-bin-api

PayU BIN API nerelerde kullanılabilir ?

PayU BIN API’yi web sitenizde örneğin taksit seçeneklerinin kullanıcıya gösterilmesi, kredi kartı formunun daha görsel hale getirilmesi (kart tipi, banka bilgisinin ) işlem sırasında anlık olarak kullanıcıya gösterilmesi gibi işlemler için kullanabilirsiniz.

 

WooCommerce PayU Site İçi Ödeme (Alu) Eklentisi Yeni Versiyon

payu-resmi-woocommerce-eklentisi

woocommerce-payu

 

E-ticarete atılmayı düşünen ya da halihazırda PayU ile çalışan işletmelere, sonunda müjdeli haberi veriyorum. Uzun bir çalışma sonucunda hazırlayıp sizlere sunduğum WooCommerce PayU  Eklentisi artık hazır.

Yaklaşık 3.5 yıllık PayU kariyerim boyunca elde etmiş olduğum tüm birikimleri bu eklentide kullanmak için çaba sarf ettim. Sonuç olarak, bu konuda mütevazi olma hususunu bir kenara bırakarak şunu belirtmek isterim ki;

Piyasadaki en iyi, en stabil ve aynı zamanda en kullanışlı woocommerce PayU eklentisi ortaya çıktı. Hatta diğer açık kaynak kod sistemleri de bu kıyaslamaya dahil edebilirim. Benzer şekilde puan kullanımı, BIN apisi, IPN, taksit apisi gibi bütün servisleri bir arada barındıran bir eklenti bulunmuyor.

Neden WooCommerce PayU Site İçi Ödeme Eklentisini Tercih Etmeliyim ?

Eklenti, birçok eklentide bulunmayan PayU’nun katma değerli servislerini desteklemektedir. Bunları kısaca özetlemem gerekirse;

  • Eklenti site içi ödeme destekler. Müşterileriniz ödeme sırasında siteden çıkarak başka bir sayfaya yönlendirilmez.
  • Tek sayfada hem fatura ve teslimat bilgileri hemde kredi kartı bilgileri girilerek ödeme gerçekleştirilir. Müşterileriniz o sayfadan o sayfaya yönlendirilmez. Bu alışveriş dönüşüm oranını artıracaktır. Zira uzayan işlem adımları müşterilerin sipariş vermekten vazgeçmesine neden olmaktadır.
  • Eklenti,  IPN servisini destekler. Bu şekilde web siteniz ile PayU arasında minimum mutabakat sorunu yaşarsınız.
  • Puan kullanımı apisini destekler. Müşterileriniz alışverişlerinde kredi kartında biriken puanlarını kullanabilir.

payu_woocommerce_puan_kullanimi

  • Taksit ve BIN apisini destekler. Bu şekilde işlem sırasında girilen kredi kartı numarası kontrol edilerek uygun taksit seçenekleri gösterilir. Taksit yapılamayan bir kart, örneğin banka kartı ile işlem yapıldığında tek çekim seçeneği görüntülenir. Böylelikle müşterilerin hatalı işlem yapması önlenmiş olur. Ayrıca taksitli işlemlerde uygulanacak vade farkı oranlarını da PayU’dan otomatik getirerek tüm taksitli işlem tutarlarını hesaplayarak müşteriye sunar. Sizin manuel olarak tek tek oran girmeniz gerekmez. Zira bu noktada yapılan hatalar nedeniyle birçok firmanın maddi kayba uğradığını söyleyebilirim. Eklenti sizi bu riskten korumaktadır.
  • WooCommerce PayU site içi ödeme eklentisi, olası hatalı işlemlerde alınan hata kodları ile ilgili müşteriye ve size Türkçe açıklamalar sunar. Site yönetici paneline bu işlemlere ait log kayıtlarını atarak, “Acaba bu işlem neden başarısız olmuş?” gibi kafa karışıklığı yaratacak durumlardan sizi korur.

Eklenti kurulumu ise çok kolay, sadece 3 dakika içinde eklentiyi kurarak sistemi ödeme için hazır hale getiriyorsunuz.

Ayrıca,  eklentiyi  buradan  test edebilirsiniz.

Eklentiyi temin etmek ve eklenti ile ilgili tüm sorularınız için,

İletişim formu sayfasından bana ulaşabilirsiniz.

 

PayU Alu Entegrasyonu Puan Kullanımı

Bir önceki yazımda, PayU entegrasyonunda Loyalty points api kullanarak nasıl kredi kartı puanlarının kullanılabileceğini paylaşmıştım. Bu makalede ise puan sorgulama sonucu başarılı ise, yani kredi kartında puan bulunuyor ise, puan kullanma isteğini nasıl göndereceğimizi paylaşacağım.

Öncelikle, puan kullanabilmek için alu entegrasyonu yapmış olmanız gerekmektedir. Sonrasında yapmamız gereken çok fazla bir işlem yok aslında. PayU’ ya göndermiş olduğumuz alu requestine USE_LOYALTY_POINTS=YES parametresini ilave etmemiz gerekiyor.

Aşağıda örnek bir request paylaşıyorum. Parametreyi ilave ettikten sonra, son durumda tüm parametrelerin alfabetik olarak sıralanmış olduğuna dikkat ediniz.

BACK_REF=>http://localhost/odeme2/odeme/3ds_return.php
BILL_ADDRESS=>Billing address
BILL_ADDRESS2=>Billing address
BILL_CITY=>City
BILL_COUNTRYCODE=>TR
BILL_EMAIL=>deneme@payu.com.tr
BILL_FAX=>4543958674234
BILL_FNAME=>Serkan
BILL_LNAME=>Yıldırım
BILL_PHONE=>-
BILL_STATE=>State / Dept.
BILL_ZIPCODE=>12345234
CC_CVV=>***
CC_NUMBER=>435508**********
CC_OWNER=>TEST
CLIENT_IP=>127.0.0.1
DELIVERY_ADDRESS=>Delivery Address
DELIVERY_ADDRESS2=>Delivery Address
DELIVERY_CITY=>City
DELIVERY_COMPANY=>Company Name
DELIVERY_COUNTRYCODE=>TR
DELIVERY_EMAIL=>deneme@payu.com.tr
DELIVERY_FNAME=>Yıldırım
DELIVERY_LNAME=>Serkan
DELIVERY_PHONE=>454395867
DELIVERY_STATE=>State / Dept.
DELIVERY_ZIPCODE=>12345
EXP_MONTH=>12
EXP_YEAR=>2018
LANGUAGE=>TR
MERCHANT=>OPU_TEST
ORDER_DATE=>2015-12-17 08:07:32
ORDER_PCODE[0]=>T234435
ORDER_PINFO[0]=>Ürün bilgisi 1
ORDER_PNAME[0]=>Ürün1
ORDER_PRICE[0]=>20
ORDER_QTY[0]=>1
ORDER_REF=>4030
ORDER_VAT[0]=>0
PAY_METHOD=>CCVISAMC
PRICES_CURRENCY=>TRY
SELECTED_INSTALLMENTS_NUMBER=>1
USE_LOYALTY_POINTS=>YES

Buraya kadar her şeyin tamam olduğunu düşünüyorum. Peki kısmi puan kullanımı nasıl gerçekleştirilecek ?

Öncelikle kısmi puan kullanımı özelliği tüm bankalar tarafından desteklenmiyor. Yapı Kredi Bankası, Garanti ve Akbank tarafında şuan için kısmi puan kullanımı özelliği desteklenmektedir.

PayU tarafında kısmi puan kullanım isteği göndermek için, USE_LOYALTY_POINTS parametresine ilave olarak LOYALTY_POINTS_AMOUNT parametresini de requeste dahil etmeniz gerekmektedir.

Kartınızda 10 TL puan olduğunu düşünelim. 5 TL puan ile ödensin istiyor iseniz;  LOYALTY_POINTS_AMOUNT=5 olarak göndermeniz yeterli olacaktır.

PayU Puan Kullanımı ( Loyalty Points API ) Entegrasyonu

Bildiğiniz üzere bankalar, her ne kadar isimleri farklı da olsa (Bonus,Chip Para,Paraf Puan,Para Puan vb) müşterilerine kredi kartı alışverişlerinden puan kazandırmaktadır. Buraya kadar her şey güzel. Ancak bana göre asıl mesele puan kazanabilmek değil, kazandığın bu puanları bir yerlerde bir şekilde kullanabilmektir 🙂
PayU, üye işyerlerine bu konuda da bir çözüm sunuyor. PayU’nun geliştirmiş olduğu puan sorgu apisi ile, müşterilerinizin kredi kartlarında bulunan puan miktarını sorgulayabilir ve aynı zamanda bu puanları alışverişlerinde kullanabilmelerine olanak sağlayabilirsiniz.

Bu yazımda sadece puan sorgulama kısmına ve bu işlemin nasıl yapılacağına değineceğim.

Dilerseniz şimdi bu sorgulamanın nasıl yapılacağını php programlama dili ile bir örnek ile açıklayalım.

Öncelikle, puan sorgulama işlemi için aşağıdaki url’ye istek yapacağız. Yapacağımız bu istek, HTTP(s) POST metodu ile olmalıdır.

“https://secure.payu.com.tr/api/loyalty-points/check”

Göndermemiz gereken parametreler aşağıdaki gibidir;

<?php

$apiEndPoint = ‘https://secure.payu.com.tr/api/loyalty-points/check’;

$data = array(

‘MERCHANT’ => ‘OPU_TEST’,
‘CC_NUMBER’ => ‘4355084355084358’,
‘EXP_MONTH’ => ’12’,
‘EXP_YEAR’ => ‘2018’,
‘CC_CVV’ => ‘000’,
‘CURRENCY’ => ‘TRY’,
‘DATE’ => gmdate(‘Y-m-d H:i:s’),
);
ksort($data);

$hashString = ”;

foreach ($data as $currentData) {
$hashString .= strlen(stripslashes($currentData));
$hashString .= stripslashes($currentData);
}
echo $hashString;
$data[‘HASH’] = hash_hmac(‘MD5′,$hashString,’SECRET_KEY’);

$handler = curl_init();
curl_setopt($handler, CURLOPT_CONNECTTIMEOUT, 120);
curl_setopt($handler, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($handler, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($handler, CURLOPT_URL, $apiEndPoint);
curl_setopt($handler, CURLOPT_POST, true);
curl_setopt($handler, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($handler);
echo $result;

$resultInfo = curl_getinfo($handler);
$error = curl_error($handler);
curl_close($handler);

if (200 == $resultInfo[‘http_code’]) {
$resultXML = (array)simplexml_load_string($result);

if (isset($resultXML[‘STATUS’]) && ‘SUCCESS’ == $resultXML[‘STATUS’]) {
echo ‘Api call succeeded. There are ‘ . $resultXML[‘POINTS’] . ‘ points available worthing ‘ . $resultXML[‘AMOUNT’] . ‘ ‘ . $resultXML[‘CURRENCY’];
} else {
echo ‘Api call failed. <br>Result: ‘;
echo ‘<pre>’ . htmlentities($result) . ‘</pre>’;
}
} else {
echo ‘Api call failed. <br>Error: ‘;
echo ‘<pre>’;
print_r($error);
echo ‘</pre>’;
}

?>

Yukarıda paylaştığım kodları sırayla açıklayacak olursak;

  • Öncelikle requesti oluşturduk. Gerekli tüm parametreleri, kart bilgileri, merchant id ve diğer bilgileri doğru bir şekilde giriyoruz.
  • “ksort” fonksiyonu ile tüm parametreleri alfabetik olarak sıralıyoruz.
  • Hash fonksiyonuna göndermek üzere, hash string değerimizi oluşturuyoruz.
  • Hash değerini hesaplıyor ve diziye dahil ediyoruz.
  • Curl ile oluşturduğumuz requesti post ediyoruz.
  • Eğer tüm işlemleri doğru bir şekilde tamamladı iseniz, echo $result; satırında puan sorgusu ile dönen XML yanıtını almış olacaksınız.Aşağıda örnek XML yanıtını görebilirsiniz. Points elementi kartta bulunun puan miktarını, amount elementi ise, bu puanın TL karşılığını göstermektedir.

<epayment>
<status>SUCCESS</status>
<message>SUCCESS</message>
<points>88228</points>
<amount>882.28</amount>
<currency>TRY</currency>
<bank>AKBANK</bank>
<card_program_name>Axess</card_program_name>
<date>2015-10-08 08:03:05</date>
<hash>6246fc01bdc3267460d923e765cdf48f</hash>
</epayment>

Kodlarda bu aşamadan sonra yer alan kısımlar, XML parse işlemleri ile ilgili bu kısmı detaylandırmayacağım.

İlave bir bilgi olarak, bazı bankalar örneğin Akbank, puan sorgualama işlemlerinde kart sahibi bilgisini zorunlu tutmaktadır. Bu nedenle Akbank için puan sorgusu yaparken “CC_OWNER” parametresini de requeste dahil etmeniz gerekmektedir. Yukarıda paylaştığım örnek, test kartları ile yapıldığı için ben dahil etmedim.

 

 

PayU Site İçi Ödeme (Automatic Live Update-ALU) İndirim Uygulaması

Bazı durumlarda müşterinize indirim, hediye çeki gibi ilave fırsatlar sunmak isteyebilirsiniz. Bu durumda hesaplanan indirim miktarını PayU tarafına bir şekilde bildirmeniz gerekmektedir.

Alu entegrasyonunda toplam tutar ile ile ilgili bir parametre bulunmamaktadır. Api ürün tabanlı çalışmakta ve göndermiş olduğunuz her bir ürünü adet miktarınca hesaplayarak genel sepet toplamını hesaplamaktadır.

Alu entegrasyonunda indirim uygulaması, ilave bir parametre kullanılarak sağlanmaktadır. Bu parametre “DISCOUNT” parametresidir.

Aşağıda örnek bir ürün dizisini paylaşıyorum.

ORDER_PCODE[0]=50
ORDER_PCODE[1]=60
ORDER_PINFO[0]=Ürün bilgisi 1. ürün
ORDER_PINFO[1]=Ürün bilgisi 2. ürün
ORDER_PNAME[0]= Samsung Note II N7100
ORDER_PNAME[1]= Apple iPhone 5S 32 GB Uzay Grisi
ORDER_PRICE[0]=50
ORDER_PRICE[1]=50
ORDER_QTY[0]=1
ORDER_QTY[1]=1

Yukarıdaki ürün dizisine göre toplam tutar (50X1)+(50×1)=100 TL olarak hesaplanacaktır.

Şimdi bu isteğe indirim parametresini de ilave edelim. 10 TL indirim gerçekleştireceğiz.

ORDER_PCODE[0]=50
ORDER_PCODE[1]=60
ORDER_PINFO[0]=Ürün bilgisi 1. ürün
ORDER_PINFO[1]=Ürün bilgisi 2. ürün
ORDER_PNAME[0]= Samsung Note II N7100
ORDER_PNAME[1]= Apple iPhone 5S 32 GB Uzay Grisi
ORDER_PRICE[0]=50
ORDER_PRICE[1]=50
ORDER_QTY[0]=1
ORDER_QTY[1]=1
DISCOUNT=10

Yukarıdaki ürün dizisine göre toplam tutar (50X1)+(50×1)-10=90 TL olarak hesaplanacak ve PayU müşteriden 90 TL tahsil edilecektir.

PayU Ödeme Sistemi Cevap Kodları Hakkında

Bu yazımda, belki de en çok ihtiyaç duyulan bir konuya değinmeye çalışacağım.

PayU ödeme sistemi entegrasyonu ya da bir şekilde sanal pos entegrasyonu yapmaya çalışan herkesin zaman zaman çözmekte zorlandığı bazı hata kodları bulunuyor.

Bu hata neden meydana geliyor ? Acaba sistemde genel bir hata mı var ? Sorun bizde mi, müşteride mi ? gibi bir çok sorular dönüp dolaşıyor ortada.

İşte bu ve bu gibi sorulara cevap verebilmek adına, PayU sisteminde dönen cevap kodları ve bu kodların açıklamalarını aşağıdaki tabloda paylaştım. Faydalı bir yazı olduğunu tahmin ediyorum 🙂

Cevap Kodu Açıklama
GW_ERROR_GENERIC İşlem sırasında tanımlanamayan teknik bir hata meydana geldi. İşlemi tekrar deneyiniz. Bir süre beklemeniz tavsiye olunur.
GW_ERROR_GENERIC_3D 3D doğrulama sırasında bir hata meydana geldi. Bir süre sonra tekrar deneyiniz. Sorun devam ederse, kartın 3D kullanımına uygun olduğunu bankadan teyit ediniz.
GWERROR_-9 Kartın son kullanma tarihi hatalı girilmiştir.
GWERROR_-3 Bilinmeyen hata. Sanal pos bankası destek hizmetleri ile iletişime geçiniz.
GWERROR_-2 İşlem sırasında tanımlanamayan teknik bir hata meydana geldi. İşlemi tekrar deneyiniz. Bir süre beklemeniz tavsiye olunur.
GWERROR_05 Otorizasyon reddedildi. Genel red. Bu hata kart ve banka kaynaklı birçok nedenden dolayı meydana gelir. Kart sahibi bankası ile görüşmelidir.
GWERROR_08 Geçersiz tutar.
GWERROR_13 Göndermiş olduğunuz tutar hatalı ya da taksitli işlem için belirtilen alt limitin altında.
GWERROR_14 Böyle bir kart yok
GWERROR_15 Böyle bir kart sağlayan banka yok.
GWERROR_19 İşlemi tekrar deneyiniz.
GWERROR_34 Kredi kartı numarası fraud kontrolünü geçemedi.
GWERROR_41 Kayıp kart
GWERROR_43 Çalıntı kart
GWERROR_51 Limit yetersiz. Kartın bu işlem için yeterli limiti yok.
GWERROR_54 Süresi dolmuş kart. Kartın son kullanma tarihi geçmiş.
GWERROR_57 Kartın bu işlem için yetkisi yok. Kart sahibi bankası ile görüşerek, işlem yetkilerini kontrol ettirmelidir.
GWERROR_58 Sanal pos kullanan üye işyerinin bu işlem için izni yok. Destek hattı ile iletişime geçmeniz gerekmektedir.
GWERROR_61 Miktar sınırı aşıyor. Kart için belirlenen günlük işlem limiti ya da iptal limiti aşılıyor olabilir. Banka destek ekibi ile iletişime geçiniz.
GWERROR_62 Sınırlı kart. İlgili kart banka tarafından sınırlandırılmış. Örneğin sadece yurtiçi işlemlerde kullanılabilmesi gibi.
GWERROR_65 Miktar sınırı aşıyor. Günlük limitlerinizi kontrol ettiriniz.
GWERROR_75 İzin verilen pin girme sayısı aşıldı. Destek ekibi ile iletişime geçiniz.
GWERROR_82 İssuer (kart sağlayan) banka cevap vermiyor. İşlemi tekrar deneyiniz.
GWERROR_84 Geçersiz cvv numarası
GWERROR_91 Bir teknik sorun oluştu. Issuer işlem yapamıyor. İşlemi tekrar deneyiniz.
GWERROR_96 Sistem arızası. Banka tarafında teknik bir sıkıntı meydana geldi. Bir süre sonra tekrar işlem deneyebilirsiniz.
GWERROR_105 3D kimlik doğrulama başarısız oldu. İşlem yaptığınız kartın 3D doğrulama için kayıt edilmiş olduğundan emin olunuz.
GWERROR_2204 Kartın taksitli işlem izni yok.
GWERROR_2304 Devam eden bir işlem var.
GWERROR_5007 Banka kartları sadece 3D işlem destekler.
ALREADY_AUTHORIZED İşlemi tekrar deneyiniz.
NEW_ERROR Mesaj akış hatası. Sistemde tanımlanmayan yeni bir hata mesajı alındı. Destek ekibi ile iletişime geçiniz.
WRONG_ERROR İşlemi tekrar deneyin.
-9999 Yasaklı işlem. Göndermiş olduğunuz alanlardan biri ya da birkaçı sistemde yasaklanmıştır. Sabit bir bilgi gönderiyor iseniz, lütfen güncelleyiniz.
1 Sanal pos bankası destek hattını arayınız.
HASH_MISTMATCH Hash uyuşmazlığı. Bu hata entegrasyonla ilgili ciddi bir hatadır. Yazılımcınızla görüşmeniz gerekmektedir.
INVALID_CUSTOMER_INFO Geçersiz müşteri bilgisi. Zorunlu bilgilerden bazıları (isim, soyisim, e-posta) gibi eksik ya da geçersiz gönderilmektedir. Alanları kontrol ediniz.
INVALID_PAYMENT_INFO Geçersiz kart bilgileri. Girmiş olduğunuz kart bilgilerini kontrol ediniz.
INVALID_ACCOUNT Merchant ID (İşyeri entegrasyon ismi) hatalı ya da eksik gönderilmektedir. Kontol ediniz.
INVALID_PAYMENT_METHOD_CODE Geçersiz ödeme metodu. “PAYMETHOD” parametresini kontrol ediniz.
INVALID_CURRENCY Geçersiz para birimi ya da işlem yapmak istediğiniz para birimi hesabınız için aktif edilmemiş.
REQUEST_EXPIRED Sipariş tarihi (ORDER_DATE) parametresi hatalı gönderilmektedir. Bu parametre UTC standartına göre gönderilmiş olmalıdır.
ORDER_TIMEOUT Sipariş zaman aşımına uğradı. Tekrar deneyiniz.
WRONG_VERSION Geçersiz alu versiyonu
INVALID_CC_TOKEN Geçersiz token bilgisi. Token numarası doğru değil ya da bu token aktif değil.
AUTHORIZATION_FAILED Otorizasyon reddedildi.
ALREADY_AUTHORIZED Bu işlemde otorizasyon yapılmış. Aynı ORDER_REF ve aynı Hash ile işlem gönderildi. Mükerrer işlem.
3DS_ENROLLED İşlemin tamamlanabilmesi için 3D doğrulaması yapılması gerekmektedir.
AUTHORIZED Otorizasyon başarılı.

PayU Marketplace Entegrasyonu

BDDK tarafından yapılan düzenlemeye göre; Pazaryeri modelinde hizmet veren web siteleri, “ödeme kuruluşu” lisansına sahip olmadan üzerinde fon bulunduramamaktadır.

PayU’ nun hizmete sunmuş olduğu pazaryeri modelinde ilgili fonlar BDDK denetiminde lisanslı ödeme kuruluşu PayU hesabına aktarılır ve PayU bu fonları yönetmeliklere uygun olarak ilgili muhataplar arasında paylaştırır.

Bu yazımda PayU kullanıcılarının teknik anlamda bu servisi nasıl entegre edeceklerini izah etmeye çalışacağım.

Öncelikle yapıyı izah etmeye çalışalım. Aşağıdaki görseli birlikte inceleyelim.

marletplace

Yukarıdaki görselde; marketplace ve buna bağlı 3 adet submerchant (alt iş yeri) görünmektedir. Kullanıcı PayU ödeme altyapısını kullanan marketplace üzerinden bir alışveriş yapmakta ve bu para PayU hesaplarına geçmektedir. PayU ilgili siparişi ayrıştırarak submerchant hanesine yazmaktadır.

Entegrasyonun uygulama aşamasına gelecek olursak, aslında çok da fazla bir işlem yapmamıza gerek yok. Standart  olarak kullanmış olduğumuz alu entegrasyonu için bir parametre ilave edeceğiz. Bu parametre; “ORDER_MPLACE_MERCHANT[]”.

Alu entegrasyonunu henüz yapmadı iseniz, buradan entegrasyon dokümanına ulaşabilirsiniz.

Yukarıdaki parametre submerchanta ait merchant id bilgisini taşımaktadır. Göndermiş olduğunuz isteğe  bu parametreyi ilave ettiğinizde PayU sistemi siparişin hangi alt işyerine ait olduğunu anlayacak ve siparişi o işyerine yazacaktır.

Yukarıdaki görselde; örneğin ikinci submerchant için ORDER_MPLACE_MERCHANT[0]: MPSMTWOC şeklinde gönderdiğimizi düşünelim. O halde bu sipariş ikinci submerchanta aittir.

Örnek olması açısından, aşağıda tam bir alu isteğini paylaşıyorum.
Array
(
[BACK_REF] =>
[BILL_ADDRESS] => Billing address
[BILL_ADDRESS2] => Billing address
[BILL_CITY] => City
[BILL_COUNTRYCODE] => TR
[BILL_EMAIL] => deneme@payu.com.tr
[BILL_FAX] => 4543958674234
[BILL_FNAME] => Serkan
[BILL_LNAME] => Yıldırım
[BILL_PHONE] => 34245353
[BILL_STATE] => State / Dept.
[BILL_ZIPCODE] => 12345234
[CC_CVV] => 000
[CC_NUMBER] => 5571135571135575
[CC_OWNER] => TEST
[CC_TYPE] => VISA
[CLIENT_IP] => 91.220.167.100
[DELIVERY_ADDRESS] => Delivery Address
[DELIVERY_ADDRESS2] => Delivery Address
[DELIVERY_CITY] => City
[DELIVERY_COMPANY] => Company Name
[DELIVERY_COUNTRYCODE] => TR
[DELIVERY_EMAIL] => deneme@payu.com.tr
[DELIVERY_FNAME] => Serkan
[DELIVERY_LNAME] => Yıldırım
[DELIVERY_PHONE] => 454395867
[DELIVERY_STATE] => State / Dept.
[DELIVERY_ZIPCODE] => 12345
[EXP_MONTH] => 12
[EXP_YEAR] => 2018
[LANGUAGE] => TR
[MERCHANT] => MRKTPLCE
[ORDER_DATE] => 2015-07-30 07:06:43
[ORDER_MPLACE_MERCHANT[0]] => MPSMTWOC
[ORDER_PCODE[0]] => T234435
[ORDER_PINFO[0]] => Ürün bilgisi 1
[ORDER_PNAME[0]] => Ürün1
[ORDER_PRICE[0]] => 10
[ORDER_QTY[0]] => 1
[ORDER_REF] => 30747
[ORDER_VAT[0]] => 0
[PAY_METHOD] => CCVISAMC
[PRICES_CURRENCY] => TRY
[ORDER_HASH] => 3288e6c5a48e37d8806a5c5fc0bc99bd
)

Next Posts