$request->getPaymentId(), 'amount' => array( 'value' => $request->getAmount()->getValue(), 'currency' => $request->getAmount()->getCurrency(), ), ); if ($request->hasDescription()) { $result['description'] = $request->getDescription(); } if ($request->hasReceipt()) { $receipt = $request->getReceipt(); $result['receipt'] = array(); /** @var ReceiptItem $item */ foreach ($receipt->getItems() as $item) { $itemArray = array( 'description' => $item->getDescription(), 'amount' => array( 'value' => $item->getPrice()->getValue(), 'currency' => $item->getPrice()->getCurrency(), ), 'quantity' => $item->getQuantity(), 'vat_code' => $item->getVatCode(), ); if ($item->getPaymentSubject()) { $itemArray['payment_subject'] = $item->getPaymentSubject(); } if ($item->getPaymentMode()) { $itemArray['payment_mode'] = $item->getPaymentMode(); } $result['receipt']['items'][] = $itemArray; } $value = $receipt->getCustomer()->getEmail(); if (!empty($value)) { $result['receipt']['customer']['email'] = $value; } $value = $receipt->getCustomer()->getPhone(); if (!empty($value)) { $result['receipt']['customer']['phone'] = $value; } $value = $receipt->getTaxSystemCode(); if (!empty($value)) { $result['receipt']['tax_system_code'] = $value; } } if ($request->hasSources()) { $result['sources'] = $this->serializeSources($request->getSources()); } return $result; } /** * @param AmountInterface $amount * * @return array */ private function serializeAmount(AmountInterface $amount) { return array( 'value' => $amount->getValue(), 'currency' => $amount->getCurrency(), ); } /** * @param SourceInterface[] $transfers * * @return array */ private function serializeSources(array $sources) { $result = array(); foreach ($sources as $source) { $result[] = array( 'account_id' => $source->getAccountId(), 'amount' => $this->serializeAmount($source->getAmount()) ); } return $result; } }