Files
SpiceManagementSystem/app/Http/Controllers/ShopifyInstallController.php
T
Malek TellissiandClaude Sonnet 4.6 527f99bb6e
Deploy / deploy (push) Successful in 14s
Set explicit redirect_uri in Shopify OAuth install URL
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-09-11 03:15:02 +02:00

58 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class ShopifyInstallController extends Controller
{
private string $clientId;
private ?string $clientSecret;
private string $shop;
private string $scopes = 'read_products,read_inventory,read_orders';
public function __construct()
{
$this->clientId = '1b6430c8cc94b5e58716235abd9bbd73';
$this->clientSecret = config('services.shopify.webhook_secret');
$this->shop = 'bluefootedboobyspices.myshopify.com';
}
public function install()
{
$callback = 'https://sms.spices.blue/shopify/callback';
$url = "https://{$this->shop}/admin/oauth/authorize"
. "?client_id={$this->clientId}"
. "&scope={$this->scopes}"
. "&redirect_uri=" . urlencode($callback)
. "&state=spicesetup";
return redirect($url);
}
public function callback(Request $request)
{
$code = $request->query('code');
if (!$code) {
return response('Kein Code empfangen. ' . $request->getQueryString(), 400);
}
$response = Http::post("https://{$this->shop}/admin/oauth/access_token", [
'client_id' => $this->clientId,
'client_secret' => $this->clientSecret,
'code' => $code,
]);
if ($response->failed()) {
return response('Token-Exchange fehlgeschlagen: ' . $response->body(), 500);
}
$token = $response->json('access_token');
return response("<pre>SHOPIFY_ACCESS_TOKEN={$token}</pre>");
}
}