JEMBOT MAWOT Bypass Shell
<?php
/**
* Mollie https://www.mollie.nl
*
* @author Mollie B.V. <info@mollie.nl>
* @copyright Mollie B.V.
* @license https://github.com/mollie/PrestaShop/blob/master/LICENSE.md
*
* @see https://github.com/mollie/PrestaShop
* @codingStandardsIgnoreStart
*/
namespace Mollie\Subscription\Action;
use Mollie\Factory\ModuleFactory;
use Mollie\Logger\PrestaLoggerInterface;
use Mollie\Subscription\Api\Request\UpdateSubscriptionRequest;
use Mollie\Subscription\Api\SubscriptionApi;
use Mollie\Subscription\DTO\UpdateSubscriptionData;
use Mollie\Subscription\Exception\CouldNotUpdateSubscription;
use Mollie\Subscription\Exception\MollieSubscriptionException;
use Mollie\Utility\SecureKeyUtility;
if (!defined('_PS_VERSION_')) {
exit;
}
class UpdateSubscriptionAction
{
/** @var SubscriptionApi */
private $subscriptionApi;
/** @var PrestaLoggerInterface */
private $logger;
/** @var \Mollie */
private $module;
public function __construct(
SubscriptionApi $subscriptionApi,
PrestaLoggerInterface $logger,
ModuleFactory $moduleFactory
) {
$this->subscriptionApi = $subscriptionApi;
$this->logger = $logger;
$this->module = $moduleFactory->getModule();
}
/**
* @throws MollieSubscriptionException
*/
public function run(UpdateSubscriptionData $data): void
{
$this->logger->info(sprintf('%s - Function called', __METHOD__));
$secureKey = SecureKeyUtility::generateReturnKey(
$data->getCustomerId(),
$data->getCartId(),
$this->module->name
);
$metadata = [
'secure_key' => $secureKey,
'subscription_carrier_id' => $data->getSubscriptionCarrierId(),
];
$updateSubscriptionData = new UpdateSubscriptionRequest(
$data->getMollieCustomerId(),
$data->getMollieSubscriptionId(),
null,
$metadata,
$data->getOrderAmount()
);
try {
$this->subscriptionApi->updateSubscription($updateSubscriptionData);
} catch (\Throwable $exception) {
throw CouldNotUpdateSubscription::failedToUpdateSubscription($exception, $data->getMollieSubscriptionId());
}
$this->logger->info(sprintf('%s - Function ended', __METHOD__));
}
}
xxxxx1.0, XXX xxxx