示例#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;
 }
示例#2
0
 /**
  * @param Transaction $txn
  */
 public function populateTransactionDetails(Transaction $txn)
 {
     $txn->testMode = $this->state->testMode;
     $txn->vatNumberStatus = $this->state->vatNumberStatus;
     $txn->vatNumberGiven = $this->state->vatNumber;
     $txn->vatNumberGivenCountryCode = $this->state->vatNumberCountryCode;
     $txn->transactionAmount = $this->state->total;
     $txn->transactionCurrency = $this->state->config->currencyCode;
     $txn->vatAmount = $this->state->vatTotal;
     $txn->billingAddressCountryCode = $this->state->addressCountryCode;
     $txn->ipCountryCode = $this->state->ipCountryCode;
     $txn->billingAddress = $this->state->addressAsString;
     $txn->transactionDescription = $this->state->config->briefDescription;
     $txnDetailArr = [];
     foreach ($this->state->lineItems as $item) {
         // Coerce LineItem StructClass to array
         $txnDetailArr[] = (array) $item;
     }
     $txn->setTransactionDetail($txnDetailArr);
 }