Files
magento2/app/code/Magento/Sales/Console/Command/EncryptionPaymentDataUpdateCommand.php
Patrick McLain 93206e0475 Add CLI Command for Updating CC Number Encryption
Updates the encryption of any values in `sales_order_payment.cc_number_enc`
with a cipher version below the latest. The command executes in batches of 1000
2018-06-06 22:02:15 -04:00

67 lines
1.7 KiB
PHP

<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\Sales\Console\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Command\Command;
use Magento\Framework\Console\Cli;
/**
* Command for updating encrypted credit card data to the latest cipher
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class EncryptionPaymentDataUpdateCommand extends Command
{
/** Command name */
const NAME = 'encryption:payment-data:update';
/**
* @var \Magento\Sales\Model\ResourceModel\Order\Payment\EncryptionUpdate
*/
private $paymentResource;
/**
* @param \Magento\Sales\Model\ResourceModel\Order\Payment\EncryptionUpdate $paymentResource
*/
public function __construct(
\Magento\Sales\Model\ResourceModel\Order\Payment\EncryptionUpdate $paymentResource
) {
$this->paymentResource = $paymentResource;
parent::__construct();
}
/**
* {@inheritdoc}
*/
protected function configure()
{
$this->setName(self::NAME)
->setDescription(
'Re-encrypts encrypted credit card data with latest encryption cipher.'
);
parent::configure();
}
/**
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
try {
$this->paymentResource->reEncryptCreditCardNumbers();
} catch (\Exception $e) {
$output->writeln('<error>' . $e->getMessage() . '</error>');
return Cli::RETURN_FAILURE;
}
return Cli::RETURN_SUCCESS;
}
}