Laravel: How to access controller function from webhook I created to catch Stripe events?

For new credit cards, I used to tokenize the card and then charge it. I had a function inside my CheckoutController.php that trigger the flow:

public function checkoutWithNewCard(Request $request) {
$total = $request->input('total');
$customer = $request->user();
$customer->checkout()->createOrder($request->input('total')
}

createOrder() also create the order on my backend and clears the cart so it needs to run.

I have no switched to using Stripe’s new hosted Checkout so a customer is now sent to stripe’s own checkout form and upon success, sent back to my site and I am using a webhook to catch checkout.session.completed event.
I have a StripeController.php for my webhooks and tested this properly. I had a log statement inside checkout.session.completed upon checkout and it fires properly.

StripeController.php

<?php

namespace AppHttpControllersAdmin;

use AppHttpControllersController;
use IlluminateHttpRequest;
use AppJobsCompleteStripeCheckoutWithNewCardJob;


class StripeController extends Controller

{
public $payload;

public $event;

public function __construct()
{
$this->payload = @file_get_contents('php://input');
$this->event = null;
}

public function incoming(Request $request)
{

try {
$event = StripeEvent::constructFrom(
json_decode($this->payload, true), $request->all()
);

} catch(UnexpectedValueException $e) {
// Invalid payload
return response()->json(['status' => 0, 'message' => 'error']);
}

// Handle the event
switch ($event->type) {
case 'checkout.session.completed':
dispatch(new CompleteStripeCheckoutWithNewCardJob();
default:
// Unexpected event type

}
return response()->json(['success' => "1"], 200);
}
}

I removed my log statement and created a placehold Job called CompleteStripeCheckoutWithNewCardJob() because I now need to run the logic that was inside my CheckoutController.php to create the order (createOrder()) but I don’t know how I can fire those off from inside the Job, a different context.

from Newest questions tagged laravel-5 – Stack Overflow https://ift.tt/3dlCmrY
via IFTTT

Related Posts

Codeigniter : Parse error: syntax error, unexpected ‘const’ (T_CONST), expecting variable (T_VARIABLE) in Laravel project

I’m getting following error: **Parse error: syntax error, unexpected ‘const’ (T_CONST), expecting variable (T_VARIABLE)** Note : It’s working in local but facing issue in production server. private…

Firebase receive notification while tab is active or on focus

What i want is to be able to perform an action when a user receives a notification while the browser is open and tab is active or…

Laravel’s alias loader does not find class

We have a legacy project that we cannot update and we need to make some changes in symfony’s Response.php in vendor. We have solved this by copying…

Laravel 5 – generic document management

I have a system where you can create different types of unique documents. For instance, one document is called Project Identified and this expects certain inputs. Originally,…

Laravel Nova limit the results in indexQuery

I ran intro a situation where I need to limit the results of a resource to only 3 results. To be more specific, based on the logged…

Auditoria en laravel 5.8 [closed]

Cómo puedo automatizar el registro de actividades de un usuario en laravel? Si un usuario ingresa a un app de laravel, debo guardar toda su actividas, a…

Leave a Reply

Your email address will not be published.