Ларавел Молли, как подойти к Webhook

Где я могу обновить webhook так. Когда я создаю платеж, он работает на веб-сайте mollie, но у них есть идентификатор, сгенерированный mollie. идентификатор, который я назначаю продукту, содержится в метаданных, но, похоже, нет способа получить статус платежа по идентификатору метаданных. Это мой текущий код, который должен создать счет на электронную почту клиента.

Я изменил некоторые данные, используя < > поэтому он не показывает конфиденциальные данные.

public function webhook(Request $request)
{

$mollie = new Mollie_API_Client;
$mollie->setApiKey('<API_TESTKEY>');
$id = $request->id;

/*
* Retrieve the payment's current state.
*/
$payment    = $mollie->payments->get($id);
$order_id   = $payment->metadata->order_id;
$user_id    = $payment->metadata->user_id;

$user       = User::findOrFail($user_id);
$shipping   = $user->addresses()->where('type', 'shipping')->first();
$billing    = $user->addresses()->where('type', 'billing')->first();
$order      = Order::findOrFail($order_id);

/*
* Update the order in the database.
*/
if ($payment->isPaid() == TRUE)
{

$order->update([
'status' => 'betaald'
]);

foreach ($order->products()->get() as $product) {
//update stock amount
$qty = $product->pivot->quantity;
$stock = $product->stock - $qty;
$product->update([
'stock' => $stock
]);
}

// load the pdf view and send request data
$pdf = PDF::loadView('pages.frontend.orders.invoice.pdf',
compact('user', 'order', 'billing'));
// Setup the paper size and orientation
$pdf->setPaper('A4', 'portrait');
$output = $pdf->output();


//send order confirmation mail to client.
Mail::send('pages.frontend.orders.emails.order-confirmation',[
'user' => $user,
'order' => $order,
'shipping' => $shipping,
'billing' => $billing

], function ($m) use ($user,$order,$output) {
$m->from('<MAIL>', '<MAIL_USER>');
$m->to($user->email, $user->first_name . ' ' . $user->surname)
->subject('Bevestiging Bestelling');
$m->attachData($output, 'invoice.pdf');

});

//send confirmation mail to shopowner.
Mail::send('pages.frontend.orders.emails.client-order',[
'user' => $user,
'order' => $order,
'shipping' => $shipping,
'billing' => $billing

], function ($m) use ($user,$order,$output) {
$m->from('<MAIL>', '<MAIL_USER>');
// $m->to('<MAIL>' , '<MAIL_USER>')->subject('Bestelling Klant');
$m->to('<MAIL>', '<MAIL_USER>')->subject('Bestelling Klant');
$m->attachData($output, 'invoice.pdf');

});

Flash::success('Bedankt voor uw bestelling!
U ontvangt direct een mail met uw besteloverzicht.');

}
elseif ($payment->isOpen() == FALSE)
{
$order->update([
'status' => 'betaling mislukt'
]);

Flash::error('Oeps! Het lijkt er op dat uw betaling is mislukt of geannuleerd');
}
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]