iwebcode - weblog
03/05/2007 06:56:08 AM - Como montar una Web de e-commerce (TPVs) Parte I

Permalink Como montar una Web de e-commerce (TPVs) Parte I



Buenas a tod@s.

Hoy vamos a empezar un tema en el que llevo trabajando mas de un año y que quizás sea la razón de que me no hubiera publicado gran cosa el año pasado.

Vamos a intentar montar una web de comercio electrónico y a ver que posibilidades tenemos de llevar adelante nuestro proyecto con los TPVs 4b y Servired que son los mas habituales en España

Vamos a explicar primero como funciona básicamente una web de comercio electrónico y su conexión con el TPV.Básicamente cuando montamos una web de comercio electrónico, lo que queremos es :

  • Ofrecer nuestro catalogo al publico
  • Cobrar los productos seleccionados

Mas adelante veremos como construir nuestro carrito de la compra hoy nos vamos a centrar en la creación de una conexión con el TPV para que podamos cobrar.
Esto seguro que Josué me lo agradece
El TPV de nuestro banco se configura con varias direcciones para los distintos casos que nos vallamos a encontrar, pagos OK, tarjetas falsas, etc...

Los TPVs en general funcionan de la siguiente manera, primero les enviaremos la referencia de nuestra "factura" por ejemplo el numero de factura, y el código de comercio que nos identifica.

En esta operación el TPV conectara con la URL que le hayamos indicado para buscar el desglose de esa factura.

Despues el TPV ejerce su funcion y cobra al cliente el dinero de la operación, dependiendo del resultado de la operacion volvera a nuestro comercio por caminos diferentes con el codigo de la operacion para que sigamos con la operacion , el resultado es OK, o NO OK con lo que podemos determinar que acciones emprendemos.

En el caso de ser una operacion aceptada enviaremos el producto a casa de nuestro cliente, en el caso contrario no haremos ninguna operacion e invitaremos a nuestro cliente a pagar de nuevo o cancelar la venta

Para nuestro ejemplo la referencia de la factura es el ID Universal del documento de factura.

Un ejemplo de como quedara la configuración de nuestro TPV en el sistema 4B seria el siguiente:

Pantallazo de ejemplo de Configuración 4B

Como veis tenemos 5 URL que configurar:
  • URL de la pagina
  • URL de desglose de facturas
  • URL de operaciones OK
  • URL de operaciones DENEGADAS
  • URL donde el TPV devolverá la navegación al usuario

Cada una de ellas tiene una función especifica y a las que hemos asignado las URLs que apuntan a nuestros agentes para que hagan las operaciones pertinentes.

URL GENERAL
No necesita explicación es la URL de la pagina Web que estamos haciendo

URL para desglose de Factura
Aquí apuntaremos a un agente que se encargara de buscar la factura a partir del numero de referencia y devolver al TPV el desglose o carrito de la compra

Sub Initialize
%REM

Este pequeño desarrollo que el comercio debe realizar se encargará de buscar la información de la compra
(por ejemplo accediendo a la base de datos de la tienda) y devolverla como resultado al recibir la petición desde Sistema 4B.

El Pasat Internet pasará dos parámetros al programa del comercio:
- order: referencia de la compra
- store: nombre abreviado (clave) de la tienda virtual

En respuesta el programa del comercio debe generar una salida que debe incluir:
- Importe total de la compra: en euros. Formato: MXXXNNN…
Donde XXX es el código de moneda ISO (978 para el euro), y NNN… la cifra del importe.
No debe incluir separadores de miles ni comas decimales.
El importe en euros debe darse multiplicado por cien,
ya que los dos últimos dígitos de la derecha se interpretarán como decimales (céntimos de euro).
Por ejemplo: 34,51 Euros à M9783451.
- Número de registros (ítems) de la cesta de la compra: un número que indica cuantos productos forman la cesta de la compra y vienen descritos a continuación. - Registros de la cesta de la compra: cada registro debe contener los siguientes campos:
   - Referencia
   - Descripción
   - Unidades
   - Precio: utilizando el mismo formato que en el importe total de la compra, pero omitiendo el código de moneda
Estos cuatro últimos campos deben repetirse tantas veces como registros haya en la cesta de la compra, si bien el detalle de descripción de estos registros está libremente determinado por el comercio.

Cada dato debe ir en una línea diferente, es decir terminado con el carácter de retorno de carro, sin líneas en blanco ni código HTML.
Ejemplo 1: Suponemos que el Pasat Internet ha recibido la petición del comercio X de la compra de referencia Z,
con lo cual realiza una llamada al servidor de comercio para que devuelva el desglose de la compra Z:
Compra de un libro “Novelas clásicas Vol.1” con referencia A1345, de 5 Euros y una cinta “VHS- El fin de los días”
con referencia A1348, de 7 Euros. Importe total de la compra 12 Euros.
El programa del comercio debería responder:
     M9781200
     2
     A1345
     Novelas clásicas Vol.1
     1
     500
     A1348
     VHS – El fin de los dias
     1
     700
