Article ID: 9500, created on Mar 9, 2011, last review on Apr 22, 2012

  • Applies to:
  • Plesk 10.x for Linux
  • Plesk 10.x for Windows

Symptômes

Tous les paiements via la passerelle de paiements BancaSella conservent le statut En cours de traitement.

Cause

Lorsque vous configurez la passerelle de paiements BancaSella, l'une des étapes consiste à définir une URL de rappel vers laquelle la passerelle enverra les statuts des transactions. BancaSella n'accepte pas les ports dans les URL et n'enverra pas de rappels au Gestionnaire Clients & Activité commerciale de Parallels car ce dernier utilise le port 8443. Sans rappel, le Gestionnaire Clients & Activité commerciale de Parallels ne pourra pas changer les status de transactions.

Résolution

Nous offrons le code qui reçoit les rappels de BancaSella et les transférons vers un point final approprié du Gestionnaire Clients & Activité commerciale de Parallels. Ce code requière PHP 5.x pour fonctionner. Vous devez placer ce code dans un emplacement qui ne contient pas de numéros de port et est accessible à distance. Une fois placé, indiquez ce nouvel emplacement en tant qu'URL de rappel dans BancaSella.
 
Pour configurer cet emplacement, nous vous conseillons de procéder comme suit :

* Configurez un hôte virtuel sur le port par défaut
* Installez un autre serveur HTTP
* Mappez le port 8443 en 80 (port par défaut)
 
Avant de placer le code dans l'emplacement, personnalisez-le dans votre système en remplaçant <parallels_plesk_host> par le nom d'hôte du Gestionnaire Clients & Activité commerciale.
 
<?php
 
define("HSPC_CALLBACK_URL", "https://<parallels_plesk_host>:8443/plesk-billing/lib-mbapi/include/modules/gateway/return/HSPCCallback.php");
 
try {
    // following can be skipped if you are configuring callback on Unix.
    if ((! isset($_SERVER["REQUEST_URI"]) || empty($_SERVER["REQUEST_URI"])) && 0 > preg_match("/microsoft\-iis/i", strtolower($_SERVER["SERVER_SOFTWARE"]))) {
        $_SERVER["REQUEST_URI"] = $_SERVER["SCRIPT_NAME"];
        if ($_SERVER["QUERY_STRING"]) {
            $_SERVER["REQUEST_URI"] .= "?{$_SERVER['QUERY_STRING']}";
        }
    }
 
    $options = array(
        CURLOPT_POST => 1,
        CURLOPT_HEADER => 0,
        CURLOPT_URL => HSPC_CALLBACK_URL . $_SERVER["REQUEST_URI"],
        CURLOPT_FRESH_CONNECT => 1,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_FORBID_REUSE => 1,
        CURLOPT_TIMEOUT => 60,
        CURLOPT_POSTFIELDS => http_build_query($_POST),
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_SSL_VERIFYHOST => 2,
    );
    echo HSPC_CALLBACK_URL . $_SERVER["REQUEST_URI"];
    $c = curl_init();
    curl_setopt_array($c, $options);
    $output = (false === $output = curl_exec($c)) ? curl_error($c) : $output;
    curl_close($c);
} catch (Exception $e) {
    $output = $e->getMessage();
}
 
echo $output;
 
?>

dd0611b6086474193d9bf78e2b293040 a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 c796c01d6951fa24ed54c7f1111667c6 85a92ca67f2200d36506862eaa6ed6b8 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article
Save as PDF