/**
  * {@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);
 }