Foros del Web » Programando para Internet » ASP Clásico »

Ayuda por favor, Carrito - Pasarela de pagos

Estas en el tema de Ayuda por favor, Carrito - Pasarela de pagos en el foro de ASP Clásico en Foros del Web. Si alguien pudiera ayudarme a continuar. Este es el un sencillo código de un carrito: Carrito El asunto es el siguiente: Una vez q se ...
  #1 (permalink)  
Antiguo 29/11/2002, 06:21
 
Fecha de Ingreso: noviembre-2002
Mensajes: 25
Antigüedad: 22 años, 5 meses
Puntos: 0
Ayuda por favor, Carrito - Pasarela de pagos

Si alguien pudiera ayudarme a continuar.
Este es el un sencillo código de un carrito:
Carrito
El asunto es el siguiente:
Una vez q se haya elegido el servicio, te muestra el total.
Necesito que al clickar continuar apareciera un pequeño formulario y que al clickar a "Enviar", me ingresara los datos del formulario y el total en la Base de Datos del carrito (shop.mdb), y que llamara a una URL: https://www.lacasa.es/cgi-bin/tpvcasa?
los siguientes parámetros:
-comercio : que es siempre el mismo
-pedido : que ha de ser siempre diferente.
-datosdelcliente : que es opcional

No se si para el que sabe esto es mucho o poco, pero si me pudiera ayudar a continuar se lo agradecería mucho.

Gracias otra vez
__________________
j. A
  #2 (permalink)  
Antiguo 05/12/2002, 06:28
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Aún tienes el problema?

Creo que puedo ayudarte.
  #3 (permalink)  
Antiguo 05/12/2002, 12:21
 
Fecha de Ingreso: noviembre-2002
Mensajes: 25
Antigüedad: 22 años, 5 meses
Puntos: 0
si

si
__________________
j. A
  #4 (permalink)  
Antiguo 05/12/2002, 12:49
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Veo que utilizas el servicio de la caixa para hacer el pago, pues lo que debes hacer,

1º Los datos de la compra donde los tienes? creo que el carrito que tienes es uno que hay en aspfacil, no? y creo que los datos los guarda en unas cookies.

Así que cuando le da al boton de comprar, haces un link a una página en la que tienes el formulario, haces que ponga el nomnre, dirección, teléfono, ...

<FORM method="post" action="aspemail.asp" name="pasarela">

de esta manera, al hacer enviar en el formulario enlazo con la página aspemail.asp y paso todos los datos del formulario.

los datos que te pide la caixa, si no los recoges tu todos, los tendrá que rellenar en la página de la caixa, por lo que yo de tu los recogeria todos (menos los de la targeta de crédito). Ten en cuenta que tienes que controlar que en el formulario en los datos de teléfono, codigo postal, ... sean numericos, si no da un error en la página de la caixa.

Cuando ya está, en la página asp, puedes hacer dos cosas, grabar los datos del pedido en la base de datos o enviar un mail al propietario de la tienda con todos los datos del pedido. (o las dos cosas) y enlazar con la caixa, enviandole todos los datos.

Response.Redirect "https://www.lacaixa.es/cgi-bin/totpvcaixa?idcom="&Request.Form("idcom")&"&idpedid o="&Request.form("idpedido")&"&importe="&Request.f orm("importe")&"&moneda="&Request.form("moneda")&" &idioma="&Request.form("idioma")&"&pais="&Request. form("pais")&"&mailcomp="&request.form("mailcomp") &"&nombre="&request.form("nombre")&"&apellido1="&r equest.form("apellido1")&"&apellido2="&request.for m("apellido2")&"&direccion="&request.form("direcci on")&"&ciudad="&request.form("ciudad")&"&cp="&requ est.form("cp")&"&provincia="&request.form("provinc ia")&"&telefono="&request.form("telefono")&"&mpago ="&request.form("mpago")&"titulo=senyor"

Bueno no se si te he dejado clara la idea, te lo miras y si tienes alguna cosulta me lo consultas. ok?
  #5 (permalink)  
Antiguo 08/12/2002, 15:01
 
Fecha de Ingreso: noviembre-2002
Mensajes: 25
Antigüedad: 22 años, 5 meses
Puntos: 0
hola Jordan
primero gracias por tu respuesta.
No he podido responderte antes, pues te escribo desde Galicia y hemos estado ayudando el fin de semana en la limpieza de la costa.
La caixa me ha dado un formulario en el que envío los parámetros correctamente y además me incrementa el id_pedido cada vez, con lo que ya tengo un problema menos.
El carrito es de donde me dices, pero creo que no me sirve, y no tengo conocimientos para modificarlo como requiere.

¿Conoces algún carrito sencillo que pudiera añadirle este formulario al final del proceso de compra?

Joe, si me ayudaras...

Muchas Gracias de nuevo
__________________
j. A
  #6 (permalink)  
Antiguo 09/12/2002, 01:15
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Hola, mira puedes utilizar este,

www.webtutorial.com.ar

este funciona con cookies.

Por lo que de entrada te recomiendo que si utilizas cookies, primero mires si el navegador de cliente, tiene activada las cookies, si no las tiene, deberias de enviar un mensaje diciendo que si quiere comprar, las active.

