Ejemplo n.º 1
0
 /**
  * @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;
 }
Ejemplo n.º 2
0
 /**
  * @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;
 }
Ejemplo n.º 3
0
 /**
  * @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;
 }
Ejemplo n.º 5
0
 /**
  * @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;
 }
Ejemplo n.º 6
0
 /**
  * @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;
 }
Ejemplo n.º 7
0
 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;
 }
Ejemplo n.º 8
0
 /**
  * @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;
 }
Ejemplo n.º 9
0
 /**
  * @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);
 }
Ejemplo n.º 10
0
    /**
     * @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);
                }
            }
        }
    }