Example #1
0
 /**
  * @param array $credentials
  * @param DelayedOrRepeatTransaction $delayedTxn
  * @return \PatternSeek\ComponentView\Response
  * @throws \Exception
  */
 public static function chargeDelayedOrRepeatPaymentTransaction($credentials, DelayedOrRepeatTransaction $delayedTxn)
 {
     $stripe = new StripeFacade();
     $stripe->setApiKey($credentials['apiPrivKey']);
     $charge = $stripe->chargeCreate(["amount" => $delayedTxn->transactionAmount * 100, "currency" => $delayedTxn->transactionCurrency, "description" => $delayedTxn->transactionDescription, "customer" => $delayedTxn->storedToken]);
     /** @var Transaction $finalTxn */
     $finalTxn = Transaction::fromArray($delayedTxn->toArray(), true);
     $finalTxn->chargeID = $charge->id;
     $finalTxn->time = time();
     try {
         $finalTxn->validate();
     } catch (\Exception $e) {
         $finalTxn->validationError = $e->getMessage();
     }
     return $finalTxn;
 }
Example #2
0
 function testUnserializeAndStripeFailures()
 {
     $billingAddress = $this->getUSAddress();
     $lineItem = $this->getElectronicServiceLineItem();
     $successOutput = [];
     /** @var Basket $view */
     $view = $this->prepareBasket($lineItem, $successOutput, $billingAddress);
     $state = $view->getStateForTesting();
     $serialised = serialize($view);
     /** @var Basket $unserialised */
     $unserialised = unserialize($serialised);
     $unserialised->updateView(['transactionSuccessCallback' => $this->successCallback]);
     $state = $view->getStateForTesting();
     $this->assertTrue($state->readyForPaymentInfo());
     // Check stripe method fails
     StripeFacade::$testMode = true;
     /** @var Basket $uns */
     $unserialised = unserialize($serialised);
     $this->failOn3DifferentCountries($unserialised);
     /** @var Basket $uns */
     $unserialised = unserialize($serialised);
     $this->failOnOnlyIPandCardMatch($unserialised);
     /** @var Basket $uns */
     $unserialised = unserialize($serialised);
     $this->succeedOnSameAddressAndCardCountries($unserialised, $successOutput);
     /** @var Basket $uns */
     $unserialised = unserialize($serialised);
     $this->succeedOnAllCountriesMatch($unserialised, $successOutput);
 }