Si lo quieres utilizar, deberias de modificar un poco el código, para adaptarlo a las exigencias de la caixa.

Pruebalo y ya me diras alguna cosa.
  #7 (permalink)  
Antiguo 09/12/2002, 12:38
 
Fecha de Ingreso: noviembre-2002
Mensajes: 25
Antigüedad: 22 años, 5 meses
Puntos: 0
hola de nuevo Jordan
hize lo que me dijiste,
descargué el CIBERTIENDA 1.0 y es perfecto.
Sólo me queda una cosa:
Me envía todo a la pasarela excepto el importe final que me dan las cookies que no puedo-se enviarlo.

En el formulario que me crea el programa me aparece así el código del importe final:
<script language="JavaScript">Total()</script>

Y esta cookie me debe aparecer dentro del siguiente input type :

<input type="text" name="importe" value="+importe+">

y este importe lo tengo en el siguiente javascript del <head>:

document.pasarela.importe.value = aquí debería salir el Total();}

He probado con esto:
...
document.pasarela.importe.value = Total();}
....
<input type="text" name="importe" value="+importe+">



pero no va.


Supongo que estoy ya muy cerca.
¿se te ocurre cómo puedo seguir?

gracias por tu paciencia
__________________
j. A
  #8 (permalink)  
Antiguo 09/12/2002, 14:31
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Hola,
para asegurarte, que te carga el valor de total de la cookie en el campo de formulario importe, puedes hacer esto:

function Total() {
document.writeln(alterError(totprice));
document.pasarela.importe.value=(alterError(totpri ce));

}


Despues de printar por pantalla el importe, lo cargas en importe. Así cada vez que carge la página o si modifica la compra, te vuelve a poner el valor correcto y ves por pantalla en importe que te envía por la pasarela.

Creo que así te funcionará.
  #9 (permalink)  
Antiguo 09/12/2002, 16:30
 
Fecha de Ingreso: noviembre-2002
Mensajes: 25
Antigüedad: 22 años, 5 meses
Puntos: 0
lo siento, no me sale, soy medio tonto o no se...
he llegado hasta aquí y no se cómo aplicar el:
function Total() {
document.writeln(alterError(totprice));
document.pasarela.importe.value=(alterError(totpri ce));

}


que me dices.


<html>
<head>
<title>Formulario</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
function Enviar(form) {
for (i = 0; i < form.elements.length; i++) {
if (form.elements[i].type == "text" && form.elements[i].value == "") {
alert("Por favor complete todos los campos del formulario"); form.elements[i].focus();
return false; }
}
form.submit();
}
</SCRIPT>

<SCRIPT language="javascript">
function identificador(){
mes = new Array ("01","02","03","04","05","06","07","08","09","10" ,"11","12");
hoy = new Date();
index = hoy.getMonth();any = hoy.getYear();dia = hoy.getDate();hora = hoy.getHours();
minutos = hoy.getMinutes();segundos = hoy.getSeconds();
any=any+"";
any=any.substring(2,4);
if (dia < 10) { dia = "0" + dia; }
if (hora < 10) { hora = "0" + hora; }
if (minutos < 10) { minutos = "0" + minutos; }
if (segundos < 10) { segundos = "0" + segundos; }
document.pasarela.idpedido.value = (any + mes[index]+ dia + hora + minutos + segundos);
document.pasarela.importe.value = 1000 ;}
}


<SCRIPT>
<BODY onload=identificador()>
<center>
<table border="0" cellpadding="0" cellspacing="0" width="640" class="body">
<tr>
<td width="50%"><big><big>Formulario</big></big></td>
<td width="50%" align="right">[ <a href="carrito.htm">Carrito de Compra</a> | <a href="estado.htm">Estado</a> | Formulario ]</td>
</tr>
<tr>
<td width="100%" colspan="2">
<hr size="1" color="#000000">
</td>
</tr>
<tr>
<td width="100%" colspan="2"></td>
</tr>
</table>

<FORM method="get" action="https://www.lacaixa.es/cgi-bin/totpvcaixa?" name="pasarela">
<script language="JavaScript">
function Total() {
document.writeln(alterError(totprice));
document.pasarela.importe.value=importe;

}
function alterError(value) {
if (value<=0.99) {
newPounds = '0';
} else {
newPounds = parseInt(value);
}
newPence = parseInt((value+.0008 - newPounds)* 100);
if (eval(newPence) <= 9) newPence='0'+newPence;
newString = newPounds + '.' + newPence;
return (newString);
}

function showItems() {
index = document.cookie.indexOf("TheBasket");
countbegin = (document.cookie.indexOf("=", index) + 1);
countend = document.cookie.indexOf(";", index);
if (countend == -1) {
countend = document.cookie.length;
}
fulllist = document.cookie.substring(countbegin, countend);
totprice = 0;

itemlist = 0;
for (var i = 0; i <= fulllist.length; i++) {
if (fulllist.substring(i,i+1) == '[') {
itemstart = i+1;
} else if (fulllist.substring(i,i+1) == ']') {
itemend = i;
thequantity = fulllist.substring(itemstart, itemend);
itemtotal = 0;
itemtotal = (eval(theprice*thequantity));
temptotal = itemtotal * 100;
var tax = itemtotal / 100 * (0 - 0);
tax = Math.floor(tax * 100)/100
totprice = totprice + itemtotal + tax;
itemlist=itemlist+1;
document.writeln('<INPUT TYPE="hidden" NAME="Producto'+itemlist+'" VALUE="'+theitem+'" SIZE="40">');
document.writeln('<INPUT TYPE="hidden" NAME="Cantidad'+itemlist+'" VALUE="'+thequantity+'" SIZE="40">')
document.writeln('<INPUT TYPE="hidden" NAME="ProductoTotal'+itemlist+'" VALUE="'+alterError(itemtotal)+'" SIZE="40">');
} else if (fulllist.substring(i,i+1) == ',') {
theitem = fulllist.substring(itemstart, i);
itemstart = i+1;
} else if (fulllist.substring(i,i+1) == '#') {
theprice = fulllist.substring(itemstart, i);
itemstart = i+1;
}
}

document.writeln('<INPUT TYPE="hidden" NAME="Total" VALUE="'+alterError(totprice)+'" SIZE="40">');

}
function Total() {
document.writeln(alterError(totprice));
}

</script>
<input type="hidden" name="idcom" value="96322X">
<input type="hidden" name="idpedido" value="+idpedido+">
<input type="hidden" name="moneda" value="XEU">
<input type="hidden" name="idioma" value="esp">

<input type="text" name="importe" value="+importe+">
<input type="hidden" name="titulo" value="Senyor">
<table cols="2" width="370" class="body">
<td width="130"></td>
<td width="270">
</td>
</tr>
<tr><td>Nombre</td><td><input type="text" name="nombre" size=34></td></tr>
<tr><td>Apellido</td><td><input type="text" name="apellido1" size=34></td></tr>
<tr><td>Domicilio</td><td><input type="text" name="domicilio" size=34></td></tr>
<tr><td>Ciudad</td><td><input type="text" name="ciudad" size=34></td></tr>
<tr><td>Provincia</td><td><input type="text" name="provincia" size=34></td></tr>
<tr><td>Código Postal</td><td><input type="text" name="cp" size=34></td></tr>
<tr><td>País</td><td><input type="text" name="pais" size=34></td></tr>
<tr><td>E-mail</td><td><input type="text" name="email" size=34></td></tr>
<tr><td>Teléfono</td><td><input type="text" name="telefono" size=34></td></tr>
<tr><td>Fax</td><td><input type="text" name="fax" size=34></td></tr>

<SCRIPT LANGUAGE="JavaScript">
showItems();
</SCRIPT>
<tr>
<td>Total:</td>
<td><script language="JavaScript">Total()</script>
&euro;

</td>
</tr>

<tr>
<td><br>
<br>
</td>
<td>
<input type="button" value="Enviar" onClick="return Enviar(this.form)">
<input type="reset" value="Restablecer">
</td>
</tr>
</table>
</form>

</center>
</body>
</html>


lo siento, ¿como y donde meto la función que me dices?
__________________
j. A
  #10 (permalink)  
Antiguo 10/12/2002, 02:42
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Hola, por lo que he visto,

1º Quita el document.importe.value=1000, que tienes puesto en negrita, supongo que lo has puesto para mirar si te carga el importe.

2º Tienes puestas dos veces Function Total (), una justo despues del form y otra al final, despues de function showitems().

Quita la primera y la segunda la dejas así.

function Total() {
document.writeln(alterError(totprice));
document.pasarela.importe.value=(alterError(totpri ce));

}


Así, creo que te tiene que funcionar.

Tal como lo tienes, cuando la persona pague, directamente lo envías a la caixa, si hace bien el pago, tienes que tener en cuenta que la caixa no te dirá que ha comprado la persona, solo te envía un mensaje diciendo que el número de pedido tal tiene un pago correcto. Por lo que no sabras que ha comprado. o si ha comprado varias cosas, que cosas ha comprado.

No se si lo has tenido en cuenta.

Prueba esto y me dices alguna cosa.
  #11 (permalink)  
Antiguo 10/12/2002, 02:48
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Perdona, he visto que también hay esta línea, dentro de showitems:

document.writeln('<INPUT TYPE="hidden" NAME="Total" VALUE="'+alterError(totprice)+'" SIZE="40">');

Aquí va incrementando el totprice, cada vez que lee una línea.

Por lo que en teoría ya te debería cargar el total, sin necesidad de hacer lo que te había dicho.

Pero que si lo dejas, no tiene por que dar ningún error.

Te puede servir, si quieres poner gastos de transporte o añadir algún otro tipo de gasto o impuesto.

Si tienes algún problema dímelo.
  #12 (permalink)  
Antiguo 13/12/2002, 06:29
 
Fecha de Ingreso: noviembre-2002
Mensajes: 25
Antigüedad: 22 años, 5 meses
Puntos: 0
De acuerdo Gracias

Gracias Jordan

va perfecto!!
__________________
j. A
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:04.