Sto testando su av il cms phpprobids per una società maltese, in pratica ho un problema con il pagamento di paypal
il sito funziona in account mode, ovvero l'user ricarica il proprio account per mettere le aste (il pagamento viene scalato dall'ammontare generale).
procedendo al pagamento in testmode (modalità interna per il testing di pagamento) nessun problema; i crediti vengono accreditati
con paypal, dopo aver impostato il callback url nel pannello ipn di paypal, ho provato a fare un pagamento: soldi ricevuti, code 200 di pp, ritorno sul sito con il callback che riconosce il pagamento effettuato, ma non mi accredita nessun dindino nell'account.
contattando il supporto, mi ha detto che non è abilitato fsopen_url (il che non è possibile perchè ho il server to server abilitato)
ecco il codice del processore del pagamento:
Codice PHP:
session_start();
define ('IN_SITE', 1);
include_once ('includes/global.php');
include_once ('includes/class_fees.php');
(string) $active_pg = 'PayPal';
(string) $error_output = null;
$pg_enabled = $db->get_sql_field("SELECT checked FROM " . DB_PREFIX . "payment_gateways WHERE
name='" . $active_pg . "' LIMIT 0,1", "checked");
if (!$pg_enabled) { die(GMSG_NOT_AUTHORIZED); }
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value)
{
$value = urlencode(stripslashes($value));
$req .= '&' . $key . '=' . $value;
}
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
//$fp = fsockopen('ssl://www.sandbox.paypal.com',443,$err_num,$err_str,30);
$payment_status = $_POST['payment_status'];
$payment_gross = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
list($custom, $fee_table) = explode('TBL',$_POST['custom']);
if (!$fp)
{
$error_output = $errstr . ' (' . $errno . ')';
}
else
{
fputs ($fp, $header . $req);
while (!feof($fp))
{
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0 && $payment_status == "Completed")
{
$process_fee = new fees();
$process_fee->setts = &$setts;
$process_fee->callback_process($custom, $fee_table, $active_pg, $payment_gross, $txn_id, $payment_currency);
}
}
fclose ($fp);
}
?>
any ideas???