Bonjour à tous,

J'essaye en vain d'effectuer une redirection après une validation de paiement.
La validation fait appel à un callback de type POST.
La page de paiement génère un QR code qui sera scanné à l'aide de son smartphone.

J'arrive bien à traiter l'url de callback et générer un enregistrement en BDD.
Par contre il m'est impossible de rediriger la validation du paiement vers la page d'origine.

Dans la méthode "verifyPayment" de mon controlleur j'effectue une redirection vers la page d'origine "payment".
Sur "papier" tout semble correct, je n'ai pas d'erreur dans la console, mais la page ne se redirige pas.

Savez-vous me dire comment m'y prendre ?
Merci pour l'aide

voici ma page html "payment"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<!-- Alert Content -->
		@if ($message = Session::get('success'))
 
<div class="alert alert-success">
 
  <p>{{ $message }}</p>
 
</div>
 
@endif
 
<div id="results">
	<img src="{{ $customizedQRLink }}">
</div>
le fichier route (web.php)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Route::get('/api/payconiq-webhook',[PaymentController::class, 'requestPayment'])->name('payment');
Route::post('/api/payconiq-webhook',[PaymentController::class, 'verifyPayment'])->name('verify');
Mon controlleur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
 
namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
use Optios\Payconiq\PayconiqApiClient;
use Optios\Payconiq\Request\RequestPayment;
use Optios\Payconiq\PayconiqQrCodeGenerator;
use Optios\Payconiq\PayconiqCallbackSignatureVerifier;
use App\Models\Transactions;
 
 
 
class PaymentController extends Controller
{
    public function requestPayment()
    {
    	$apiKey = env('PAYCONIQ_KEY');
		$client = new PayconiqApiClient($apiKey, null, false);
 
		$requestPayment = new RequestPayment(
		    100 // = € 1
		);
		$requestPayment->setCallbackUrl('https://machin.ngrok-free.app/api/payconiq-webhook');
		$requestPayment->setReference('ref123456');
		$requestPayment->setPosId('POS00001');
 
		$payment = $client->requestPayment($requestPayment);
 
		$qrLink = $payment->getQrLink();
		$customizedQRLink  = PayconiqQrCodeGenerator::customizePaymentQrLink(
		    $qrLink,
		    PayconiqQrCodeGenerator::FORMAT_PNG,
		    PayconiqQrCodeGenerator::SIZE_SMALL,
		    PayconiqQrCodeGenerator::COLOR_BLACK
		);
		//var_dump($customizedQRLink);
 
 
		return view('payment',compact('customizedQRLink'));
 
 
	}
 
	public function verifyPayment(Request $request)
	{
 
		$paymentProfileId = env('PAYCONIQ_PROFIL_ID'); //your payconiq payment profile id
 
		// When Payconiq sends a POST to your webhook endpoint (callbackUrl), take the signature from the request header
 
		$signature = $request->header('signature');
 
		//var_dump($signature);
 
		//POST body (payload)
$paymentId = null; 
	$status = null; 
 
		$payload = $request->getContent();
		var_dump($payload);
 
		if (!empty($payload)) {
    $payloadData = json_decode($payload);
 
 
 
    if ($payloadData !== null) {
        // Accéder aux valeurs du payload
        $paymentId = $payloadData->paymentId;
        //$transferAmount = $payloadData->transferAmount;
       // $reference = $payloadData->reference;
        $status = $payloadData->status;
 
        // ... autres traitements avec les données du payload ...
    } else {
        // Le décodage JSON a échoué
        // Gérer l'erreur ou renvoyer une réponse appropriée
    }
} else {
    // Le contenu de la demande est vide
    // Gérer l'erreur ou renvoyer une réponse appropriée
}
 
        $transaction = Transactions::create([
        				'value' => $paymentId
        				]);
 
 
       // $response = array('status' => $status);
 
// Renvoyer la réponse au format JSON
//header('Content-Type: application/json');
//echo json_encode($response);
 
		/*$payconiqCallbackSignatureVerifier = new PayconiqCallbackSignatureVerifier($paymentProfileId, null, null, false);
 
		echo $payconiqCallbackSignatureVerifier->isValid($signature, $payload) ? 'valid' : 'invalid';
 
		var_dump($payconiqCallbackSignatureVerifier->loadAndVerifyJWS($signature, $payload));
		*/
 
 
		 return redirect()->route('payment')->with('success', 'Transaction success');
 
	}
 
 
}