Beispiel #1
0
function ogone_lister_cartes_config($c)
{
    include_spip('inc/bank');
    include_spip("presta/ogone/inc/ogone");
    $config = array('presta' => 'ogone');
    return ogone_available_cards($config);
}
Beispiel #2
0
/**
 * Generer le contexte pour le formulaire de requete de paiement
 * il faut avoir un id_transaction et un transaction_hash coherents
 * pour se premunir d'une tentative d'appel exterieur
 *
 * @param int $id_transaction
 * @param string $transaction_hash
 * @param $config
 *   configuration du module
 * @return array
 */
function presta_ogone_call_request_dist($id_transaction, $transaction_hash, $config)
{
    if (!($row = sql_fetsel("*", "spip_transactions", "id_transaction=" . intval($id_transaction) . " AND transaction_hash=" . sql_quote($transaction_hash)))) {
        return array();
    }
    if (!$row['id_auteur'] and isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur']) {
        sql_updateq("spip_transactions", array("id_auteur" => intval($row['id_auteur'] = $GLOBALS['visiteur_session']['id_auteur'])), "id_transaction=" . intval($id_transaction));
    }
    $cartes = array('VISA', 'MasterCard', 'American Express');
    if (isset($config['cartes']) and is_array($config['cartes']) and $config['cartes']) {
        $cartes = $config['cartes'];
    }
    include_spip('inc/filtres');
    $contexte = array();
    $contexte['PSPID'] = $config['PSPID'];
    $contexte['orderID'] = $id_transaction . "/" . modulo($row['transaction_hash'], 999999);
    $contexte['operation'] = "SAL";
    // c'est un paiement a l'acte immediat
    // passage en centimes d'euros : round en raison des approximations de calcul de PHP
    $contexte['currency'] = "EUR";
    $contexte['amount'] = intval(round(100 * $row['montant'], 0));
    #if (strlen($montant)<3)
    #	$montant = str_pad($montant,3,'0',STR_PAD_LEFT);
    $contexte['language'] = ogone_language_code($GLOBALS['spip_lang']);
    // recuperer l'email
    $contexte['EMAIL'] = bank_porteur_email($row);
    $contexte['CN'] = "";
    $contexte['ownerZIP'] = "";
    $contexte['owneraddress'] = "";
    $contexte['ownercty'] = "";
    $contexte['ownertown'] = "";
    $contexte['ownertelno'] = "";
    // Urls de retour
    include_spip("inc/bank");
    $contexte['accepturl'] = bank_url_api_retour($config, 'response', "id={$id_transaction};{$transaction_hash}");
    $contexte['declineurl'] = bank_url_api_retour($config, 'cancel', "id={$id_transaction};{$transaction_hash}");
    $contexte['cancelurl'] = bank_url_api_retour($config, 'cancel', "id={$id_transaction};{$transaction_hash}");
    $contexte['exceptionurl'] = bank_url_api_retour($config, 'response', "id={$id_transaction};{$transaction_hash}");
    $hidden = "";
    foreach ($contexte as $k => $v) {
        $hidden .= "<input type='hidden' name='{$k}' value='" . str_replace("'", "&#39;", $v) . "' />";
    }
    include_spip('inc/filtres_mini');
    $contexte = array('hidden' => $hidden, 'action' => ogone_url_serveur($config), 'backurl' => url_absolue(self()), 'id_transaction' => $id_transaction, 'transaction_hash' => $transaction_hash);
    $cartes_possibles = ogone_available_cards($config);
    $contexte['cards'] = array();
    foreach ($cartes as $carte) {
        if (isset($cartes_possibles[$carte])) {
            $contexte['cards'][$carte] = $cartes_possibles[$carte];
        }
    }
    return $contexte;
}