diff --git a/app/Http/Controllers/ClientPortal/NinjaPlanController.php b/app/Http/Controllers/ClientPortal/NinjaPlanController.php index 507f874790db..8080145d7504 100644 --- a/app/Http/Controllers/ClientPortal/NinjaPlanController.php +++ b/app/Http/Controllers/ClientPortal/NinjaPlanController.php @@ -15,6 +15,7 @@ namespace App\Http\Controllers\ClientPortal; use App\Http\Controllers\Controller; use App\Http\Requests\ClientPortal\Uploads\StoreUploadRequest; use App\Libraries\MultiDB; +use App\Models\Account; use App\Models\ClientContact; use App\Models\Company; use App\Utils\Ninja; @@ -26,14 +27,21 @@ use Illuminate\Support\Facades\Auth; class NinjaPlanController extends Controller { - public function index(string $contact_key, string $company_key) + public function index(string $contact_key, string $account_or_company_key) { - MultiDB::findAndSetDbByCompanyKey($company_key); - $company = Company::where('company_key', $company_key)->first(); + MultiDB::findAndSetDbByCompanyKey($account_or_company_key); + $company = Company::where('company_key', $account_or_company_key)->first(); + + if(!$company){ + MultiDB::findAndSetDbByAccountKey($account_or_company_key); + $account = Account::where('key', $account_or_company_key)->first(); + } + else + $account = $company->account; + nlog("Ninja Plan Controller Company key found {$company->company_key}"); - $account = $company->account; if (MultiDB::findAndSetDbByContactKey($contact_key) && $client_contact = ClientContact::where('contact_key', $contact_key)->first()) { diff --git a/app/PaymentDrivers/Square/CreditCard.php b/app/PaymentDrivers/Square/CreditCard.php index b5bf6eec93ef..63a581472133 100644 --- a/app/PaymentDrivers/Square/CreditCard.php +++ b/app/PaymentDrivers/Square/CreditCard.php @@ -270,6 +270,10 @@ class CreditCard if ($api_response->isSuccess()) { $customers = $api_response->getBody(); $customers = json_decode($customers); + + if(count(array($api_response->getBody(),1)) == 0) + $customers = false; + } else { $errors = $api_response->getErrors(); } diff --git a/app/PaymentDrivers/WePay/ACH.php b/app/PaymentDrivers/WePay/ACH.php index 6de6498c2ea0..3a8a14b5ad8e 100644 --- a/app/PaymentDrivers/WePay/ACH.php +++ b/app/PaymentDrivers/WePay/ACH.php @@ -60,12 +60,16 @@ class ACH 'method' => '1', */ - $response = $this->wepay_payment_driver->wepay->request('payment_bank/persist', [ - 'client_id' => config('ninja.wepay.client_id'), - 'client_secret' => config('ninja.wepay.client_secret'), - 'payment_bank_id' => (int)$data['bank_account_id'], - ]); - + try{ + $response = $this->wepay_payment_driver->wepay->request('payment_bank/persist', [ + 'client_id' => config('ninja.wepay.client_id'), + 'client_secret' => config('ninja.wepay.client_secret'), + 'payment_bank_id' => (int)$data['bank_account_id'], + ]); + } + catch(\Exception $e){ + throw new PaymentFailed($e->getMessage(), 400); + } // display the response // nlog($response); @@ -202,26 +206,31 @@ class ACH $app_fee = (config('ninja.wepay.fee_ach_multiplier') * $this->wepay_payment_driver->payment_hash->data->amount_with_fee) + config('ninja.wepay.fee_fixed'); - $response = $this->wepay_payment_driver->wepay->request('checkout/create', array( - // 'callback_uri' => route('payment_webhook', ['company_key' => $this->wepay_payment_driver->company_gateway->company->company_key, 'company_gateway_id' => $this->wepay_payment_driver->company_gateway->hashed_id]), - 'unique_id' => Str::random(40), - 'account_id' => $this->wepay_payment_driver->company_gateway->getConfigField('accountId'), - 'amount' => $this->wepay_payment_driver->payment_hash->data->amount_with_fee, - 'currency' => $this->wepay_payment_driver->client->getCurrencyCode(), - 'short_description' => 'Goods and Services', - 'type' => 'goods', - 'fee' => [ - 'fee_payer' => config('ninja.wepay.fee_payer'), - 'app_fee' => $app_fee, - ], - 'payment_method' => array( - 'type' => 'payment_bank', - 'payment_bank' => array( - 'id' => $token->token + try{ + $response = $this->wepay_payment_driver->wepay->request('checkout/create', array( + // 'callback_uri' => route('payment_webhook', ['company_key' => $this->wepay_payment_driver->company_gateway->company->company_key, 'company_gateway_id' => $this->wepay_payment_driver->company_gateway->hashed_id]), + 'unique_id' => Str::random(40), + 'account_id' => $this->wepay_payment_driver->company_gateway->getConfigField('accountId'), + 'amount' => $this->wepay_payment_driver->payment_hash->data->amount_with_fee, + 'currency' => $this->wepay_payment_driver->client->getCurrencyCode(), + 'short_description' => 'Goods and Services', + 'type' => 'goods', + 'fee' => [ + 'fee_payer' => config('ninja.wepay.fee_payer'), + 'app_fee' => $app_fee, + ], + 'payment_method' => array( + 'type' => 'payment_bank', + 'payment_bank' => array( + 'id' => $token->token + ) ) - ) - )); - + )); + } + catch(\Exception $e){ + throw new PaymentFailed($e->getMessage(), 500); + } + /* Merge all data and store in the payment hash*/ $state = [ 'server_response' => $response,