%PDF- %PDF-
Direktori : /home/forge/api-takeaseat.eco-n-tech.co.uk/app/Services/Stripe/ |
Current File : //home/forge/api-takeaseat.eco-n-tech.co.uk/app/Services/Stripe/SellerService.php |
<?php namespace App\Services\Stripe; use Stripe\Stripe; use Stripe\StripeClient; use Stripe\Account; use Stripe\AccountLink; use Stripe\Transfer; use Stripe\Balance; class SellerService { /** * Get the account details * * @param string $connect_id * @return string $account */ public static function getAccount($connect_id) { $stripe = new StripeClient(config('services.stripe.secret')); return $stripe->accounts->retrieve($connect_id, []); } /** * Create a new stripe connect account * * @return string $account */ public static function createAccount(): string { Stripe::setApiKey(config('services.stripe.secret')); $account = Account::create([ 'country' => 'GB', 'type' => 'express', 'capabilities' => [ 'card_payments' => [ 'requested' => true, ], 'transfers' => [ 'requested' => true, ], ] ]); return $account->id; } /** * Create an account link for the Stripe Connect onboarding * * @param \App\Models\User $user * @return \Stripe\AccountLink $account_links */ public static function createAccountLink($user): AccountLink { Stripe::setApiKey(config('services.stripe.secret')); $account_links = AccountLink::create([ 'account' => $user->stripe_connect_id, 'refresh_url' => config('app.frontend_url'), 'return_url' => config('app.frontend_url'), 'type' => 'account_onboarding', ]); return $account_links; } /** * Create a login link for the user's stripe express dashboard * * @param \App\Models\User $user * @return \Stripe\AccountLink $login_link */ public static function createLoginLink($user) { Stripe::setApiKey(config('services.stripe.secret')); $login_link = Account::createLoginLink($user->stripe_connect_id, [ 'redirect_url' => config('app.frontend_url').'/account/financial' ]); return $login_link; } /** * Transfer an amount to the user's connected stripe account * * @param \App\Models\User $user * @param integer $amount * @param string $charge_id * @return \Stripe\Transfer $transfer */ public static function createTransfer($user, $amount, $charge_id): Transfer { Stripe::setApiKey(config('services.stripe.secret')); $transfer = Transfer::create([ 'amount' => $amount, 'currency' => 'gbp', 'destination' => $user->stripe_connect_id, "source_transaction" => $charge_id ]); return $transfer; } /** * Get the connect account balance * * @param \App\Models\User $user * @return \Stripe\Balance $balance */ public static function accountBalance($user): Balance { Stripe::setApiKey(config('services.stripe.secret')); $balance = Balance::retrieve(['stripe_account' => $user->stripe_connect_id]); return $balance; } }