gracias, voy a hacer las pruebas, se agracede su ayuda. cualquier duda lo
posteo

El 7 de noviembre de 2012 11:15, MARCO <[email protected]>escribió:

> 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.
>



-- 
*Elvis Castro v.*

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
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