Hallo Zusammen,
Ich arbeite an einem Plugin, welches einen eigenen Storefront-Controller bereitstellt, welcher zukünftig per POST angetriggert werden soll:
/**
* @RouteScope(scopes={"storefront"})
* @Route("/oneflow/postback", name="frontend.oneflow.postback", defaults={"csrf_protected"=false, "XmlHttpRequest"=true}, options={"seo"="false"}, methods={"POST", "GET"})
*/
public function postback(Request $request)
{
$contentType = $request->getContentType();
$token = $request->query->get('token');
if ($contentType !== 'json') {
return new JsonResponse([
'success' => false,
'error' => 'Expected Content-Type "application/json"'
]);
}
if ($token !== self::ACCESS_TOKEN) {
return new JsonResponse([
'success' => false,
'error' => 'Invalid access token'
]);
try {
$data = json_decode($request->getContent(), true);
$result = $this->oneflowPostbackService->processPostbackData($data);
} catch (\Exception $e) {
return new JsonResponse([
'success' => false,
'error' => $e->getMessage()
]);
}
return new JsonResponse($result);
}
Aktuelles Problem: Rufe ich zum Test die URL www.meinshop.de/oneflow/postback auf, bekomme ich eine korrekte Antwort.
Teste ich eine POST-Anfrage (z.B. über Postman) bekomme ich nur einen 403 Forbidden und der Shop meldet "Die Sitzung ist abgelaufen. Bitte kehren Sie zur letzten Seite zurück neu und versuchen Sie es erneut. "
Jemand eine Idee?