Récupérer les données retournées dans la réponse

Les données retournées dans la réponse dépendent des paramètres envoyés dans la demande de paiement, du type de paiement réalisé, des options de votre boutique et du format de la notification.

Les données sont toujours envoyées en POST par la plateforme de paiement.

La première étape consiste donc à récupérer le contenu reçu en mode POST.

Exemples :

  • En PHP, les données seront stockées dans la superglobale $_POST.

  • En ASP.NET (C#), vous devez utiliser la propriété Form de la classe HttpRequest.

  • En java, vous devez utiliser la méthode getParameter de l'interface HttpServletRequest.

Format API Formulaire

La réponse est constituée d'une liste de champs. Chaque champ contient une valeur réponse. La liste de champs peut être amenée à évoluer.

Le script devra effectuer une boucle pour récupérer la totalité des champs transmis.

Il est recommandé de tester la présence du champ vads_hash, présent uniquement lors d'une notification.

Format API REST

La réponse contient toujours les 5 objets suivants:
Paramètres Description
kr-hash Hash de l’objet JSON stocké dans kr-answer généré avec le mot de passe (qui commence par testpassword_* ou prodpassword_*).
kr-hash-algorithm Algorithme utilisé pour calculer le hash.
kr-hash-key Type de clé utilisée pour signer kr-answer. Toujours valorisé à password dans le cas de l'IPN.
kr-answer-type Type de l’objet JSON contenu dans kr-answer.
kr-answer Objet contenant les objets transactions complets encodés en JSON.

Il est recommandé de tester la présence des champs kr-hash, kr-hash-algorithm et kr-answer avant de commencer le traitement.

Voici un exemple en PHP si vous souhaitez pouvoir gérer les deux formats de notifications
if (empty ($_POST)){
	echo 'POST is empty';

}else{
	echo 'Data Received ';
	if (isset($_POST['vads_hash']){
		
		echo 'Form API notification detected';
		//Signature computation		
		//Signature verification		
		
	}else{
		if (isset($_POST['kr-hash'])&& isset($_POST['kr-hash-algorithm']) && isset($_POST['kr-answer'])){
			
			echo 'REST API notification detected';
			//Signature computation			
			//Signature verification
		}
	} 
}
if (empty ($_POST)){
	echo 'POST is empty';
			
}else{
	echo 'Data Received ';
	if (isset($_POST['vads_hash'])){
			
		echo 'Form API notification detected';
		//Signature computation		
		//Signature verification		
		//Order Update
	} 
}