Система не смогла узнать название страны с кодом «PR» для локали «en_US». ************************************ File: vendor/mage2pro/core/Core/lib/validation.php Line: 394 Caller: df_error Callee: df_error_create Context: function df_error(...$args) {df_header_utf(); throw df_error_create(...$args);} *****************1****************** File: vendor/mage2pro/core/Directory/lib/country.php Line: 204 Caller: df_country_ctn Callee: df_error Context: function df_country_ctn($iso2, $locale = null) { df_param_iso2($iso2, 0); /** @var string $result */ $result = dfa(df_countries_ctn($locale), strtoupper($iso2)); if (!$result) { df_error( "Система не смогла узнать название страны с кодом «{$iso2}» для локали «%s»." ,df_locale($locale) ); } return $result; } *****************2****************** File: vendor/mage2pro/core/StripeClone/CardFormatter.php Line: 23 Caller: Df\StripeClone\CardFormatter::country Callee: df_country_ctn Context: final function country() {/** @var string|null $c */return !($c = $this->_c->country()) ? $c : df_country_ctn(strtoupper($c)) ;} *****************3****************** File: vendor/mage2pro/core/StripeClone/CardFormatter.php Line: 46 Caller: Df\StripeClone\CardFormatter::ii Callee: Df\StripeClone\CardFormatter::country Context: final function ii() {return [ DfOP::COUNTRY => $this->country() ,OP::CC_EXP_MONTH => $this->_c->expMonth() ,OP::CC_EXP_YEAR => $this->_c->expYear() ,OP::CC_LAST_4 => $this->_c->last4() ,OP::CC_OWNER => $this->_c->owner() ,OP::CC_TYPE => $this->_c->brand() ];} *****************4****************** File: vendor/mage2pro/core/StripeClone/Method.php Line: 121 Caller: Df\StripeClone\Method::Df\StripeClone\{closure} Callee: Df\StripeClone\CardFormatter::ii Context: // 2017-07-24 // Unfortunately, the one-liner fails on PHP 5.6.30: // $this->iiaAdd((CardFormatter::s($this, $fc->card($result)))->ii()); // «syntax error, unexpected '->' (T_OBJECT_OPERATOR)» // https://github.com/mage2pro/core/issues/15 // See also: https://github.com/mage2pro/core/issues/16 $cf = CardFormatter::s($this, $fc->card($result)); /** @var CardFormatter $cf */ $this->iiaAdd($cf->ii()); } $this->transInfo($result, $p + (!$needPreorder ? [] : ['df_preorder' => $preorderParams])); $needRedirect = $this->redirectNeeded($result); /** @var bool $needRedirect */ $i = $this->ii(); /** @var II|OP|QP $i */ /** * 2016-03-15 * Иначе операция «void» (отмена авторизации платежа) будет недоступна: * «How is a payment authorization voiding implemented?» *****************5****************** File: vendor/mage2pro/core/Core/lib/cache.php Line: 175 Caller: dfc Callee: Df\StripeClone\Method::Df\StripeClone\{closure} Context: /** @var string $k */ $k = $b['class'] . '::' . $b['function'] . (!$a ? null : dfa_hash($a)) . ($unique ? null : spl_object_hash($m)) ; // 2017-01-12 // https://3v4l.org/0shto return property_exists($o, $k) ? $o->$k : $o->$k = $m(...$a); } *****************6****************** File: vendor/mage2pro/core/StripeClone/Method.php Line: 193 Caller: Df\StripeClone\Method::chargeNew Callee: dfc Context: * Что интересно, если првоерка 3D Secure не нужна, * то и этой специальной операции записи транзакции не нужно: * она будет записана автоматически. */ $i->addTransaction(T::TYPE_PAYMENT); } return $result; }, func_get_args());} *****************7****************** File: vendor/mage2pro/core/StripeClone/Method.php Line: 307 Caller: Df\StripeClone\Method::charge Callee: Df\StripeClone\Method::chargeNew Context: final protected function charge($capture = true) { df_sentry_extra($this, 'Amount', $a = dfp_due($this)); /** @var float $a */ df_sentry_extra($this, 'Need Capture?', df_bts($capture)); /** @var T|false|null $auth */ if (!($auth = !$capture ? null : $this->ii()->getAuthorizationTransaction())) { $this->chargeNew($capture); } else { /** @var string $txnId */ df_sentry_extra($this, 'Parent Transaction ID', $txnId = $auth->getTxnId()); df_sentry_extra($this, 'Charge ID', $id = $this->i2e($txnId)); /** @var string $id */ $this->transInfo($this->fCharge()->capturePreauthorized($id, $this->amountFormat($a))); // 2016-12-16 // Система в этом сценарии по-умолчанию формирует идентификатор транзации как *****************8****************** Caller: call_user_func Callee: Df\StripeClone\Method::charge *****************9****************** File: vendor/mage2pro/core/Payment/Method.php Line: 137 Caller: Df\Payment\Method::action Callee: call_user_func Context: dfp_sentry_tags($this); /** @var string $actionS */ df_sentry_tags($this, ['Payment Action' => $actionS = df_caller_f()]); try { $this->s()->init(); // 2017-01-10 // Такой код корректен, проверял: https://3v4l.org/Efj63 $result = call_user_func($f instanceof \Closure ? $f : [$this, $f]); /** * 2017-01-31 * В настоящее время опция «Log the API requests and responses?» * присутствует у модулей allPay и SecurePay: * 1) allPay: https://github.com/mage2pro/allpay/blob/1.1.25/etc/adminhtml/system.xml?ts=4#L413-L426 * 2) SecurePay: https://github.com/mage2pro/securepay/blob/1.1.17/etc/adminhtml/system.xml?ts=4#L156-L169 * У остальных моих платёжных модулей этой опции пока нет, * там функциональность логирования пока включена намертво. *****************10***************** File: vendor/mage2pro/core/Payment/Method.php Line: 758 Caller: Df\Payment\Method::capture Callee: Df\Payment\Method::action Context: final function capture(II $payment, $a) {$this->action('charge'); return $this;} *****************11***************** File: vendor/magento/module-sales/Model/Order/Payment/Operations/CaptureOperation.php Line: 82 Caller: Magento\Sales\Model\Order\Payment\Operations\CaptureOperation::capture Callee: Df\Payment\Method::capture Context: // attempt to capture: this can trigger "is_transaction_pending" $method = $payment->getMethodInstance(); $method->setStore( $order->getStoreId() ); //TODO replace for sale usage $method->capture($payment, $amountToCapture); // prepare parent transaction and its amount $paidWorkaround = 0; if (!$invoice->wasPayCalled()) { $paidWorkaround = (double)$amountToCapture; } if ($payment->isCaptureFinal($paidWorkaround)) { $payment->setShouldCloseParentTransaction(true); *****************12***************** File: vendor/magento/module-sales/Model/Order/Payment/Processor.php Line: 85 Caller: Magento\Sales\Model\Order\Payment\Processor::capture Callee: Magento\Sales\Model\Order\Payment\Operations\CaptureOperation::capture Context: public function capture(OrderPaymentInterface $payment, $invoice) { return $this->captureOperation->capture($payment, $invoice); } *****************13***************** File: vendor/magento/module-sales/Model/Order/Payment.php Line: 447 Caller: Magento\Sales\Model\Order\Payment::capture Callee: Magento\Sales\Model\Order\Payment\Processor::capture Context: public function capture($invoice = null) { return $this->orderPaymentProcessor->capture($this, $invoice); } *****************14***************** File: vendor/magento/module-sales/Model/Order/Invoice.php Line: 342 Caller: Magento\Sales\Model\Order\Invoice::capture Callee: Magento\Sales\Model\Order\Payment::capture Context: public function capture() { $this->getOrder()->getPayment()->capture($this); if ($this->getIsPaid()) { $this->pay(); } return $this; } *****************15***************** File: vendor/magento/module-sales/Model/Order/Payment/Operations/AbstractOperation.php Line: 70 Caller: Magento\Sales\Model\Order\Payment\Operations\AbstractOperation::invoice Callee: Magento\Sales\Model\Order\Invoice::capture Context: protected function invoice(OrderPaymentInterface $payment) { /** @var Invoice $invoice */ $invoice = $payment->getOrder()->prepareInvoice(); $invoice->register(); if ($payment->getMethodInstance()->canCapture()) { $invoice->capture(); } $payment->getOrder()->addRelatedObject($invoice); return $invoice; } *****************16***************** File: vendor/magento/module-sales/Model/Order/Payment/Operations/CaptureOperation.php Line: 30 Caller: Magento\Sales\Model\Order\Payment\Operations\CaptureOperation::capture Callee: Magento\Sales\Model\Order\Payment\Operations\AbstractOperation::invoice Context: public function capture(OrderPaymentInterface $payment, $invoice) { /** * @var $payment Payment */ if (null === $invoice) { $invoice = $this->invoice($payment); $payment->setCreatedInvoice($invoice); if ($payment->getIsFraudDetected()) { $payment->getOrder()->setStatus(Order::STATUS_FRAUD); } return $payment; } $amountToCapture = $payment->formatAmount($invoice->getBaseGrandTotal()); $order = $payment->getOrder(); *****************17***************** File: vendor/magento/module-sales/Model/Order/Payment/Processor.php Line: 85 Caller: Magento\Sales\Model\Order\Payment\Processor::capture Callee: Magento\Sales\Model\Order\Payment\Operations\CaptureOperation::capture Context: public function capture(OrderPaymentInterface $payment, $invoice) { return $this->captureOperation->capture($payment, $invoice); } *****************18***************** File: vendor/magento/module-sales/Model/Order/Payment.php Line: 447 Caller: Magento\Sales\Model\Order\Payment::capture Callee: Magento\Sales\Model\Order\Payment\Processor::capture Context: public function capture($invoice = null) { return $this->orderPaymentProcessor->capture($this, $invoice); } *****************19***************** File: vendor/magento/module-sales/Model/Order/Payment.php Line: 428 Caller: Magento\Sales\Model\Order\Payment::processAction Callee: Magento\Sales\Model\Order\Payment::capture Context: $this->authorize(true, $baseTotalDue); // base amount will be set inside $this->setAmountAuthorized($totalDue); break; case \Magento\Payment\Model\Method\AbstractMethod::ACTION_AUTHORIZE_CAPTURE: $this->setAmountAuthorized($totalDue); $this->setBaseAmountAuthorized($baseTotalDue); $this->capture(null); break; default: break; } } *****************20***************** File: vendor/magento/module-sales/Model/Order/Payment.php Line: 348 Caller: Magento\Sales\Model\Order\Payment::place Callee: Magento\Sales\Model\Order\Payment::processAction Context: $orderState = $stateObject->getData('state') ?: $orderState; $orderStatus = $stateObject->getData('status') ?: $orderStatus; $isCustomerNotified = $stateObject->hasData('is_notified') ? $stateObject->getData('is_notified') : $isCustomerNotified; } else { $orderState = Order::STATE_PROCESSING; $this->processAction($action, $order); $orderState = $order->getState() ? $order->getState() : $orderState; $orderStatus = $order->getStatus() ? $order->getStatus() : $orderStatus; } } else { $order->setState($orderState) ->setStatus($orderStatus); } *****************21***************** File: vendor/magento/module-sales/Model/Order.php Line: 871 Caller: Magento\Sales\Model\Order::_placePayment Callee: Magento\Sales\Model\Order\Payment::place Context: protected function _placePayment() { $this->getPayment()->place(); return $this; } *****************22***************** File: vendor/magento/module-sales/Model/Order.php Line: 1060 Caller: Magento\Sales\Model\Order::place Callee: Magento\Sales\Model\Order::_placePayment Context: public function place() { $this->_eventManager->dispatch('sales_order_place_before', ['order' => $this]); $this->_placePayment(); $this->_eventManager->dispatch('sales_order_place_after', ['order' => $this]); return $this; } *****************23***************** File: vendor/magento/module-sales/Model/Service/OrderService.php Line: 190 Caller: Magento\Sales\Model\Service\OrderService::place Callee: Magento\Sales\Model\Order::place Context: public function place(\Magento\Sales\Api\Data\OrderInterface $order) { // transaction will be here //begin transaction try { $order->place(); return $this->orderRepository->save($order); //commit } catch (\Exception $e) { throw $e; //rollback; } } *****************24***************** File: vendor/magento/module-quote/Model/QuoteManagement.php Line: 488 Caller: Magento\Quote\Model\QuoteManagement::submitQuote Callee: Magento\Sales\Model\Service\OrderService::place Context: 'sales_model_service_quote_submit_before', [ 'order' => $order, 'quote' => $quote ] ); try { $order = $this->orderManagement->place($order); $quote->setIsActive(false); $this->eventManager->dispatch( 'sales_model_service_quote_submit_success', [ 'order' => $order, 'quote' => $quote ] ); *****************25***************** File: vendor/magento/module-quote/Model/QuoteManagement.php Line: 391 Caller: Magento\Quote\Model\QuoteManagement::submit Callee: Magento\Quote\Model\QuoteManagement::submitQuote Context: public function submit(QuoteEntity $quote, $orderData = []) { if (!$quote->getAllVisibleItems()) { $quote->setIsActive(false); return null; } return $this->submitQuote($quote, $orderData); } *****************26***************** File: vendor/magento/module-quote/Model/QuoteManagement.php Line: 349 Caller: Magento\Quote\Model\QuoteManagement::placeOrder Callee: Magento\Quote\Model\QuoteManagement::submit Context: $quote->setCustomerEmail($quote->getBillingAddress()->getEmail()); $quote->setCustomerIsGuest(true); $quote->setCustomerGroupId(\Magento\Customer\Api\Data\GroupInterface::NOT_LOGGED_IN_ID); } $this->eventManager->dispatch('checkout_submit_before', ['quote' => $quote]); $order = $this->submit($quote); if (null == $order) { throw new LocalizedException( __('An error occurred on the server. Please try to place the order again.') ); } $this->checkoutSession->setLastQuoteId($quote->getId()); *****************27***************** File: vendor/mage2pro/core/Payment/PlaceOrderInternal.php Line: 34 Caller: Df\Payment\PlaceOrderInternal::_place Callee: Magento\Quote\Model\QuoteManagement::placeOrder Context: private function _place() { /** @var int $oid */ try { BA::disable(!$this->s()->requireBillingAddress()); try {$oid = df_quote_m()->placeOrder($this->qid());} finally {BA::restore();} } catch (\Exception $e) {throw new CouldNotSave(__($this->message($e)), $e);} return dfp_iia(df_order($oid), self::$REDIRECT_DATA); } *****************28***************** File: vendor/mage2pro/core/Payment/PlaceOrderInternal.php Line: 124 Caller: Df\Payment\PlaceOrderInternal::p Callee: Df\Payment\PlaceOrderInternal::_place Context: static function p($cartId, $isGuest) {return dfw_encode((new self($cartId, $isGuest))->_place());} *****************29***************** File: vendor/mage2pro/core/Payment/PlaceOrder.php Line: 65 Caller: Df\Payment\PlaceOrder::p Callee: Df\Payment\PlaceOrderInternal::p Context: private function p($isGuest, $cartId, ...$args) { /** @var IGuest|Guest|IRegistered|Registered $saver */ $saver = df_o($isGuest ? IGuest::class : IRegistered::class); $saver->savePaymentInformation($cartId, ...$args); return PlaceOrderInternal::p($cartId, $isGuest); } *****************30***************** File: vendor/mage2pro/core/Payment/PlaceOrder.php Line: 44 Caller: Df\Payment\PlaceOrder::registered Callee: Df\Payment\PlaceOrder::p Context: function registered($cartId, IQP $qp, IQA $ba = null) {return $this->p(false, $cartId, $qp, $ba);} *****************31***************** Caller: call_user_func_array Callee: Df\Payment\PlaceOrder::registered *****************32***************** File: vendor/magento/module-webapi/Controller/Rest.php Line: 307 Caller: Magento\Webapi\Controller\Rest::processApiRequest Callee: call_user_func_array Context: $route = $this->getInputParamsResolver()->getRoute(); $serviceMethodName = $route->getServiceMethod(); $serviceClassName = $route->getServiceClass(); $service = $this->_objectManager->get($serviceClassName); /** @var \Magento\Framework\Api\AbstractExtensibleObject $outputData */ $outputData = call_user_func_array([$service, $serviceMethodName], $inputParams); $outputData = $this->serviceOutputProcessor->process( $outputData, $serviceClassName, $serviceMethodName ); if ($this->_request->getParam(FieldsFilter::FILTER_PARAMETER) && is_array($outputData)) { $outputData = $this->fieldsFilter->filter($outputData); } *****************33***************** File: vendor/magento/module-webapi/Controller/Rest.php Line: 216 Caller: Magento\Webapi\Controller\Rest::dispatch Callee: Magento\Webapi\Controller\Rest::processApiRequest Context: $this->_request->setPathInfo($path); $this->areaList->getArea($this->_appState->getAreaCode()) ->load(\Magento\Framework\App\Area::PART_TRANSLATE); try { if ($this->isSchemaRequest()) { $this->processSchemaRequest(); } else { $this->processApiRequest(); } } catch (\Exception $e) { $maskedException = $this->_errorProcessor->maskException($e); $this->_response->setException($maskedException); } return $this->_response; } *****************34***************** File: var/generation/Magento/Webapi/Controller/Rest/Interceptor.php Line: 24 Caller: Magento\Webapi\Controller\Rest::dispatch Callee: Magento\Webapi\Controller\Rest::dispatch Context: public function dispatch(\Magento\Framework\App\RequestInterface $request) { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'dispatch'); if (!$pluginInfo) { return parent::dispatch($request); } else { return $this->___callPlugins('dispatch', func_get_args(), $pluginInfo); } } *****************35***************** File: vendor/magento/framework/App/Http.php Line: 135 Caller: Magento\Framework\App\Http::launch Callee: Magento\Webapi\Controller\Rest::dispatch Context: public function launch() { $areaCode = $this->_areaList->getCodeByFrontName($this->_request->getFrontName()); $this->_state->setAreaCode($areaCode); $this->_objectManager->configure($this->_configLoader->load($areaCode)); /** @var \Magento\Framework\App\FrontControllerInterface $frontController */ $frontController = $this->_objectManager->get('Magento\Framework\App\FrontControllerInterface'); $result = $frontController->dispatch($this->_request); // TODO: Temporary solution until all controllers return ResultInterface (MAGETWO-28359) if ($result instanceof ResultInterface) { $this->registry->register('use_page_cache_plugin', true, true); $result->renderResult($this->_response); } elseif ($result instanceof HttpInterface) { $this->_response = $result; } else { throw new \InvalidArgumentException('Invalid return type'); *****************36***************** File: vendor/magento/framework/App/Bootstrap.php Line: 258 Caller: Magento\Framework\App\Bootstrap::run Callee: Magento\Framework\App\Http::launch Context: try { try { \Magento\Framework\Profiler::start('magento'); $this->initErrorHandler(); $this->initObjectManager(); $this->assertMaintenance(); $this->assertInstalled(); $response = $application->launch(); $response->sendResponse(); \Magento\Framework\Profiler::stop('magento'); } catch (\Exception $e) { \Magento\Framework\Profiler::stop('magento'); if (!$application->catchException($this, $e)) { throw $e; } } *****************37***************** File: pub/index.php Line: 39 Callee: Magento\Framework\App\Bootstrap::run Context: DirectoryList::MEDIA => [DirectoryList::URL_PATH => 'media'], DirectoryList::STATIC_VIEW => [DirectoryList::URL_PATH => 'static'], DirectoryList::UPLOAD => [DirectoryList::URL_PATH => 'media/upload'], ]; $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params); /** @var \Magento\Framework\App\Http $app */ $app = $bootstrap->createApplication('Magento\Framework\App\Http'); $bootstrap->run($app);