Adjustments for payment verifications

This commit is contained in:
David Bomba 2024-05-07 11:10:33 +10:00
parent 9846effc47
commit 86dd03d55b
4 changed files with 81 additions and 28 deletions

View File

@ -52,20 +52,31 @@ class PaymentIntentFailureWebhook implements ShouldQueue
public function handle()
{
nlog("payment intent failed");
MultiDB::findAndSetDbByCompanyKey($this->company_key);
nlog($this->stripe_request);
$company = Company::query()->where('company_key', $this->company_key)->first();
foreach ($this->stripe_request as $transaction) {
nlog($transaction);
$payment = Payment::query()
->where('company_id', $company->id)
->when(isset($transaction['payment_intent']), function ($query) use ($transaction) {
$query->where('transaction_reference', $transaction['payment_intent']);
})
->when(isset($transaction['id']), function ($query) use ($transaction) {
$query->where('transaction_reference', $transaction['id']);
->where(function ($query) use ($transaction) {
if(isset($transaction['payment_intent']))
$query->where('transaction_reference', $transaction['payment_intent']);
if(isset($transaction['payment_intent']) && isset($transaction['id']))
$query->orWhere('transaction_reference', $transaction['id']);
if(!isset($transaction['payment_intent']) && isset($transaction['id'])) {
$query->where('transaction_reference', $transaction['id']);
}
})
->first();

View File

@ -65,17 +65,28 @@ class PaymentIntentProcessingWebhook implements ShouldQueue
foreach ($this->stripe_request as $transaction) {
$payment = Payment::query()
->where('company_id', $company->id)
->when(isset($transaction['payment_intent']), function ($query) use ($transaction) {
$query->where('transaction_reference', $transaction['payment_intent']);
})
->when(isset($transaction['id']), function ($query) use ($transaction) {
$query->where('transaction_reference', $transaction['id']);
->where(function ($query) use ($transaction) {
if(isset($transaction['payment_intent'])) {
$query->where('transaction_reference', $transaction['payment_intent']);
}
if(isset($transaction['payment_intent']) && isset($transaction['id'])) {
$query->orWhere('transaction_reference', $transaction['id']);
}
if(!isset($transaction['payment_intent']) && isset($transaction['id'])) {
$query->where('transaction_reference', $transaction['id']);
}
})
->first();
if ($payment) {
$payment->status_id = Payment::STATUS_PENDING;
$payment->save();

View File

@ -66,15 +66,25 @@ class PaymentIntentWebhook implements ShouldQueue
$payment = Payment::query()
->where('company_id', $company->id)
->when(isset($transaction['payment_intent']), function ($query) use ($transaction) {
$query->where('transaction_reference', $transaction['payment_intent']);
})
->when(isset($transaction['id']), function ($query) use ($transaction) {
$query->where('transaction_reference', $transaction['id']);
->where(function ($query) use ($transaction) {
if(isset($transaction['payment_intent'])) {
$query->where('transaction_reference', $transaction['payment_intent']);
}
if(isset($transaction['payment_intent']) && isset($transaction['id'])) {
$query->orWhere('transaction_reference', $transaction['id']);
}
if(!isset($transaction['payment_intent']) && isset($transaction['id'])) {
$query->where('transaction_reference', $transaction['id']);
}
})
->first();
if ($payment) {
$payment->status_id = Payment::STATUS_COMPLETED;
$payment->save();

View File

@ -706,15 +706,25 @@ class StripePaymentDriver extends BaseDriver
if ($request->type === 'charge.succeeded') {
foreach ($request->data as $transaction) {
$payment = Payment::query()
->where('company_id', $this->company_gateway->company_id)
->when(isset($transaction['payment_intent']), function ($query) use ($transaction) {
$payment = Payment::query()
->where('company_id', $this->company_gateway->company_id)
->where(function ($query) use ($transaction) {
if(isset($transaction['payment_intent'])) {
$query->where('transaction_reference', $transaction['payment_intent']);
})
->when(isset($transaction['id']), function ($query) use ($transaction) {
}
if(isset($transaction['payment_intent']) && isset($transaction['id'])) {
$query->orWhere('transaction_reference', $transaction['id']);
}
if(!isset($transaction['payment_intent']) && isset($transaction['id'])) {
$query->where('transaction_reference', $transaction['id']);
})
->first();
}
})
->first();
if ($payment) {
@ -743,17 +753,28 @@ class StripePaymentDriver extends BaseDriver
if ($charge->captured) {
$payment = Payment::query()
->where('company_id', $this->company_gateway->company_id)
->when(isset($transaction['payment_intent']), function ($query) use ($transaction) {
$query->where('transaction_reference', $transaction['payment_intent']);
})
->when(isset($transaction['id']), function ($query) use ($transaction) {
$query->where('transaction_reference', $transaction['id']);
->where(function ($query) use ($transaction) {
if(isset($transaction['payment_intent'])) {
$query->where('transaction_reference', $transaction['payment_intent']);
}
if(isset($transaction['payment_intent']) && isset($transaction['id'])) {
$query->orWhere('transaction_reference', $transaction['id']);
}
if(!isset($transaction['payment_intent']) && isset($transaction['id'])) {
$query->where('transaction_reference', $transaction['id']);
}
})
->first();
if ($payment) {
$payment->status_id = Payment::STATUS_COMPLETED;
$payment->save();