/** * @param Api\OrderApi $orderApi * @param Api\AgreementApi $agreementApi * @param Api\RecurringApi $recurringApi * * @return \Payum\Core\Payment */ public static function create(OrderApi $orderApi, AgreementApi $agreementApi = null, RecurringApi $recurringApi = null) { $payment = new Payment(); if ($agreementApi) { $payment->addApi($agreementApi); $payment->addAction(new AgreementDetailsStatusAction()); $payment->addAction(new CreateAgreementAction()); $payment->addAction(new DeleteAgreementAction()); $payment->addAction(new CheckAgreementAction()); $payment->addAction(new AutoPayAgreementAction()); } if ($recurringApi) { $payment->addApi($recurringApi); $payment->addAction(new StartRecurringPaymentAction()); $payment->addAction(new StopRecurringPaymentAction()); $payment->addAction(new CheckRecurringPaymentAction()); } $payment->addApi($orderApi); $payment->addExtension(new EndlessCycleDetectorExtension()); $payment->addAction(new InitializeOrderAction()); $payment->addAction(new CompleteOrderAction()); $payment->addAction(new CheckOrderAction()); $payment->addAction(new PaymentDetailsCaptureAction()); $payment->addAction(new PaymentDetailsStatusAction()); $payment->addAction(new PaymentDetailsSyncAction()); $payment->addAction(new AutoPayPaymentDetailsCaptureAction()); $payment->addAction(new AutoPayPaymentDetailsStatusAction()); $payment->addAction(new ExecuteSameRequestWithModelDetailsAction()); return $payment; }
/** * @param Api $api * * @return Payment */ public static function create(Api $api) { $payment = new Payment(); $payment->addApi($api); $payment->addExtension(new EndlessCycleDetectorExtension()); $payment->addAction(new CaptureOnsiteAction()); $payment->addAction(new StatusAction()); $payment->addAction(new ExecuteSameRequestWithModelDetailsAction()); return $payment; }
/** * @param \Omnipay\Common\GatewayInterface $gateway * * @return Payment */ public static function create(GatewayInterface $gateway) { $payment = new Payment(); $payment->addApi($gateway); $payment->addExtension(new EndlessCycleDetectorExtension()); $payment->addAction(new CaptureAction()); $payment->addAction(new StatusAction()); $payment->addAction(new ExecuteSameRequestWithModelDetailsAction()); return $payment; }
/** * @param Api $api * * @return \Payum\Core\Payment */ public static function create(Api $api) { $payment = new Payment(); $payment->addApi($api); $payment->addExtension(new EndlessCycleDetectorExtension()); $payment->addAction(new SetExpressCheckoutAction()); $payment->addAction(new GetTransactionDetailsAction()); $payment->addAction(new CaptureOnsiteAction()); $payment->addAction(new FillOrderDetailsAction()); $payment->addAction(new StatusAction()); $payment->addAction(new ExecuteSameRequestWithModelDetailsAction()); $payment->addAction(new GetHttpRequestAction()); return $payment; }
/** * @param \Klarna_Checkout_ConnectorInterface $connector * * @return \Payum\Core\Payment */ public static function create(\Klarna_Checkout_ConnectorInterface $connector, ActionInterface $renderTemplateAction = null, $layoutTemplate = null, $captureTemplate = null) { $layoutTemplate = $layoutTemplate ?: '@PayumCore/layout.html.twig'; $captureTemplate = $captureTemplate ?: '@PayumKlarnaCheckout/Action/capture.html.twig'; $renderTemplateAction = $renderTemplateAction ?: new RenderTemplateAction(TwigFactory::createGeneric(), $layoutTemplate); $payment = new Payment(); $payment->addApi($connector); $payment->addAction(new CaptureAction($captureTemplate)); $payment->addAction(new NotifyAction()); $payment->addAction(new StatusAction()); $payment->addAction(new CreateOrderAction()); $payment->addAction(new UpdateOrderAction()); $payment->addAction($renderTemplateAction); return $payment; }
/** * @param Keys $keys * * @return PaymentInterface */ public static function createCheckout(Keys $keys, ActionInterface $renderTemplateAction = null, $layoutTemplate = null, $obtainTokenTemplate = null) { $layoutTemplate = $layoutTemplate ?: '@PayumCore/layout.html.twig'; $obtainTokenTemplate = $obtainTokenTemplate ?: '@PayumStripe/Action/obtain_checkout_token.html.twig'; $renderTemplateAction = $renderTemplateAction ?: new RenderTemplateAction(TwigFactory::createGeneric(), $layoutTemplate); $payment = new Payment(); $payment->addApi($keys); $payment->addExtension(new EndlessCycleDetectorExtension()); $payment->addAction(new CaptureAction()); $payment->addAction(new StatusAction()); $payment->addAction(new ExecuteSameRequestWithModelDetailsAction()); $payment->addAction($renderTemplateAction); $payment->addAction(new ObtainTokenAction($obtainTokenTemplate)); $payment->addAction(new CreateChargeAction()); return $payment; }
public static function create(Config $config) { $payment = new Payment(); $payment->addApi($config); $payment->addAction(new CaptureAction()); $payment->addAction(new AuthorizeAction()); $payment->addAction(new StatusAction()); $payment->addAction(new SyncAction()); $payment->addAction(new ActivateAction()); $payment->addAction(new ActivateReservationAction()); $payment->addAction(new CancelReservationAction()); $payment->addAction(new CheckOrderStatusAction()); $payment->addAction(new GetAddressesAction()); $payment->addAction(new PopulateKlarnaFromDetailsAction()); $payment->addAction(new ReserveAmountAction()); return $payment; }
/** * @param Api $api * * @return \Payum\Core\Payment */ public static function create(Api $api) { $payment = new Payment(); $payment->addApi($api); $payment->addExtension(new EndlessCycleDetectorExtension()); $payment->addAction(new SetExpressCheckoutAction()); $payment->addAction(new GetExpressCheckoutDetailsAction()); $payment->addAction(new GetTransactionDetailsAction()); $payment->addAction(new DoExpressCheckoutPaymentAction()); $payment->addAction(new CreateRecurringPaymentProfileAction()); $payment->addAction(new GetRecurringPaymentsProfileDetailsAction()); $payment->addAction(new CaptureAction()); $payment->addAction(new NotifyAction()); $payment->addAction(new PaymentDetailsStatusAction()); $payment->addAction(new PaymentDetailsSyncAction()); $payment->addAction(new RecurringPaymentDetailsStatusAction()); $payment->addAction(new RecurringPaymentDetailsSyncAction()); $payment->addAction(new ManageRecurringPaymentsProfileStatusAction()); $payment->addAction(new CreateBillingAgreementAction()); $payment->addAction(new DoReferenceTransactionAction()); $payment->addAction(new AuthorizeTokenAction()); $payment->addAction(new ExecuteSameRequestWithModelDetailsAction()); return $payment; }
/** * @test * * @expectedException \Payum\Core\Exception\LogicException * @expectedExceptionMessage Cannot find right api supported by */ public function throwIfPaymentNotHaveApiSupportedByAction() { $payment = new Payment(); $payment->addApi($firstApi = new \stdClass()); $payment->addApi($secondApi = new \stdClass()); $action = $this->getMockForAbstractClass('Payum\\Core\\Tests\\ApiAwareAction'); $action->expects($this->at(0))->method('setApi')->with($this->identicalTo($firstApi))->will($this->throwException(new UnsupportedApiException('first api not supported'))); $action->expects($this->at(1))->method('setApi')->with($this->identicalTo($secondApi))->will($this->throwException(new UnsupportedApiException('second api not supported'))); $payment->addAction($action); }
/** * @param Payment $payment * @param ArrayObject $config */ protected function buildApis(Payment $payment, ArrayObject $config) { foreach ($config as $name => $value) { if (0 === strpos($name, 'payum.api')) { $prepend = in_array($name, $config['payum.prepend_apis']); if (is_callable($value)) { $payment->addApi(call_user_func_array($value, array($config)), $prepend); } else { $payment->addApi($value, $prepend); } } } }