Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/06/2011, 18:35
Avatar de deknisone
deknisone
 
Fecha de Ingreso: marzo-2010
Ubicación: lado obscuro del tiempo
Mensajes: 80
Antigüedad: 14 años, 1 mes
Puntos: 1
No envia datos al e-mail del usuario

Hola ya casi termino mi proyecto termine lo mas dificil, bien mi proyecto es de que el usuario se registre compre una membresia premium por PayPal y si se realiza el pago correctamente, cree el usuario y una contraseña aleatoria en la base de datos

En este ultimo paso envie los datos al usuario para que se pueda logear en la pagina cosa que no consigo si bien no soy experto en php me he basado en tutoriales y en scrips prefabricados solo he cambiado variables, combinado scrips y conectar la base de datos bien les explico aqui con imagenes
user este tutorial para crear el sistema de pago y registro de usuario


Código:
http://net.tutsplus.com/tutorials/php/using-paypals-instant-payment-notification-with-php/
SI bien aqui esta el index/login de la pagina el primer boton de paypal es el real para que se realizen los pagos el que dice option 2 es un boton creado con el sand box de paypal con el cual he estado haciendo pruebas



bien tengo en el IPN de paypal asignado el archivo ipn.php del tutorial al sual solo le modifico la variable $mail por $username, el codigo esta conectado al sandbox si se dan cuenta por que estoy realizando pruebas

Código PHP:
Ver original
  1. <?php
  2. mysql_connect("localhost", "user", "password") or die(mysql_error());
  3.  
  4. // read the post from PayPal system and add 'cmd'
  5. $req = 'cmd=_notify-validate';
  6. foreach ($_POST as $key => $value) {
  7. $value = urlencode(stripslashes($value));
  8. $req .= "&$key=$value";
  9. }
  10. // post back to PayPal system to validate
  11. $header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
  12. $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
  13. $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
  14.  
  15. $fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
  16.  
  17. if (!$fp) {
  18. // HTTP ERROR
  19. } else {
  20. fputs ($fp, $header . $req);
  21. while (!feof($fp)) {
  22. $res = fgets ($fp, 1024);
  23. if (strcmp ($res, "VERIFIED") == 0) {
  24.  
  25. // PAYMENT VALIDATED & VERIFIED!
  26.  
  27. $username = $_POST['payer_email'];
  28. $password = mt_rand(1000, 9999);
  29.  
  30. mysql_query("INSERT INTO users (username,password) VALUES('". mysql_escape_string($username) ."', '".md5($password)."' ) ") or die(mysql_error());
  31.  
  32. $to      = $username;
  33. $subject = 'Download Area | Login credentials';
  34. $message = '
  35.  
  36. Thank you for your purchase
  37.  
  38. Your account information
  39. -------------------------
  40.  
  41. Email: '.$username.'
  42. Password: '.$password.'
  43. -------------------------
  44.            
  45. You can now login at http://yourwebsite.com/PayPal/';
  46. $headers = 'From:[email protected]' . "\r\n";
  47.  
  48. mail($to, $subject, $message, $headers);
  49.  
  50.  
  51.  
  52. }
  53.  
  54. else if (strcmp ($res, "INVALID") == 0) {
  55.  
  56. // PAYMENT INVALID & INVESTIGATE MANUALY!
  57.  
  58. $to      = '[email protected]';
  59. $subject = 'Download Area | Invalid Payment';
  60. $message = '
  61.  
  62. Dear Administrator,
  63.  
  64. A payment has been made but is flagged as INVALID.
  65. Please verify the payment manualy and contact the buyer.
  66.  
  67. Buyer Email: '.$username.'
  68. ';
  69. $headers = 'From:[email protected]' . "\r\n";
  70.  
  71. mail($to, $subject, $message, $headers);
  72.  
  73. }
  74. }
  75. fclose ($fp);
  76. }
  77. ?>

basandome en el tutorial lo modifico para que acceda a la base de datos y cree los usuarios si bien lo primero que se crea es la notificacion de pago instantaneo

Hasta aqui no tengo problemas continuo Pagando con paypal usuando san box


Al notificar y confirmar el pago paypal se crea el usuario en la base de datos tomando el correo y generando un pass aleatorio como lo indica el ipn.php


Sigo de maravilla con todo el codigo sin problema alguno, como deve de ser paypal notifica al usuario y al vendedor .Recibiendo correos de confirmacion en emails de test en san box


Todo va de maravilla pero lo final , es que no se envia el correo con los datos de acceso al usuario

Si alguien me puede echar una mano en este ultimo paso que es lo que impide que termine con mi proyecto