コード例 #1
0
ファイル: RefundPlugin.php プロジェクト: spryker/Payone
 /**
  * @param array $orderItems
  * @param \Orm\Zed\Sales\Persistence\SpySalesOrder $orderEntity
  * @param \Spryker\Zed\Oms\Business\Util\ReadOnlyArrayObject $data
  *
  * @return array Array
  */
 public function run(array $orderItems, SpySalesOrder $orderEntity, ReadOnlyArrayObject $data)
 {
     $payoneRefundTransfer = new PayoneRefundTransfer();
     $orderTransfer = new OrderTransfer();
     $orderTransfer->fromArray($orderEntity->toArray(), true);
     $refundTransfer = $this->getFactory()->getRefundFacade()->calculateRefund($orderItems, $orderEntity);
     $payoneRefundTransfer->setAmount($refundTransfer->getAmount() * -1);
     $paymentPayoneEntity = $orderEntity->getSpyPaymentPayones()->getFirst();
     $payonePaymentTransfer = new PayonePaymentTransfer();
     $payonePaymentTransfer->fromArray($paymentPayoneEntity->toArray(), true);
     $payoneRefundTransfer->setPayment($payonePaymentTransfer);
     $payoneRefundTransfer->setUseCustomerdata(PayoneApiConstants::USE_CUSTOMER_DATA_YES);
     $narrativeText = $this->getFactory()->getConfig()->getNarrativeText($orderItems, $orderEntity, $data);
     $payoneRefundTransfer->setNarrativeText($narrativeText);
     $this->getFacade()->refundPayment($payoneRefundTransfer);
     return [];
 }
コード例 #2
0
ファイル: PaymentManager.php プロジェクト: spryker/Payone
 /**
  * @param \Generated\Shared\Transfer\PayoneRefundTransfer $refundTransfer
  *
  * @return \Spryker\Zed\Payone\Business\Api\Response\Container\RefundResponseContainer
  */
 public function refundPayment(PayoneRefundTransfer $refundTransfer)
 {
     $payonePaymentTransfer = $refundTransfer->getPayment();
     $paymentEntity = $this->getPaymentEntity($payonePaymentTransfer->getFkSalesOrder());
     $paymentMethodMapper = $this->getPaymentMethodMapper($paymentEntity);
     $requestContainer = $paymentMethodMapper->mapPaymentToRefund($paymentEntity);
     $requestContainer->setAmount($refundTransfer->getAmount());
     $this->setStandardParameter($requestContainer);
     $apiLogEntity = $this->initializeApiLog($paymentEntity, $requestContainer);
     $rawResponse = $this->executionAdapter->sendRequest($requestContainer);
     $responseContainer = new RefundResponseContainer($rawResponse);
     $this->updateApiLogAfterRefund($apiLogEntity, $responseContainer);
     return $responseContainer;
 }