Dokoncan backend za paypal, dokoncani funkciji za cancel in capture paypal narocila - ZA TESTIRATI

This commit is contained in:
pero1203 2020-09-10 10:27:06 +02:00
parent 4f9bb1b658
commit 912ab1ed93
3 changed files with 54 additions and 6 deletions

View File

@ -230,8 +230,22 @@ class ApiNarocilaController{
break; break;
// Preveri, ce je narocilo placano preko paypala // Dokoncaj narocilo ce je placano preko paypala (ko je stranka potrdila placilo v paypalu)
case 'check_narocilo_paypal': case 'capture_narocilo_paypal':
if(isset($this->data['narocilo_id'])){
$paypal = new UserNarocilaPaypal($this->data['narocilo_id']);
$this->response = $narocilo->paypalCaptureOrder();
}
else{
$this->response['error'] = 'Napaka! Manjka ID narocila!';
$this->response['success'] = false;
}
break;
// Preklici narocilo za paypal (ko je stranka preklicala placilo v paypalu)
case 'cancel_narocilo_paypal':
if(isset($this->data['narocilo_id'])){ if(isset($this->data['narocilo_id'])){
$paypal = new UserNarocilaPaypal($this->data['narocilo_id']); $paypal = new UserNarocilaPaypal($this->data['narocilo_id']);

View File

@ -24,6 +24,7 @@ class UserNarocilaPaypal{
global $app_settings; global $app_settings;
global $paypal_client_id; global $paypal_client_id;
global $paypal_secret; global $paypal_secret;
global $mysql_database_name;
if($narocilo_id > 0){ if($narocilo_id > 0){
@ -38,8 +39,13 @@ class UserNarocilaPaypal{
die("Napaka pri komunikaciji s paypal! Narocilo ne obstaja."); die("Napaka pri komunikaciji s paypal! Narocilo ne obstaja.");
} }
// Ustvarimo okolje za paypal // Ustvarimo okolje za paypal
$environment = new SandboxEnvironment($paypal_client_id, $paypal_secret); if($mysql_database_name == 'real1kasi')
$environment = new ProductionEnvironment($paypal_client_id, $paypal_secret);
else
$environment = new SandboxEnvironment($paypal_client_id, $paypal_secret);
$this->paypal_client = new PayPalHttpClient($environment); $this->paypal_client = new PayPalHttpClient($environment);
} }
else { else {
@ -130,14 +136,18 @@ class UserNarocilaPaypal{
"intent" => "CAPTURE", "intent" => "CAPTURE",
"purchase_units" => [[ "purchase_units" => [[
"reference_id" => $orderDetails['narocilo_id'], "reference_id" => $orderDetails['narocilo_id'],
'description' => $orderDetails['ime'],
"amount" => [ "amount" => [
"value" => $orderDetails['cena'], "value" => $orderDetails['cena'],
"currency_code" => "EUR" "currency_code" => "EUR"
] ]
]], ]],
"application_context" => [ "application_context" => [
"cancel_url" => $site_url . '/d/narocilo/paypal-cancel', "cancel_url" => $site_url . '/d/narocilo/paypal-cancel?narocilo_id='.$orderDetails['narocilo_id'],
"return_url" => $site_url . '/d/narocilo/paypal' "return_url" => $site_url . '/d/narocilo/paypal?narocilo_id='.$orderDetails['narocilo_id'],
'brand_name' => '1KA'
] ]
]; ];
@ -236,4 +246,27 @@ class UserNarocilaPaypal{
return $response; return $response;
} }
// Preklicemo placilo, ce je bilo placilo preklicano preko paypala s strani stranke
public function paypalCancelOrder(){
$response = array();
// Posodobimo status narocila
$sqlNarocilo = sisplet_query("UPDATE user_access_paypal_transaction
SET status='CANCELED'
WHERE narocilo_id='".$this->narocilo['id']."'
");
if (!$sqlNarocilo){
$response['error'] = 'ERROR! '.mysqli_error($GLOBALS['connect_db']);
$response['success'] = false;
return $response;
}
$response['success'] = true;
return $response;
}
} }

View File

@ -9293,7 +9293,8 @@ CREATE TABLE user_access_paypal_transaction(
time DATETIME(3) NOT NULL, time DATETIME(3) NOT NULL,
status VARCHAR(30) NOT NULL DEFAULT '', status VARCHAR(30) NOT NULL DEFAULT '',
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE KEY (transaction_id) UNIQUE KEY (transaction_id),
UNIQUE KEY (narocilo_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
UPDATE misc SET value='20.09.07' WHERE what="version"; UPDATE misc SET value='20.09.07' WHERE what="version";