Hola buenos dias!

Hace un tiempesito hice algo con paypal primeramente tienes que registrate 
y crear cuentas de prueba paypal en su sitio  te pérmite hacer eso en esta 
seccion https://developer.paypal.com/ puedes crear tu cuenta de vendedor y 
cuentas como comprador, cargarle saldo a tus compradores y despues hacer 
tus test, activas ipn notificacion de pago instantaneo biene en tu cuenta 
que ayas creado .

lo mas facil es que generes un boton en el sitio copies el html y lo pegues 
en tu pagina cuando el usuario hace click en el boton
automaticamente se vinula con tu cuenta creada.

-- paypal te pide una url a donde quieres que te mande los datos de los 
pagos echos.
- por tanto tienes que tener una web.
- los datos te los manda por post o get

y con la suiguiente funcion resives y procesas el pago

function paypal_ipn(){
$req = 'cmd=_notify-validate'; 
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}

// post back to PayPal system to validate
$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 ('ssl://www.paypal.com', 443, $errno, $errstr, 30);

// assign posted variables to local variables
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];

if(!$fp){
// HTTP ERROR
 }else{
fputs($fp,$header.$req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if(strcmp ($res, "VERIFIED")==0){
// check the payment_status is Completed
// check that txn_id has not been previously processed
// check that receiver_email is your Primary PayPal email
// check that payment_amount/payment_currency are correct
// process payment
 if($_POST['payment_status']=="Completado"  || 
$_POST['payment_status']=="Processed"){
## comprobar no suplicados transaccion
$existe=$this->Recarga->find("count",array("conditions"=>array("Recarga.txn_id"=>$_POST['txn_id'])));
if($existe<=0){
$usuario=$this->Usuario->find("first",array("conditions"=>array("Usuario.mail"=>$_POST['payer_email'])));
if(!empty($usuario)){
if($_POST['receiver_email']=="[email protected]"){
##Registramos una nueva recarga
$d['Recarga']['usuario_id']=$usuario['Usuario']['id'];
$d['Recarga']['txn_id']=$_POST['txn_id'];
$d['Recarga']['monto']=$_POST['mc_gross'];
$d['Recarga']['estatus']=$_POST['payment_status'];
 $this->Recarga->create();
$this->Recarga->save($d);
 ##Actualizamos el saldo del usuario
$this->Usuario->id=$usuario['Usuario']['id'];
$this->Usuario->saveField("creditos",($usuario['Usuario']['creditos']+$_POST['mc_gross']));
 
}
} 
} 
} 
}
else if (strcmp($res,"INVALID")==0){
// log for manual investigation
 }
}
fclose($fp);
} 
} 


Esta función la puse en un controlador llamado recargas y que no pida login

saludos cualquier cosa escribeme aqui. :)




El miércoles, 7 de noviembre de 2012 09:43:53 UTC-6, tux escribió:
>
> Hola a todos, deseo implementar pagos con paypal, pero no se por donde 
> empezar, o si existe plugin o componentes o deberia trabajarlo a puro 
> codigo con el ejemplo de paypal. sin embargo estoy usando cakephp 2.2 y me 
> pierdo mucho, si alguno de uds. ya ha hecho algo parecido o tiene 
> informacion, les agradeceria su ayuda.
>

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para ver este debate en la Web, visita 
https://groups.google.com/d/msg/cakephp-es/-/7K9T1DMsSYIJ.
Para publicar una entrada en este grupo, envía un correo electrónico a 
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a 
[email protected]
Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.

Responder a