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.
