UnknownSec Bypass
403
:
/
mnt
/
lmsestudio-instance-vol002
/
lms_e766dfeccb33
/
app
/
Console
/
Commands
/ [
drwxr-xr-x
]
Menu
Upload
Mass depes
Mass delete
Terminal
Info server
About
name :
RecurringCreditCard.php
<?php namespace EstudioLMS\Console\Commands; use Carbon\Carbon; use EstudioLMS\Events\RecurringNotification; use EstudioLMS\Repositories\Financial\RecurringInterface; use EstudioLMS\Repositories\Subscription\PeriodicityInterface; use EstudioLMS\Services\Admin\ConfigurationServices; use EstudioLMS\Services\PagarMeService; use Illuminate\Console\Command; use EstudioLMS\Cart\Cart; use Illuminate\Support\Facades\Log; /** * Class RecurringCreditCard * @package EstudioLMS\Console\Commands */ class RecurringCreditCard extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'recurring:credit-card'; /** * The console command description. * * @var string */ protected $description = 'Processa as recorrências das assinaturas com forma de pagamento cartão de crédito'; /** * @var RecurringInterface */ private $recurring; /** * @var PeriodicityInterface */ private $periodicity; /** * @var PagarMeService */ private $pagarMeService; /** * @var ConfigurationServices */ private $configurationServices; /** * Create a new command instance. * * @param RecurringInterface $recurring * @param PeriodicityInterface $periodicity * @param PagarMeService $pagarMeService * @param ConfigurationServices $configurationServices */ public function __construct( RecurringInterface $recurring, PeriodicityInterface $periodicity, PagarMeService $pagarMeService, ConfigurationServices $configurationServices ) { parent::__construct(); $this->recurring = $recurring; $this->periodicity = $periodicity; $this->pagarMeService = $pagarMeService; $this->configurationServices = $configurationServices; } /** * Execute the console command. * * Os seguintes status serão considerados, para o processamento das recorrências. * 0 - Registro sem processamento, deve ser feita a cobrança; * 1 - Registro processado; * 2 - Houve falha na cobrança - Cartão de Crédito - Será cobrado novamente em X dias; * 3 - Boleto emitido e ainda não pago; * 4 - Cancelamento solicitado. Ao invés de cobrar, deve marcar a assinatura como cancelada; * 5 - Registro de cancelamento processado; * 6 - Cancelado por falta de pagamento; * * @return void * */ public function handle() { $paymentType = 'credit_card'; $today = Carbon::now()->format('Y-m-d'); $tomorow = Carbon::now()->addDay()->format('Y-m-d'); $recurrings = $this->recurring->getDueRecurrences($paymentType); foreach ($recurrings as $key => $recurring) { if ($recurring->next_attempt_date == $today && $recurring->payment_type == $paymentType) { $attempt = $recurring->attempts + 1; $periodicity = $this->periodicity->find($recurring->hire_subscription->periodicity_id); $cart = new Cart(); $cart->addItem( $recurring->hire_subscription->subscription_id, $recurring->hire_subscription->subscription->title, $recurring->hire_subscription->subscription->subscription_id, $periodicity, $recurring->gross_amount, null, 0.00, 0.00, 0, 0.00, true ); $config = $this->configurationServices->configuration(); $softDescriptor = (strlen($config->site_name) >= 13) ? substr($config->site_name, 0, 13) : $config->site_name; $card = null; while(!method_exists($card, 'getStatus')) { $card = $this->pagarMeService->cardTransaction($recurring->card_id, $cart, $recurring->subscription_hash, $recurring->user_id, null, $softDescriptor); } if ($card->getStatus() !== 'paid') { if ($attempt < 10) { $recurring->status = 2; $recurring->attempts = $attempt; $recurring->payment_code = $card->getId(); $recurring->next_attempt_date = $tomorow; $recurring->save(); \Event::fire(new RecurringNotification('credit-card-failed', $card)); } elseif ($attempt >= 10 && $attempt < 15) { $recurring->status = 2; $recurring->attempts = $attempt; $recurring->payment_code = $card->getId(); $recurring->next_attempt_date = $tomorow; $recurring->save(); $recurring->hire_subscription->status = 3; $recurring->hire_subscription->save(); \Event::fire(new RecurringNotification('credit-card-suspended', $card)); } else { $recurring->status = 6; $recurring->attempts = $attempt; $recurring->payment_code = $card->getId(); $recurring->save(); $recurring->hire_subscription->status = 4; $recurring->hire_subscription->save(); \Event::fire(new RecurringNotification('credit-card-canceled', $card)); } } else { $recurring->status = 1; $recurring->attempts = $attempt; $recurring->payment_code = $card->getId(); $recurring->payment_date = $today; $recurring->save(); \Event::fire(new RecurringNotification('credit-card', $card)); } } else { \Log::alert('recurring:credit-card - Tentou fazer a recorrencia da assinatura: ' . $recurring->hire_subscription->subscription->subscription_id . ' Com next_attempt_date: ' . $recurring->next_attempt_date . ' No dia: ' . $today); } } \Log::useDailyFiles(storage_path() . '/logs/command.log'); \Log::alert('recurring:credit-card - Executado - ' . date('Y-m-d H:i:s')); } }
Copyright © 2026 - UnknownSec