Last active
April 14, 2017 10:36
-
-
Save selahattinunlu/1361eb51e305ede9b6a9 to your computer and use it in GitHub Desktop.
PayU Ortak Ödeme Sayfasına Yönlendirmek
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div style="display: none;"> | |
<?php | |
require(public_path() . '/app/libraries/payu/PayuLiveUpdate.class.php'); | |
if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { | |
$liveUpdate = new PayuLu('PAYUDEMO', 'P5@F8*3!m0+?^9s3&u8('); // test için bu hesap bilgilerini kullanabilirsiniz. | |
$liveUpdate->setTestMode(); | |
} else { | |
$liveUpdate = new PayuLu('secret','secret'); // Size verilen hesap bilgilerinizi gireceksiniz. | |
} | |
//$liveUpdate->setDebug(PayuLu::DEBUG_ALL); | |
$liveUpdate->setLanguage('TR'); // Ortak Ödeme Sayfasının Dilini Belirliyoruz. | |
$liveUpdate->setOrderRef('sipariş kodu'); | |
$liveUpdate->setOrderTimeout(''); // timeout süresi belirleyebiliriz. | |
$liveUpdate->setTimeoutUrl(''); // timeout sonunda hangi urle yönlendirmek istiyorsak buraya yazabiliriz. | |
$liveUpdate->setPaymentCurrency("TRY"); // kullandığımız para birimi | |
$liveUpdate->setInstalments("2,3,4,5,6,7,8,9,10,11,12"); // taksit seçenekleri.. 10 11 ve 12 sanırım artık iptal olduğu için gözükmüyordu. | |
/** | |
* DİKKAAAT! | |
* | |
* $totalPrice => Sepetin toplam tutarı | |
* Config::get('app.freeShippingLimit') => Ücretsiz kargo limiti | |
* | |
* Bu bölümdeki değişkenleri kendi değişkenleriniz ile değiştirmeyi | |
* unutmayın. | |
* | |
* Not: Eğer kargo bedeli eklemeyecekseniz $liveUpdate->setOrderShipping("9") satırını silin gitsin. | |
* | |
*/ | |
if ($totalPrice < Config::get('app.freeShippingLimit')) { | |
$liveUpdate->setOrderShipping("9"); // Kargo bedeli | |
} | |
$liveUpdate->setBackRef("http://websiteniz.com/order/thank-you/?orderCode=" . "siparis-kodunuz"); // sipariş kodu değişkenini eklemeyi unutmayın. | |
//$liveUpdate->setGlobalDiscount('1000'); // Genel İndirim | |
/** | |
* Kullanıcının sepetindeki ürünleri tek tek ekliyoruz. | |
* | |
* NOT::: en son girilen kdv oranı ile ilgili onların gönderdiği form.php örneğinde "67" yazıyordu. Kafanız karışmasın | |
* bu bölüme ödenecek vergi tutarını değil kdv oranını giriyoruz. | |
*/ | |
foreach ($products as $product) { | |
$liveUpdate->addProduct(new PayuProduct( | |
$product->title, // Ürünün başlığı, adı | |
$product->modelCode, // Ürün kodu | |
'', | |
$product->getTotalPrice(), // kdv dahil birim fiyat | |
'GROSS', // dökümantasyonda bu bölüme BRÜT yazmamız söyleniyordu ama GROSS yazılacak. !!! | |
$product->pivot->quantity, // bu ürünün kaç adet sipariş edildiği | |
18 // kdv oranı | |
)); | |
} | |
// Fatura Adresi İçin Parametreler | |
$billing = new PayuAddress(); | |
$billing->setFirstName($billingAddress->firstname); | |
$billing->setLastName($billingAddress->lastname); | |
$billing->setEmail($user->email); | |
$billing->setAddress($billingAddress->content); | |
$billing->setCity($billingAddress->town); //Ilce/Semt | |
$billing->setState($billingAddress->city->name); //Sehir | |
$billing->setCountryCode("TR"); | |
// Teslimat Adresi İçin Parametreler | |
$delivery = new PayuAddress(); | |
$delivery->setFirstName($deliveryAddress->firstname); | |
$delivery->setLastName($deliveryAddress->lastname); | |
$delivery->setEmail($user->email); | |
$delivery->setAddress($deliveryAddress->content); | |
$delivery->setCity($deliveryAddress->town); //Ilce/Semt | |
$delivery->setState($deliveryAddress->city->name); //Sehir | |
$delivery->setCountryCode("TR"); | |
// Daha Sonra üstte tanımladığımız adresleri liveUpdate sınıfına set ediyoruz. | |
$liveUpdate->setBillingAddress($billing); | |
$liveUpdate->setDeliveryAddress($delivery); | |
// üstteki adresler varken bunu niye tanımlamak zorundayım anlamasam da tanımlamayınca hata veriyor. | |
// Pek de kurcalamak istemedim burayı çözen olursa paylaşmasını istiyorum :)) | |
$liveUpdate->setDestinationAddress(new PayuAddress()); | |
// Ödeme sayfasına yönlendirecek butonda yazacak olan metin. | |
$liveUpdate->setButtonName('Ödeme Yap'); | |
// $t değişkenine girdiğimiz bilgilerle birlikte formu render ettiriyoruz. Hash'i ve gerekli diğer alanları oluşturuyor | |
$t = $liveUpdate->renderPaymentForm(); | |
/** | |
* Burada ekrana yazdırıyoruz ve müşteri "Ödeme Yap" butonuna tıklayınca ödeme sayfasına gidiyor. Lakin burada müşteriye | |
* ekstra tıklama yaptırmak yerine ben bu bölümü "display:none" ile gizledim. Javascript yardımı ile de sahte bir tıklama yaptırarak | |
* ödeme sayfasına yönlendirmeyi gerçekleştirdim. Bu javascript kodları da biraz aşağıda mevcut. :) | |
*/ | |
echo $t; | |
?> | |
</div> | |
<script> | |
$(function() { | |
setTimeout(function() { | |
$('input[type="submit"]').click(); // fake click | |
}, 4000); | |
}); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment