Botones encriptados de PayPal con PHP

Agregar a favoritos

9 Comentarios

Posteado hace 603 días en:

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.


  • avatar

    luman#1 hace 602 días

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


  • avatar

    luman#2 hace 602 días

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

    Developer Paypal Sandbox Paypal


  • avatar

    Icebeat#3 hace 599 días

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


  • avatar

    Carlos#4 hace 443 días

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


  • avatar

    Carlos#5 hace 443 días

    Se me olvidaba,

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

    Salu2!


  • avatar

    Marc Palau#6 hace 361 días

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


  • avatar

    IceBeat#7 hace 361 días

    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 :)


  • avatar

    MBA distancia#8 hace 213 días

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


  • avatar

    SsouL#9 hace 178 días

    Muy útil el tutorial