ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> php-spanish
php-spanish
RE: [PHP-ES] Como generar una firma electronica con SHA1 de forma segura
by Joan Teixido other posts by this author
Nov 20 2006 4:01PM messages near this date
Re: [PHP-ES] Como generar una firma electronica con SHA1 de forma segura | Re: [PHP-ES] Como generar una firma electronica con SHA1 de forma segura
Gracias!

Sí, me entendiste bien... el resumen que has hecho es correcto. La
diferencia és que el resumen de los datos del pago se hace justo en la
pagina anterior y se escoge la forma de pago. En el caso de tarjeta, llamo a
la pagina que genera la firma. Por eso no quería que el usuario volviera
otra vez a darle a un submit. 

De momento lo tengo como expliqué, ya q por lo q dices creo que voy por buen
camino. 

Miraré si puedo cambiar el orden de los pasos y que el submit final ya
genere la firma y así no tener que pasar por una pagina intermedia.


Gracias,

Joan

-----Missatge original-----
De: Pablo Siciliano [mailto:psiciliano@[...].com] 
Enviat: divendres, 17 / novembre / 2006 13:28
Per a: Joan Teixidó
Tema: Re: [PHP-ES] Como generar una firma electronica con SHA1 de forma
segura

Hola Joan.

El problema no pasa por PHP. Ese es un tema de infraestructura web, y 
protocolo HTTP.

Al no usarse para páginas web una conexión que quede activa, la única manera

de pasar algo es a través de un request nuevo. Y la única manera de que ese 
request sea medianamente seguro es vía SSL + Post.

Al margen de eso, repasemos el esquema que nos estás contando:

1) El cliente llena un formulario, presiona un submit y va a otra página.
2) La otra página calcula la firma con sha1 y vuelve a hacer un request con 
los datos originales + la firma
3) La pasarela de pago procesa el request anterior, da un resultado y pone 
un link para volver al sitio de comercio electrónico.

Si no te entendí bien, decime.

Si te entendí bien, la solución es simple: Además de los hidden, usás el 
paso 2) para cumplir una función util para el usuario, no solo para el 
sistema. Donde vos ibas a poner un javascript, poné un simple botón de 
submit y los hidden imprimiendole además al usuario los datos de la 
operación, para que el pueda aceptarla o rechazarla. De esa manera vos te 
evitás la incomodidad técnica y el tiene una vista previa de la operación.
Hasta me animaría a decir que ese paso estaba pensado así cuando se 
implementaron las pasarelas de pago ...



Espero haber sido de ayuda. Saludos.

Pablo.

----- Original Message ----- 
From: "Joan Teixidó" <joan.teixido@[...].com> 
To: "Php-Es Llista Correu" <php-es@[...].net> 
Sent: Thursday, November 16, 2006 7:59 PM
Subject: [PHP-ES] Como generar una firma electronica con SHA1 de forma 
segura


Buenas,



He creado un formulario de compra de un libro y una de las formas de pago es
con tarjeta de crédito/debito a través de una pasarela de pago (en este caso
de Caixa Catalunya). A la pasarela de pago le he de enviar estos datos con
post:



Importe, codigo compra , Codigo comercio, importe , moneda i
firmaElectronica (Ds_Merchant_Amount + Ds_Merchant_Order +
Ds_Merchant_MerchantCode + Ds_Merchant_Currency  +
Ds_Merchant_MerchantSignature  respectivamente)..



La firma electronica se genera con sha1 de la cadena concatenada de los
datos anteriores.clave secreta





Hasta aquí creo que es el procedimiento normal. Ahora mi duda es donde
guardar el valor de la clave secreta? A partir de aquí no se como continuar
de una forma segura. Lo que yo haría sería:



Para realizar el pago, el formulario nos dirige a la pagina tpv.php en un
directorio privado (es un hosting compartido y no lo puedo poner fuera del
root del sitio). La pagina tpv.php recibe por post la variables que he
comentado, genera el merchantSignature (a partir de la clave secreta que
esta guardada en la misma pagina tpv.php) y reenvia el formulario hacia la
web del banco.



Mi duda és si con PHP se puede enviar datos por POST sin tener primero que
imprimir el form i hacer un submit? Porque si no se puede, lo único que se
me ocurre és poner:



 print "datos del form en campos hidden"



i con javascript enviar el formulario?? Que pasa entonces si javascript está
desactivado? Se podrian ver los datos del form (mirando el codigo html) i
descubrir la clave secreta, no?





Os he explicado todo el proceso pq supongo q estoy equivocado i la solucion
pasa por otro sistema.



A ver si me podéis ayudar!



Gracias



(por cierto, aún tengo pendiente comprobar unas soluciones q me dio la lista
sobre mysql i dar los resultados. )



Joan












----------------------------------------------------------------------------
----


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.14.6/535 - Release Date: 2006/11/15



__________ NOD32 1870 (20061117) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com

--
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Thread:
Joan Teixido
Mauricio Rodriguez
Joan Teixido
Gerardo Aquino
Joan Teixido
Gerardo Aquino

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved