126 lines
4.1 KiB
PHP
126 lines
4.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
*
|
|
* Class ki skrbi za placila s paypalom
|
|
*
|
|
*/
|
|
|
|
|
|
class UserNarocilaPaypal{
|
|
|
|
|
|
private $narocilo;
|
|
|
|
|
|
public function __construct($narocilo_id){
|
|
global $app_settings;
|
|
|
|
if($narocilo_id > 0){
|
|
|
|
// Dobimo podatke narocila
|
|
$sqlNarocilo = sisplet_query("SELECT un.*, u.name, u.surname, u.email, up.name AS package_name, up.description AS package_description, up.price AS package_price
|
|
FROM user_access_narocilo un, users u, user_access_paket up
|
|
WHERE un.id='".$narocilo_id."' AND un.usr_id=u.id AND un.package_id=up.id");
|
|
if(mysqli_num_rows($sqlNarocilo) > 0){
|
|
$this->narocilo = mysqli_fetch_array($sqlNarocilo);
|
|
}
|
|
else{
|
|
die("Napaka pri komunikaciji s paypal! Narocilo ne obstaja.");
|
|
}
|
|
}
|
|
else {
|
|
die("Napaka pri komunikaciji s paypal! Manjka ID naročila.");
|
|
}
|
|
}
|
|
|
|
|
|
// Placamo narocilo s paypal
|
|
public function paypalCreatePayment(){
|
|
global $paypal_account;
|
|
global $paypal_client_id;
|
|
global $paypal_secret;
|
|
global $site_url;
|
|
|
|
|
|
$UA = new UserNarocila();
|
|
$cena = $UA->getPrice($this->narocilo['package_name'], $this->narocilo['trajanje'], $this->narocilo['discount']);
|
|
|
|
if($this->narocilo['trajanje'] == 1)
|
|
$months_string = 'mesec';
|
|
elseif($this->narocilo['trajanje'] == 2)
|
|
$months_string = 'meseca';
|
|
elseif($this->narocilo['trajanje'] == 3 || $this->narocilo['trajanje'] == 4)
|
|
$months_string = 'mesece';
|
|
else
|
|
$months_string = 'mesecev';
|
|
|
|
|
|
// Zavezanec iz tujine ima racun/predracun brez ddv
|
|
if($UA->isWithoutDDV($this->narocilo['id'])){
|
|
$ddv = 0;
|
|
$cena_za_placilo = $cena['final_without_tax'];
|
|
}
|
|
else{
|
|
$ddv = 1;
|
|
$cena_za_placilo = $cena['final'];
|
|
}
|
|
|
|
|
|
// Podatki za paypal potrebni za placilo
|
|
$orderDetails = array(
|
|
'business' => $paypal_client_id,
|
|
|
|
'item_name' => '1KA naročnina (paket '.strtoupper($this->narocilo['package_name']). ' - '.$this->narocilo['trajanje'].' '.$months_string.')',
|
|
'item_number' => $this->narocilo['id'],
|
|
'amount' => $cena_za_placilo * 100,
|
|
'currency_code' => 'EUR',
|
|
|
|
'return' => $site_url.'frontend/payments/paypal-pay.php',
|
|
'cancel_return' => $site_url.'frontend/payments/paypal-cancel.php',
|
|
|
|
'cmd' => '_xclick'
|
|
);
|
|
|
|
// Posljemo placilo na paypal, da se lahko potem user prijavi in ga placa
|
|
$paypalResponse = $this->paypalCreatePaymentSend($orderDetails);
|
|
|
|
|
|
// Vstavimo plačilo v bazo
|
|
$sqlNarocilo = sisplet_query("INSERT INTO user_access_paypal_transaction
|
|
(transaction_id, narocilo_id, price, currency_type, time)
|
|
VALUES
|
|
('".$paypalResponse['transaction_id']."', '".$paypalResponse['narocilo_id']."', '".$paypalResponse['price']."', '".$paypalResponse['currency_type']."',NOW())
|
|
");
|
|
if (!$sqlNarocilo){
|
|
$response['error'] = 'ERROR! '.mysqli_error($GLOBALS['connect_db']);
|
|
return $response;
|
|
}
|
|
|
|
|
|
$response = array();
|
|
|
|
return $response;
|
|
}
|
|
|
|
|
|
// Posljemo podatke za placilo paypalu - TODO
|
|
private function paypalCreatePaymentSend(){
|
|
global $paypal_account;
|
|
global $paypal_client_id;
|
|
global $paypal_secret;
|
|
|
|
$response = array();
|
|
|
|
$paypal_url = 'https://www.paypal.com/cgi-bin/webscr';
|
|
|
|
/*
|
|
$response['transaction_id'] = $_GET['tx'];
|
|
$response['narocilo_id'] = $_GET['item_number'];
|
|
$response['price'] = $_GET['amt'];
|
|
$response['currency_type'] = $_GET['cc'];
|
|
*/
|
|
|
|
return $response;
|
|
}
|
|
} |