Changeset View
Changeset View
Standalone View
Standalone View
src/app/Providers/Payment/Stripe.php
Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | class Stripe extends \App\Providers\PaymentProvider | ||||
*/ | */ | ||||
public function createMandate(Wallet $wallet, array $payment): ?array | public function createMandate(Wallet $wallet, array $payment): ?array | ||||
{ | { | ||||
// Register the user in Stripe, if not yet done | // Register the user in Stripe, if not yet done | ||||
$customer_id = self::stripeCustomerId($wallet, true); | $customer_id = self::stripeCustomerId($wallet, true); | ||||
$request = [ | $request = [ | ||||
'customer' => $customer_id, | 'customer' => $customer_id, | ||||
'cancel_url' => Utils::serviceUrl('/wallet'), // required | 'cancel_url' => self::redirectUrl(), // required | ||||
'success_url' => Utils::serviceUrl('/wallet'), // required | 'success_url' => self::redirectUrl(), // required | ||||
'payment_method_types' => ['card'], // required | 'payment_method_types' => ['card'], // required | ||||
'locale' => 'en', | 'locale' => 'en', | ||||
'mode' => 'setup', | 'mode' => 'setup', | ||||
]; | ]; | ||||
// Note: Stripe does not allow to set amount for 'setup' operation | // Note: Stripe does not allow to set amount for 'setup' operation | ||||
// We'll dispatch WalletCharge job when we receive a webhook request | // We'll dispatch WalletCharge job when we receive a webhook request | ||||
▲ Show 20 Lines • Show All 100 Lines • ▼ Show 20 Lines | public function payment(Wallet $wallet, array $payment): ?array | ||||
$customer_id = self::stripeCustomerId($wallet, true); | $customer_id = self::stripeCustomerId($wallet, true); | ||||
$amount = $this->exchange($payment['amount'], $wallet->currency, $payment['currency']); | $amount = $this->exchange($payment['amount'], $wallet->currency, $payment['currency']); | ||||
$payment['currency_amount'] = $amount; | $payment['currency_amount'] = $amount; | ||||
$request = [ | $request = [ | ||||
'customer' => $customer_id, | 'customer' => $customer_id, | ||||
'cancel_url' => Utils::serviceUrl('/wallet'), // required | 'cancel_url' => self::redirectUrl(), // required | ||||
'success_url' => Utils::serviceUrl('/wallet'), // required | 'success_url' => self::redirectUrl(), // required | ||||
'payment_method_types' => ['card'], // required | 'payment_method_types' => ['card'], // required | ||||
'locale' => 'en', | 'locale' => 'en', | ||||
'line_items' => [ | 'line_items' => [ | ||||
[ | [ | ||||
'name' => $payment['description'], | 'name' => $payment['description'], | ||||
'amount' => $amount, | 'amount' => $amount, | ||||
'currency' => \strtolower($payment['currency']), | 'currency' => \strtolower($payment['currency']), | ||||
'quantity' => 1, | 'quantity' => 1, | ||||
▲ Show 20 Lines • Show All 358 Lines • Show Last 20 Lines |