/home/techb158/immovalet.com/vendor/laravel/cashier/src/Concerns
Edit: /home/techb158/immovalet.com/vendor/laravel/cashier/src/Concerns/PerformsCharges.php (3697B)
'automatic',
'confirm' => true,
'currency' => $this->preferredCurrency(),
], $options);
$options['amount'] = $amount;
$options['payment_method'] = $paymentMethod;
if ($this->hasStripeId()) {
$options['customer'] = $this->stripe_id;
}
$payment = new Payment(
$this->stripe()->paymentIntents->create($options)
);
$payment->validate();
return $payment;
}
/**
* Refund a customer for a charge.
*
* @param string $paymentIntent
* @param array $options
* @return \Stripe\Refund
*/
public function refund($paymentIntent, array $options = [])
{
return $this->stripe()->refunds->create(
['payment_intent' => $paymentIntent] + $options
);
}
/**
* Begin a new checkout session for existing prices.
*
* @param array|string $items
* @param array $sessionOptions
* @param array $customerOptions
* @return \Laravel\Cashier\Checkout
*/
public function checkout($items, array $sessionOptions = [], array $customerOptions = [])
{
$payload = array_filter([
'allow_promotion_codes' => $this->allowPromotionCodes,
'automatic_tax' => $this->automaticTaxPayload(),
'discounts' => $this->checkoutDiscounts(),
'line_items' => Collection::make((array) $items)->map(function ($item, $key) {
if (is_string($key)) {
return ['price' => $key, 'quantity' => $item];
}
$item = is_string($item) ? ['price' => $item] : $item;
$item['quantity'] = $item['quantity'] ?? 1;
return $item;
})->values()->all(),
'tax_id_collection' => [
'enabled' => Cashier::$calculatesTaxes ?: $this->collectTaxIds,
],
]);
return Checkout::create($this, array_merge($payload, $sessionOptions), $customerOptions);
}
/**
* Begin a new checkout session for a "one-off" charge.
*
* @param int $amount
* @param string $name
* @param int $quantity
* @param array $sessionOptions
* @param array $customerOptions
* @return \Laravel\Cashier\Checkout
*/
public function checkoutCharge($amount, $name, $quantity = 1, array $sessionOptions = [], array $customerOptions = [])
{
if ($this->isAutomaticTaxEnabled()) {
throw new LogicException('For now, you cannot use checkout charges in combination automatic tax calculation.');
}
return $this->checkout([[
'price_data' => [
'currency' => $this->preferredCurrency(),
'product_data' => [
'name' => $name,
],
'unit_amount' => $amount,
],
'quantity' => $quantity,
]], $sessionOptions, $customerOptions);
}
}