%ENDREM

Dim session As New NotesSession
Dim estabd As NotesDatabase
Set estabd=session.CurrentDatabase
    ' Asigno a "doc" el documento que recibo via HTTP POST
Set doc = session.DocumentContext
    'Preparo la salida o respuesta
Print "Content-Type: text/plain"
doc.form="respuesta4b"
Call doc.save(True,True)
Dim factura As NotesDocument
incoming2 = doc.GetItemValue("Query_String")(0)
pos1=Instr(incoming2,"order=")+6
pos2=Instr(incoming2,"&store")
ref=Mid(incoming2,pos1,pos2-pos1)
Set factura=estabd.GetDocumentByUNID(ref)
    ' con la variable ref busco la orden del pedido y muestro el detalle de la compra
Call factura.ComputeWithForm(True,True)
Call factura.Save(True,False)
precio= Replace(factura.precio(0),".","")
If Instr(precio,",")=0 Then
   Print "M978"+precio+"00"
Else
   If Len(Mid(precio,Instr(precio,",")+1))=2 Then
     Print "M978"+Replace(precio,",","")
   Else
     Print "M978"+Replace(precio,",","")+"0"
   End If
End If
Print factura.cuantos(0)
Dim item As NotesItem
Set item = factura.GetFirstItem( refs )
contador=0
Forall v In item.Values
   Print v
   Print factura.tits(contador)
   Print factura.numero(contador)
   Print factura.precios(contador)
   contador=contador+1
End Forall
End Sub


URL de operaciones OK
Aquí apuntaremos a un agente que se encargara de buscar la factura a partir del numero de referencia y realizar la operacion de marcar la factura como pagada

Aqui nuestro agente marcara la factura como PAGADA para cuando vuelva la navegacion


URL de operaciones DENEGADAS
Aquí apuntaremos a un agente que se encargara de buscar la factura a partir del numero de referencia y realizar la operacion de marcar la factura como pendiente-denegada

Aqui nuestro agente marcara la factura como PENDIENTE(DENEGADA) para cuando vuelva la navegacion


URL donde el TPV devolverá la navegación al comercio
Aquí apuntaremos a un agente que se encargara de continuar la navegacion en funion del resultado de la operacion

Sub Initialize
   Msgbox "4B FIN"
   Dim session As New NotesSession
   Dim estabd As NotesDatabase
   Set estabd=session.CurrentDatabase
    ' Asigno a "doc" el documento que recibo via HTTP POST
   Set doc = session.DocumentContext
   Dim perfilconf2 As NotesDocument
   doc.form="respuesta4b"
   Call doc.save(True,True)
   Dim factura As NotesDocument
   incoming2 = doc.GetItemValue("Query_String")(0)
   pos1=Instr(incoming2,"result=")+7
   pos2=Instr(incoming2,"&pszPurchorderNum")
   resultado=Mid(incoming2,pos1,pos2-pos1)
   pos1=Instr(incoming2,"pszPurchorderNum=")+17
   pos2=Instr(incoming2,"&pszTxnDate")
   ref=Mid(incoming2,pos1,pos2-pos1)
   Set factura=estabd.GetDocumentByUNID(ref)
   Call factura.ComputeWithForm(True,True)
  if factura.estado(0)="PAGADA" then
     Dim nuevodoc As notesdocument
     Set nuevodoc=estabd.CreateDocument
    nuevodoc.form="envio"
    ..... cargamos los datos de envio del cliente.....
    ........

     Call nuevodoc.Save(True,True)
     Print "MUY BIEN CAMPEON, TE ENVIAREMOS LAS COSITAS PRONTO"
  else
    Print "LO SENTIMOS PERO HAY UN PRObLEMA CON TU TARJETA Y NO PUEDE CONTINUAR LA COMPRA"
  end if
End Sub


Bueno mañana mas, lo prometo..



Comentarios

No documents found

Añade tus comentarios



La dirección de email no estara visible en esta web.





Puedes usar UUB Code en tus comentarios.

[b]bold[/b]  [i]italic[/i]  [u]underline[/u]  [s]strikethrough[/s]

Las URL seran convertidas autmaticamente en Links


:cry: :-p :-x :-o :lips: :grin: :angry: ;-) :-) :-D :rolleyes: :cool: :laugh: :-\ :huh: :-( :emb:






Recordarme (cookie)