[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
14082024
/
Data
/
htdocs
/
htdocs
/
jurnal-kesmas
/
v1
/
lib
/
pkp
/
classes
/
payment
/
[
Home
]
File: PaymentManager.php
<?php /** * @file classes/payment/PaymentManager.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2000-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class PaymentManager * * @ingroup payment * * @see Payment * * @brief Provides payment management functions. * */ namespace PKP\payment; use Exception; use PKP\context\Context; use PKP\db\DAORegistry; abstract class PaymentManager { public const PAYMENT_TYPE_PUBLICATION = 7; // FIXME: This is OJS-only but referred to in pkp-lib. Move back to OJS. /** @var Context */ public $_context; /** * Constructor * * @param Context $context */ public function __construct($context) { $this->_context = $context; } /** * Queue a payment for receipt. * * @param object $queuedPayment * @param string $expiryDate optional * * @return mixed Queued payment ID for new payment, or false if fails */ public function queuePayment($queuedPayment, $expiryDate = null) { if (!$this->isConfigured()) { return false; } $queuedPaymentDao = DAORegistry::getDAO('QueuedPaymentDAO'); /** @var QueuedPaymentDAO $queuedPaymentDao */ $queuedPaymentId = $queuedPaymentDao->insertObject($queuedPayment, $expiryDate); // Perform periodic cleanup if (time() % 100 == 0) { $queuedPaymentDao->deleteExpired(); } return $queuedPaymentId; } /** * Abstract method for fetching the payment plugin * * @return \PKP\plugins\PaymethodPlugin */ abstract public function getPaymentPlugin(); /** * Check if there is a payment plugin and if is configured * * @return bool */ public function isConfigured() { $paymentPlugin = $this->getPaymentPlugin(); if ($paymentPlugin !== null) { return $paymentPlugin->isConfigured($this->_context); } return false; } /** * Get the payment form for the configured payment plugin and specified payment. * * @param QueuedPayment $queuedPayment * * @return \PKP\form\Form */ public function getPaymentForm($queuedPayment) { $paymentPlugin = $this->getPaymentPlugin(); if ($paymentPlugin !== null && $paymentPlugin->isConfigured($this->_context)) { return $paymentPlugin->getPaymentForm($this->_context, $queuedPayment); } return false; } /** * Fetch a queued payment * * @param int $queuedPaymentId * * @return QueuedPayment */ public function getQueuedPayment($queuedPaymentId) { $queuedPaymentDao = DAORegistry::getDAO('QueuedPaymentDAO'); /** @var QueuedPaymentDAO $queuedPaymentDao */ $queuedPayment = $queuedPaymentDao->getById($queuedPaymentId); return $queuedPayment; } /** * Fulfill a queued payment * * @param \PKP\core\PKPRequest $request * @param QueuedPayment $queuedPayment * * @return bool success/failure */ abstract public function fulfillQueuedPayment($request, $queuedPayment); } if (!PKP_STRICT_MODE) { class_alias('\PKP\payment\PaymentManager', '\PaymentManager'); }