示例#1
0
function wha_secret_key($partnerId, $keyId)
{
    static $secrets = array();
    if (isset($secrets[$partnerId])) {
        return $secrets[$partnerId];
    }
    $configs = bank_lister_configs();
    foreach ($configs as $config) {
        if ($config['presta'] == 'internetplus' and $config['actif']) {
            if (isset($config['MERCHANT_ID']) and $config['MERCHANT_ID'] == $partnerId and isset($config['SECRET']) and $config['SECRET']) {
                return $secrets[$partnerId] = $config['SECRET'];
            }
        }
    }
    // sinon on log l'absence de cle
    spip_log("wha_secret_key : pas de config internetplus avec MERCHANT_ID={$partnerId} et SECRET defini", "internetplus" . _LOG_ERREUR);
    return $secrets[$partnerId] = "nokey";
}
示例#2
0
/**
 * Compter si un presta est utiliser plusieurs fois pour permettre de mettre un label dessus
 * @param string $presta
 * @return string
 */
function bank_configure_label_presta($presta)
{
    static $configs;
    if (is_null($configs)) {
        $configs = bank_lister_configs();
    }
    $n = 0;
    foreach ($configs as $c) {
        if ($c['presta'] == $presta) {
            $n++;
        }
        if ($n > 1) {
            return ' ';
        }
    }
    return '';
}
示例#3
0
function filtre_bank_lister_configs_dist($type)
{
    include_spip('inc/bank');
    return bank_lister_configs($type);
}
示例#4
0
文件: bank.php 项目: nursit/bank
/**
 * Trouver une config d'apres le nom du presta
 * si un ID de config est fourni en suffixe du nom du presta,
 * on l'utilise pour verifier qu'on a bien la bonne config
 * (cas de configs multiples avec le meme presta)
 * sinon on prend la premiere config qui a le bon presta
 * Si possible on choisit une config "active"
 * mais si on ne trouve qu'une config non active on s'en contente
 *
 * @param string $presta
 *   soit presta-ID pour trouver le bon presta a coup sur
 *   soit presta tout seul (legacy) => trouvera le premier qui correspond
 * @param bool $abo
 * @return array
 */
function bank_config($presta, $abo = false)
{
    $id = "";
    $mode = $presta;
    if (preg_match(",[/-][A-F0-9]{4},Uims", $presta)) {
        $mode = substr($presta, 0, -5);
        $id = substr($presta, -4);
    }
    if (substr($mode, -5) === "_test") {
        $mode = substr($mode, 0, -5);
    }
    // renommage d'un prestataire : assurer la continuite de fonctionnement
    if ($mode == "cyberplus") {
        $mode = "systempay";
    }
    $type = null;
    if ($abo) {
        $type = 'abo';
    }
    $config = false;
    if ($mode !== "gratuit") {
        $configs = bank_lister_configs($type);
        $ids = array($id);
        if ($id) {
            $ids[] = "";
        }
        foreach ($ids as $i) {
            foreach ($configs as $k => $c) {
                if ($c['presta'] == $mode and (!$i or $i == bank_config_id($c))) {
                    // si actif c'est le bon, on sort
                    if (isset($c['actif']) and $c['actif']) {
                        $config = $c;
                        break;
                    }
                    // si inactif on le memorise mais on continue a chercher
                    if (!$config) {
                        $config = $c;
                    }
                }
            }
            if ($config) {
                break;
            }
        }
        if (!$config) {
            spip_log("Configuration {$mode} introuvable", "bank" . _LOG_ERREUR);
            $config = array('erreur' => 'inconnu');
        }
    } else {
        $config = array('presta' => 'gratuit', 'actif' => true);
    }
    #if (!isset($config['actif']) OR !$config['actif']){
    #	$config = array();
    #}
    if (!isset($config['presta'])) {
        $config['presta'] = $mode;
        // servira pour l'aiguillage dans le futur
    }
    if (!isset($config['config'])) {
        $config['config'] = ($abo ? 'abo_' : '') . $mode;
    }
    if (!isset($config['type'])) {
        $config['type'] = $abo ? 'abo' : 'acte';
    }
    return $config;
}