Для новых кредитных карт я токенизировал карту, а затем снимал с нее деньги. У меня была функция внутри моего CheckoutController.php
, которая запускает поток:
public function checkoutWithNewCard(Request $request) {
$total = $request->input('total');
$customer = $request->user();
$customer->checkout()->createOrder($request->input('total')
}
createOrder()
также создает заказ на моем бэкэнде и очищает корзину, поэтому ее нужно запустить.
Я не переключался на использование новой размещенной Checkout Stripe, поэтому клиент теперь отправляется на собственную форму оформления Stripe и после успеха отправляется обратно на мой сайт, и я использую веб-перехватчик, чтобы поймать событие checkout.session.completed
.
У меня есть StripeController.php
для моих веб-перехватчиков, и я правильно его протестировал. У меня был оператор журнала внутри checkout.session.completed
при оформлении заказа, и он срабатывает правильно.
StripeController. php
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Jobs\CompleteStripeCheckoutWithNewCardJob;
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 = \Stripe\Event::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);
}
}
Я удалил свой оператор журнала и создал место Job
с именем CompleteStripeCheckoutWithNewCardJob()
, потому что теперь мне нужно запустить logi c, который был внутри моего CheckoutController.php
для создания порядка (createOrder()
), но я не знаю, как я могу запустить их из Job
, в другом контексте.