1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-14 07:02:34 +01:00

Fixes for Stripe Connect

This commit is contained in:
David Bomba 2021-05-21 15:47:05 +10:00
parent 99dd97443a
commit b58d3f390e
2 changed files with 18 additions and 10 deletions

View File

@ -21,13 +21,18 @@ class PaymentWebhookController extends Controller
public function __invoke(PaymentWebhookRequest $request, string $company_key, string $company_gateway_id) public function __invoke(PaymentWebhookRequest $request, string $company_key, string $company_gateway_id)
{ {
MultiDB::findAndSetDbByCompanyKey($company_key); // MultiDB::findAndSetDbByCompanyKey($company_key);
$payment = $request->getPayment(); $payment = $request->getPayment();
if(!$payment)
return response()->json(['message' => 'Payment record not found.'], 400);
$client = is_null($payment) ? $request->getClient() : $payment->client; $client = is_null($payment) ? $request->getClient() : $payment->client;
// $contact= $client->primary_contact()->first(); if(!$client)
// Auth::guard('contact')->login($contact, true); return response()->json(['message' => 'Client record not found.'], 400);
return $request->getCompanyGateway() return $request->getCompanyGateway()
->driver($client) ->driver($client)

View File

@ -27,7 +27,7 @@ class PaymentWebhookRequest extends Request
public function authorize() public function authorize()
{ {
MultiDB::findAndSetDbByCompanyKey($this->getCompany()->company_key); MultiDB::findAndSetDbByCompanyKey($this->company_key);
return true; return true;
} }
@ -45,7 +45,7 @@ class PaymentWebhookRequest extends Request
* @param mixed $id * @param mixed $id
* @return null|\App\Models\CompanyGateway * @return null|\App\Models\CompanyGateway
*/ */
public function getCompanyGateway(): ?CompanyGateway public function getCompanyGateway()
{ {
return CompanyGateway::findOrFail($this->decodePrimaryKey($this->company_gateway_id)); return CompanyGateway::findOrFail($this->decodePrimaryKey($this->company_gateway_id));
} }
@ -56,13 +56,13 @@ class PaymentWebhookRequest extends Request
* @param string $hash * @param string $hash
* @return null|\App\Models\PaymentHash * @return null|\App\Models\PaymentHash
*/ */
public function getPaymentHash(): ?PaymentHash public function getPaymentHash()
{ {
if ($this->query('hash')) { if ($this->query('hash')) {
return PaymentHash::where('hash', $this->query('hash'))->firstOrFail(); return PaymentHash::where('hash', $this->query('hash'))->firstOrFail();
} }
return null; return false;
} }
/** /**
@ -94,7 +94,7 @@ class PaymentWebhookRequest extends Request
// If none of previously done logics is correct, we'll just display // If none of previously done logics is correct, we'll just display
// not found page. // not found page.
abort(404); return false;
} }
/** /**
@ -102,11 +102,14 @@ class PaymentWebhookRequest extends Request
* *
* @return null|\App\Models\Client * @return null|\App\Models\Client
*/ */
public function getClient(): ?Client public function getClient()
{ {
$hash = $this->getPaymentHash(); $hash = $this->getPaymentHash();
if($hash)
return Client::find($hash->data->client_id)->firstOrFail(); return Client::find($hash->data->client_id)->firstOrFail();
return false;
} }
/** /**