<form name="_xclick" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick"> // puede ser "_cart" o "_xclick"
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="contactolsg@midominio.com">
<input type="hidden" name="landing_page" value="login"> <!-- login ó billing para pedir datos tarjeta -->
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="item_name" value="DOMINIO 1">
<input type="hidden" name="amount" value="25.30">
<input type="hidden" name="item_number" value="234"> <!-- el id de ese item -->
<input type="hidden" name="quantity" value="1">
<input type="hidden" name="tax" value="10.50"> <!-- Impuestos -->
<input type="hidden" name="return" value="http://www.midominio.com/paypal_bien.html"> <!-- currency -->
<input type="hidden" name="cancel_return" value="http://www.midominio.com/paypal_mal.html"> <!-- currency -->
<input type="hidden" name="notify_url" value="http://www.midominio.com/obtener_ipn.html"> <!-- currency -->
<input type="hidden" name="custom" value="pedido_EDC_2345"> <!-- Sirve para identificar el pago Cuando se recibas la IPN -->
<input type="image" src="http://www.paypal.com/es_XC/i/btn/btn_buynow_LG.gif" border="0" name="submit" alt="Make payments with PayPal">
</form>
Enviar múltiples items en el pedido:
<form name="_xclick" action="<?=$arr["url_sandbox"];?>" method="post" class='xclick'>
<?=$arr["html_form"];?>
<input type="hidden" name="cmd" value="_cart"> <!-- puede ser "_cart" o "_xclick" -->
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="<?=$arr["cuenta_business"];?>">
<input type="hidden" name="landing_page" value="<?=$arr["tipo_pago"];?>"> <!-- login ó billing para pedir datos tarjeta -->
<input type="hidden" name="currency_code" value="EUR">
<?php
foreach ($arr["pedidos"] as $clave=>$valor) {
$clave++; // para q empiece en el 1
?>
<input type="hidden" name="item_name_<?=$clave;?>" value="<?=$valor["item_name"];?>">
<input type="hidden" name="amount_<?=$clave;?>" value="<?=$valor["amount"];?>">
<input type="hidden" name="item_number_<?=$clave;?>" value="<?=$valor["item_number"];?>"> <!-- el id de ese item -->
<input type="hidden" name="quantity_<?=$clave;?>" value="<?=$valor["quantity"];?>">
<input type="hidden" name="tax_<?=$clave;?>" value="<?=$valor["tax"];?>"> <!-- Impuestos -->
<?php
}
?>
<input type="hidden" name="return" value="<?=$arr["url_paypal_ok"];?>">
<input type="hidden" name="cancel_return" value="<?=$arr["url_paypal_ko"];?>">
<input type="hidden" name="notify_url" value="<?=$arr["url_ipn"];?>">
<input type="hidden" name="custom" value="<?=$arr["custom"];?>>"> <!-- Sirve para identificar el pago Cuando se recibas la IPN -->
<input type="image" src="http://www.paypal.com/es_XC/i/btn/btn_buynow_LG.gif" border="0" name="submit" alt="Pagar por Paypal">
</form>
// Luego en la web que recoger (por ejemplo obtener_ipn.html)
<?php
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
$$key = $value;
}
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Host: www.sandbox.paypal.com\r\n"; // www.paypal.com for a live site
$header .= "Content-Length: " . strlen($req) . "\r\n";
$header .= "Connection: close\r\n\r\n";
//$fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 30);
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
$verify_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_notify-validate&' . http_build_query( $_POST );
if (stripos(file_get_contents( $verify_url ), "VERIFIED") === false) return false;
if (!$fp) {
fputs($fich_texto,"ERROR al obtener el IPN de Paypal<hr>".PHP_EOL);
}
else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp,1024);
if (strstr($res,"VERIFIED") !== false) {
// Todo ha ido correcto en el pago y se pueden procesar los datos, para listarlos todos por ejemplo
foreach ($_POST as $key => $value) {
fputs($fich_texto,"El campo ".$key.": ".$value.PHP_EOL);
}
}
}
}
?>
Pasarela de pago internacional
ResponderEliminar