-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathSetup.php
More file actions
77 lines (64 loc) · 2.76 KB
/
Setup.php
File metadata and controls
77 lines (64 loc) · 2.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
/**
* Paystack Magento2 Module using \Magento\Payment\Model\Method\AbstractMethod
* Copyright (C) 2019 Paystack.com
*
* This file is part of Pstk/Paystack.
*
* Pstk/Paystack is free software => you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http =>//www.gnu.org/licenses/>.
*/
namespace Pstk\Paystack\Controller\Payment;
class Setup extends AbstractPaystackStandard {
/**
* Execute view action
*
* @return \Magento\Framework\Controller\ResultInterface
*/
public function execute() {
$message = '';
$order = $this->orderInterface->loadByIncrementId($this->checkoutSession->getLastRealOrder()->getIncrementId());
if ($order && $this->getMethod()->getCode() == $order->getPayment()->getMethod()) {
try {
return $this->processAuthorization($order);
} catch (\Pstk\Paystack\Gateway\Exception\ApiException $e) {
$message = $e->getMessage();
$order->addStatusToHistory($order->getStatus(), $message);
$this->orderRepository->save($order);
}
}
$this->redirectToFinal(false, $message);
}
protected function processAuthorization(\Magento\Sales\Model\Order $order) {
$tranx = $this->paystackClient->initializeTransaction([
'first_name' => $order->getCustomerFirstname(),
'last_name' => $order->getCustomerLastname(),
'amount' => $order->getGrandTotal() * 100, // in kobo
'email' => $order->getCustomerEmail(), // unique to customers
'reference' => $order->getIncrementId(), // unique to transactions
'currency' => $order->getCurrency(),
'callback_url' => $this->storeManager->getStore()->getBaseUrl() . "paystack/payment/callback",
'metadata' => array('custom_fields' => array(
array(
"display_name"=>"Plugin",
"variable_name"=>"plugin",
"value"=>"magento-2"
)
))
]);
//var_dump($tranx); die();
$redirectFactory = $this->resultRedirectFactory->create();
$redirectFactory->setUrl($tranx->data->authorization_url);
return $redirectFactory;
}
}