示例#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;
 }