В вашей функции registerOrderCreateWebhook
вы, похоже, делаете запрос на шоппинг api и предоставляете свой webhook в качестве адреса, по которому shopify перенаправляет пользователя в случае успеха. Если это правильно, то этот запрос не знает о пользователе, который сгенерировал исходный запрос, который сделал запрос API, поскольку запрос исходит из совершенно другого источника.
Вам нужно будет передать ключ вместе с URL-адресом, а затем получить пользователя в orderCreateWebhook
. Что-то вроде:
Shopify::setShopUrl($shop)->setAccessToken($token)->post("admin/webhooks.json",
['webhook' =>
['topic' => 'orders/create',
'address' => 'https://larashop.domain.com/order-create-webhook/some-unique-key',
'format' => 'json'
]
]);
Мое предложение - хранить где-то уникальный хеш, который относится к пользователю в вашей системе, возможно, к столбцу в вашей таблице пользователей. Я бы не стал использовать user_id
по соображениям безопасности. Таким образом, вы получите что-то вроде:
//route
Route::get('/order-create-webhook/{uniqueKey}', 'YourController@orderCreateWebhook');
//or
Route::post('/order-create-webhook/{uniqueKey}', 'YourController@orderCreateWebhook');
// depending on the request type used by api which calls this endpoint
// controller function
public function orderCreateWebhook($uniqueKey, Request $request)
{
$user = User::where('unique_key', $uniqueKey)->first();
$get_template = Order::where('id', Auth::user()->id);
$baseurl = "https://apps.domain.net/smsapi";
$query = "?key=7e3e4d4a6cfebc08eadc&to=number&msg=message&sender_id=Shopify";
$final_uri = $baseurl.$query;
$response = file_get_contents($final_uri);
header ("Content-Type:text/xml");
}