diff --git a/app/PaymentDrivers/StripePaymentDriver.php b/app/PaymentDrivers/StripePaymentDriver.php index d76a44594e48..61418d9ddc83 100644 --- a/app/PaymentDrivers/StripePaymentDriver.php +++ b/app/PaymentDrivers/StripePaymentDriver.php @@ -405,11 +405,26 @@ class StripePaymentDriver extends BaseDriver */ public function attach(string $payment_method, $customer): void { + $this->init(); + try { + $stripe_payment_method = $this->getStripePaymentMethod($payment_method); - $stripe_payment_method->attach(['customer' => $customer->id], null, $this->stripe_connect_auth); + $stripe_payment_method->attach(['customer' => $customer->id], $this->stripe_connect_auth); + } catch (ApiErrorException | Exception $e) { - $this->processInternallyFailedPayment($this, $e); + + nlog($e->getMessage()); + + SystemLogger::dispatch([ + 'server_response' => $e->getMessage(), + 'data' => request()->all(), + ], + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_FAILURE, + SystemLog::TYPE_STRIPE, + $this->client); + } } @@ -422,18 +437,27 @@ class StripePaymentDriver extends BaseDriver */ public function detach(ClientGatewayToken $token) { - $stripe = new StripeClient( - $this->company_gateway->getConfigField('apiKey') - ); - try { - $stripe_payment_method = $this->getStripePaymentMethod($token->token); - $stripe_payment_method->detach($token->token, null, $this->stripe_connect_auth); - //$stripe->paymentMethods->detach($token->token, $this->stripe_connect_auth); - } catch (Exception $e) { + $this->init(); + + try{ + + $pm = $this->getStripePaymentMethod($token->token); + $pm->detach([], $this->stripe_connect_auth); + + } catch (ApiErrorException | Exception $e) { + + nlog($e->getMessage()); + SystemLogger::dispatch([ - 'server_response' => $e->getMessage(), 'data' => request()->all(), - ], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, SystemLog::TYPE_STRIPE, $this->client); + 'server_response' => $e->getMessage(), + 'data' => request()->all(), + ], + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_FAILURE, + SystemLog::TYPE_STRIPE, + $this->client); + } } @@ -452,9 +476,13 @@ class StripePaymentDriver extends BaseDriver public function getStripePaymentMethod(string $source) { try { + return PaymentMethod::retrieve($source, $this->stripe_connect_auth); + } catch (ApiErrorException | Exception $e) { + return $this->processInternallyFailedPayment($this, $e); + } } } diff --git a/database/migrations/2021_04_12_095424_stripe_connect_gateway.php b/database/migrations/2021_04_12_095424_stripe_connect_gateway.php index 2d9fe819f7d3..4a6959c13a30 100644 --- a/database/migrations/2021_04_12_095424_stripe_connect_gateway.php +++ b/database/migrations/2021_04_12_095424_stripe_connect_gateway.php @@ -29,7 +29,7 @@ class StripeConnectGateway extends Migration Gateway::create($gateway); - if (Ninja::isNinja()) { + if (Ninja::isHosted()) { Gateway::whereIn('id', [20])->update(['visible' => 0]); Gateway::whereIn('id', [56])->update(['visible' => 1]); } diff --git a/database/seeders/PaymentLibrariesSeeder.php b/database/seeders/PaymentLibrariesSeeder.php index 73294531ee59..e184cad80404 100644 --- a/database/seeders/PaymentLibrariesSeeder.php +++ b/database/seeders/PaymentLibrariesSeeder.php @@ -12,6 +12,7 @@ namespace Database\Seeders; use App\Models\Gateway; use App\Models\GatewayType; +use App\Utils\Ninja; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Seeder; @@ -97,6 +98,11 @@ class PaymentLibrariesSeeder extends Seeder Gateway::whereIn('id', [1,15,20,39,55,50])->update(['visible' => 1]); + if (Ninja::isHosted()) { + Gateway::whereIn('id', [20])->update(['visible' => 0]); + Gateway::whereIn('id', [56])->update(['visible' => 1]); + } + Gateway::all()->each(function ($gateway) { $gateway->site_url = $gateway->getHelp(); $gateway->save();