diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index a8e97c3f5216..47d43ded920e 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -122,9 +122,10 @@ class CompanyController extends BaseController //todo Need to discuss this with Hillel which is the best representation to return //when a company is created. Do we send the entire account? Do we only send back the created CompanyUser? - $this->entity_transformer = AccountTransformer::class; - $this->entity_type = Account::class; - return $this->itemResponse($company->account); + $this->entity_transformer = CompanyTransformer::class; + $this->entity_type = Company::class; + + return $this->itemResponse($company); } diff --git a/app/Models/CompanyGateway.php b/app/Models/CompanyGateway.php index fe9773902d1d..46d4ac4f7a5d 100644 --- a/app/Models/CompanyGateway.php +++ b/app/Models/CompanyGateway.php @@ -56,9 +56,6 @@ class CompanyGateway extends BaseModel //$class = str_replace('\\', '', $class); $class = str_replace('_', '', $class); - \Log::error($class); - - if (class_exists($class)) { return $class; } else { @@ -99,7 +96,7 @@ class CompanyGateway extends BaseModel */ public function getAchEnabled() { - return ! empty($this->getConfigField('enableAch')); + return ! empty($this->getConfigField('enable_ach')); } /** @@ -107,7 +104,7 @@ class CompanyGateway extends BaseModel */ public function getApplePayEnabled() { - return ! empty($this->getConfigField('enableApplePay')); + return ! empty($this->getConfigField('enable_apple_pay')); } /** @@ -115,7 +112,7 @@ class CompanyGateway extends BaseModel */ public function getAlipayEnabled() { - return ! empty($this->getConfigField('enableAlipay')); + return ! empty($this->getConfigField('enable_alipay')); } /** @@ -123,7 +120,7 @@ class CompanyGateway extends BaseModel */ public function getSofortEnabled() { - return ! empty($this->getConfigField('enableSofort')); + return ! empty($this->getConfigField('enable_sofort')); } /** @@ -131,7 +128,7 @@ class CompanyGateway extends BaseModel */ public function getSepaEnabled() { - return ! empty($this->getConfigField('enableSepa')); + return ! empty($this->getConfigField('enable_sepa')); } /** @@ -139,7 +136,7 @@ class CompanyGateway extends BaseModel */ public function getBitcoinEnabled() { - return ! empty($this->getConfigField('enableBitcoin')); + return ! empty($this->getConfigField('enable_bitcoin')); } /** @@ -147,7 +144,7 @@ class CompanyGateway extends BaseModel */ public function getPayPalEnabled() { - return ! empty($this->getConfigField('enablePayPal')); + return ! empty($this->getConfigField('enable_pay_pal')); } public function feesEnabled() @@ -162,10 +159,7 @@ class CompanyGateway extends BaseModel */ public function getPublishableKey() :string { - \Log::error($this->config); - \Log::error(json_decode($this->config)); - \Log::error($this->getConfigField('publishableKey')); - return $this->getConfigField('publishableKey'); + return $this->getConfigField('publishable_key'); } /** diff --git a/app/PaymentDrivers/StripePaymentDriver.php b/app/PaymentDrivers/StripePaymentDriver.php index b7e1df7c4268..1716da30ca3b 100644 --- a/app/PaymentDrivers/StripePaymentDriver.php +++ b/app/PaymentDrivers/StripePaymentDriver.php @@ -113,8 +113,11 @@ class StripePaymentDriver extends BasePaymentDriver public function authorizeCreditCardView($data) { + $intent['intent'] = $this->getSetupIntent(); - return view('portal.default.gateways.stripe.create_customer', $data); + + + return view('portal.default.gateways.stripe.create_customer', array_merge($data, $intent)); } @@ -135,6 +138,8 @@ class StripePaymentDriver extends BasePaymentDriver */ public function getSetupIntent() { + Stripe::setApiKey($this->company_gateway->getConfigField('23_apiKey')); + return SetupIntent::create(); } diff --git a/database/seeds/RandomDataSeeder.php b/database/seeds/RandomDataSeeder.php index ad02f2066d58..983cb6e26f6e 100644 --- a/database/seeds/RandomDataSeeder.php +++ b/database/seeds/RandomDataSeeder.php @@ -142,12 +142,10 @@ class RandomDataSeeder extends Seeder $cg->show_address = true; $cg->show_shipping_address = true; $cg->update_details = true; - $cg->config = encrypt(json_encode(config('ninja.testvars.stripe'),true)); + $cg->config = encrypt(config('ninja.testvars.stripe')); $cg->priority_id = 1; $cg->save(); - \Log::error(decrypt($cg->config)); - } } diff --git a/resources/views/portal/default/gateways/stripe/create_customer.blade.php b/resources/views/portal/default/gateways/stripe/create_customer.blade.php index 0f9a35104a89..4f917578c055 100644 --- a/resources/views/portal/default/gateways/stripe/create_customer.blade.php +++ b/resources/views/portal/default/gateways/stripe/create_customer.blade.php @@ -1,399 +1,55 @@ @extends('portal.default.gateways.authorize') @section('credit_card') +
-
-
-
- -
-
-
-
-
-
- -
-
-
-
- -
-
-
- - + + +
+
+ @endsection - @push('scripts') - - // Create a Stripe client. - var stripe = Stripe('{{ $gateway->getPublishableKey() }}'); + - cardExpiry.addEventListener('change', function(event){ - var displayError = document.getElementById('card-errors'); - if (event.error) { - displayError.textContent = event.error.message; - } else { - displayError.textContent = ''; - } - - }); - - cardCvc.addEventListener('change', function(event){ - var displayError = document.getElementById('card-errors'); - if (event.error) { - displayError.textContent = event.error.message; - } else { - displayError.textContent = ''; - } - - }); - - function releaseSubmitButton(){ - $('.payment-form').find('button').prop('disabled', false); - - } - - - // Handle form submission. - var form = document.getElementById('payment-form'); - form.addEventListener('submit', function(event) { - event.preventDefault(); - var options = { - billing_details: { - name: document.getElementById('first_name').value + ' ' + document.getElementById('last_name').value, - @if (!empty($accountGateway->show_address)) - address: { - line1: $('#address1').val(), - line2: $('#address2').val(), - city: $('#city').val(), - state: $('#state').val(), - postal_code: document.getElementById('postal_code')?$('#postal_code').val():null, - country: $("#country_id option:selected").attr('data-iso_3166_2') - } - @endif - } - }; - - @if(request()->capture) - stripe.handleCardSetup('{{$gateway->driver()->getSetupIntent()->client_secret}}', cardNumber, {payment_method_data: options}).then(function (result) { - if (result.error) { - // Inform the user if there was an error. - var errorElement = document.getElementById('card-errors'); - errorElement.textContent = result.error.message; - releaseSubmitButton(); - } else { - // Send the ID to your server. - stripePaymentMethodHandler(result.setupIntent.payment_method); - } - }); - @else - stripe.createPaymentMethod('card', cardNumber, options).then(function (result) { - if (result.error) { - // Inform the user if there was an error. - var errorElement = document.getElementById('card-errors'); - errorElement.textContent = result.error.message; - releaseSubmitButton(); - } else { - // Send the ID to your server. - stripePaymentMethodHandler(result.paymentMethod.id); - } - }); - @endif - }); - - - function stripePaymentMethodHandler(paymentMethodID) { - // Insert the token ID into the form so it gets submitted to the server - var form = document.getElementById('payment-form'); - var hiddenInput = document.createElement('input'); - hiddenInput.setAttribute('type', 'hidden'); - hiddenInput.setAttribute('name', 'paymentMethodID'); - hiddenInput.setAttribute('value', paymentMethodID); - form.appendChild(hiddenInput); - - // Submit the form - form.submit(); - } - - @endpush @push('css') - + @endpush \ No newline at end of file diff --git a/tests/Feature/CompanyTest.php b/tests/Feature/CompanyTest.php index ea911d36c051..61fff26b0a92 100644 --- a/tests/Feature/CompanyTest.php +++ b/tests/Feature/CompanyTest.php @@ -88,7 +88,8 @@ class CompanyTest extends TestCase ) ->assertStatus(200)->decodeResponseJson(); - $company = Company::find($this->decodePrimaryKey($response['data']['company_users'][0]['company']['id'])); + //$company = Company::find($this->decodePrimaryKey($response['data']['company_users'][0]['company']['id'])); + $company = Company::find($this->decodePrimaryKey($response['data']['id'])); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), diff --git a/tests/Unit/EncryptionSettingsTest.php b/tests/Unit/EncryptionSettingsTest.php index 575ffa2c54e5..2c0176e4e7bf 100644 --- a/tests/Unit/EncryptionSettingsTest.php +++ b/tests/Unit/EncryptionSettingsTest.php @@ -27,7 +27,6 @@ class EncryptionSettingsTest extends TestCase $this->settings = encrypt($this->settings); - $this->assertEquals('publish', $this->getConfigField('publishable_key')); $this->assertEquals('client', $this->getConfigField('23_apiKey')); $this->assertEquals(1, $this->getConfigField('enable_ach'));