/** * {@inheritDoc} * * @param FillOrderDetails $request */ public function execute($request) { RequestNotSupportedException::assertSupports($this, $request); $order = $request->getOrder(); $details = ArrayObject::ensureArrayObject($order->getDetails()); $details->defaults(array('Lifetime' => Api::DEFAULT_PAYMENT_FORM_LIFETIME, 'OrderLifetime' => Api::DEFAULT_ORDER_LIFETIME, 'Language' => Api::PAYMENT_PAGE_LANGUAGE_RU, 'MeanType' => Api::MEAN_TYPE_ANY, 'EMoneyType' => Api::EMONEY_TYPE_ANY)); if ($this->api->isSandbox()) { unset($details['OrderLifetime']); unset($details['MeanType']); unset($details['EMoneyType']); } $details['Order_IDP'] = $this->api->validateOrderNumber($order->getNumber()); $details['Subtotal_P'] = (double) $order->getTotalAmount() / 100; $details['Currency'] = $this->api->validateOrderCurrency($order->getCurrencyCode()); $details['Comment'] = $order->getDescription(); $details['Customer_IDP'] = $order->getClientId(); $details['Email'] = $order->getClientEmail(); $details->validateNotEmpty('Order_IDP', 'Subtotal_P', 'Currency'); $order->setDetails($details); }