Я отредактировал этот вопрос, поскольку понял, что совершенно не на том пути, однако у меня все еще есть проблема.
Используя Guzzle, как я могу отправить объект в JSON-форме с моего сервера магазина, который не использует Laravel, на мой сервер возвратов, который использует Laravel?
Я продолжаю получать следующую ошибку:
Client error: `POST https://returns.jdoe.blah.test/createReturn` resulted in a `419 unknown status`.
Я думаю, это как-то связано с тем, что у меня нет токена, но я не знаю, что с этим делать. Я знаю, что Laravel использует токены CSRF, но сервер моего магазина не использует эту форму.
На сервере магазина, когда пользователь делает заказ, он сохраняется в объекте «$ order». Я добавил следующий код в order_details.php, чтобы передать два конкретных атрибута объекта заказа:
$client = new Client();
$url = "https://returns.jdoe.blah.test/createReturn";
$post_data = array(
'orderId' => $order['aufnr'],
'customerId' => $order['kundennummer']
);
$data = json_encode($post_data);
$request = $client->post($url, array(
'content-type' => 'application/json'
));
$request->setBody($data);
$response = $request->send();
Тогда в моем проекте Laravel у меня есть:
web.php
Route::post('/createReturn', 'ProductReturnsController@createReturn');
ProductReturnsController.php
<?php
namespace App\Http\Controllers;
use App\ProductReturn;
use Illuminate\Http\Request;
class ProductReturnsController extends Controller
{
public function createReturn($json)
{
echo "hallo";
/* $jsonDecoded = json_decode($json);
$orderId = $jsonDecoded['orderId'];
echo $orderId;*/
return view('data');
}
}
data.blade.php
<html>
<head>
Test
</head>
<body>
This is a test page.
</body>
</html>
Если вам что-нибудь от меня понадобится, чтобы помочь мне решить эту проблему, пожалуйста, не стесняйтесь спрашивать. Спасибо:).