Daniel Mota / IceBeat

Mi vida en formato CSS3

Estás en la bitácora de IceBeat, una página sobre diseño y desarrollo web.

Estos días he estado ayudando aun amigo para hacer pagos con PayPal, gracias a este tutorial de Rails hemos podido crear una versión en PHP.

Para generar botones encriptados lo primero que tienes que hacer es crear unos certificados, una vez creados tendrás los datos necesarios para cumplimentar las opciones de la clase.

  $config = array(
        'cert_id' => 'xxx',
        'business' => 'seller_xx@xxx.es',
        'openssl' => '/usr/bin/openssl',
        'my_cert' => 'certificates/my-pubcert.pem',
        'my_key' => 'certificates/my-prvkey.pem',
        'paypal_cert' => 'certificates/paypal_cert.pem'
    );
    //iniciamos la clase
$paypal = new PayPal($config);

Luego hay que pasarles las variables necesarias para encriptar el botón, en la documentación de PayPal encuentras todas las variables.

$form = array(
    'cmd' => '_xclick',
     'item_name' => 't-shirt 13',
     'item_number' => '12',
    'amount' => '4500.00'
);

$encrypted = $paypal->encrypt($form);

Una vez encriptado solo tienes que rellenar los datos del formulario, el action y el campo hidden.

    <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick"/>
<input type="hidden" name="encrypted" value="<?PHP echo $encrypted; ?>"/>
<input type="submit" value="Buy"/>
</form>

Nos queda la parte del IPN (Instant Payment Notification) para saber si la transacción se ha ejecutado con éxito. Es curioso algunas tiendas envían el botón sin encriptar pero si hacen el IPN.

En la clase incluyo el ejemplo para que lo tengáis todo a mano, recordad que en el tutorial escrito en rails tenéis los pasos previos para crear los certificados.

Descargar class.paypal.php.


Comentarios


  1. Recomendación para desarrolladores, daros de alta en Developer Paypal para crear cuentas de prueba tanto de vendedores como de compradores y poder usar el entorno de pruebas Sandbox.

    No tiene mucha gracias hacer pruebas con dinero real aunque sea 0,01€ como he visto en algunos tutos...

    # · luman · hace 1494 días

  2. Ais que no me acordaba que aquí no rula el HTML sino el invento del Markdown...

    Developer Paypal Sandbox Paypal

    # · luman · hace 1494 días

  3. @luman ya tenemos el IPN integrado oeoeoe! a ver si lo publico ;P

    # · Icebeat · hace 1491 días

  4. Excelente código, pero no logro hacer andar la encriptacion en un servidor basado en UNIX.

    En mi PC con Windows al ejecutable del OpenSSL y a los archivos de los certificados debo colocarles la ruta completa, es decir:

    'openssl' => 'C:xamppapachebinopenssl', 'my_cert' => 'C:xampphtdocspruebacertificatesmy-pubcert.pem', 'my_key' => 'C:xampphtdocspruebacertificatesmy-prvkey.pem', 'paypal_cert' => 'C:xampphtdocspruebacertificatespaypal_cert.pem'

    Cuando el archivo ya está en el servidor, le coloco la ruta completa UNIX a cada elemento pero no genera el área encriptada. Es decir:

    'openssl' => '/usr/sfw/bin/openssl', y cosas asi.

    Qué hice mal???

    # · Carlos · hace 1335 días

  5. Se me olvidaba,

    Ya tienen disponible el código para IPN???

    Salu2!

    # · Carlos · hace 1335 días

  6. Dani, aquí Marc de CDmon. Nos conocimos en el Congresowebmasters. Ante todo saludos y encantado de conocerte :).

    He estado trasteando con la clase y al hacer las pruebas me lanza un error que el texto binario no contiene el correo del comercio. He probado de meter tanto el correo como el Id. de cuenta de vendedor seguro y nada, sigue lanzando ese error. Si tiro los datos sin encriptar me los da por buenos y me permite terminar el pago.

    Se te ocurre algo?

    saludos!!

    # · Marc Palau · hace 1253 días

  7. Buenas Marc pues la verdad no se que puede ser, tengo que preguntarle a mi compañero que el fue quien implemento la clase a su tienda.

    La verdad es que fue un placer conocerte :)

    # · IceBeat · hace 1253 días

  8. Bueno gracias por los codigos , los voy a probar , espero que me sirva a futuro, saludos

    # · MBA distancia · hace 1105 días

  9. Muy útil el tutorial

    # · SsouL · hace 1071 días

  10. People all over the world receive the credit loans from various creditors, because it is comfortable.

    # · McguireJosefa · hace 790 días

No se puede añadir más comentarios.