AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / ¿Cómo proceder? / Programación
  • Importación de los elementos necesarios
  • Modificar la página "backtostore
  • Añadir código de ubicación
  • Personalización de la página de pago
  • El enlace "Pagar
  • Los otros enlaces: ¿dónde colocar el código que guarda el pago?
  • Prueba de pago
  • Los elementos a desplegar para el pago
  • Problemas comunes
  • Error : La página de devolución no devuelve el resultado esperado
  • Después de implementación, un mensaje indica : "Orden pendiente con intervención humana requerida"
  • ¿Cómo habilitar los registros (WLOG) y leerlos?
¿Cómo incluir el pago seguro en un sitio WEBDEV?
Importación de los elementos necesarios
  1. Abra su proyecto WEBDEV.
  2. Importar el "WW_SecurePayment" externo Component.
    • En la pestaña "Proyecto", en el grupo "Proyecto", despliegue "Importar" y seleccione "Un componente externo .. Desde un archivo".
    • Especifique la ruta del archivo WDI deseado. En nuestro caso, este archivo corresponde a "SecurePayment.wdi", ubicado en el subdirectorio WEBDEV: "\Components\Example components\WW_SecurePayment\Exe\Component".
    • Se muestra la ventana del componente description.
      Cerrar esta ventana.
  3. A get una base de datos para incluir el pago seguro, le aconsejamos que importe 2 páginas específicas en su proyecto:
    • En la pestaña "Proyecto", en el grupo "Proyecto", despliegue "Importar" y seleccione "Elementos WEBDEV y dependencias".
    • Seleccione el directorio de importación. Este directorio corresponde al directorio de WW_Secure_payment Component que se encuentra en el subdirectorio WEBDEV: "Componentes\Ejemplos de componentes\WW_SecurePayment"
    • Se muestra la lista de páginas.
    • Seleccione:
      • La página correspondiente a la solución de pago seguro a utilizar. El nombre de esta página comienza con "PAGE_Secure_Payment_XXX".. Por ejemplo: "PAGE_Secure_Payment_ATOS.wwh".
      • La página "backtostore.wwh.
    • Validar. Las páginas se importan al proyecto.
  4. Recompilar el proyecto para tener en cuenta estas páginas: en la pestaña "Proyecto", en el grupo "Proyecto", despliegue "Recompilar y sincronizar" y seleccione "Recompilar proyecto".
Modificar la página "backtostore
  1. Abre la página de "backtostore" en el editor.
  2. Esta página contiene una página interna control llamada "iPage_RETURN".
  3. Mostrar la ventana de description de "iPage_RETURN" control.
  4. En la pestaña "General", modifica la página interna relacionado a la control: sustituir "iPage_Payback" por "SecurePayment.iPage_Payback".
  5. Guardar la página ().
  6. Guarda una copy de esta página con un nombre personalizado: en la pestaña "Inicio", en el grupo "General", despliegue "Guardar" y seleccione "Guardar como".
  7. En la ventana que se muestra, especifique el nuevo nombre de página y valide.

    Observación: Personalizar esta página con un nombre específico aumenta la seguridad del pago.
  8. Asegúrese de que esta página no esté referenciada:
    • Abra la ventana description de la página renombrada.
    • En la pestaña "Detalles", seleccione la opción "No permitir SEO".
    • Valide la ventana de descripción.
Añadir código de ubicación
Debe añadir, al principio del código del proyecto (en el evento "Inicialización del proyecto tras la conexión al sitio", por ejemplo), el código que permite al Component localizar el fichero de pago y definir su contraseña.
Este código es el siguiente:
<BLOCK Location of file for the secure payment component>
//To trace on the server if necessary
//dbgEnableLog(fDataDir()+["\"]+"paymentlog_[%Date%]_[%Time%].wlog",LogAll)
//Location of payment file
DataParameters(fDataDir() + "\Payment", "file password to customize")
// //or using a connection, for example:
// gcntCSDatabase is connection
// gcntCSDatabase..Provider=hAccessHFClientServer
// gcntCSDatabase..User="admin"
// gcntCSDatabase..server="127.0.0.1"
// gcntCSDatabase..Database="mydatabase"
//                 DtaParameters("Payment","file password to customize", ...
//                          gcntCSDatabase, "PasswordDatabaseConnection")
<END>
Personalización de la página de pago
  1. Abra la página "PAGE_Secure_Payment_xxx" donde xxx corresponde a la solución de pago que se utilizará. En este ejemplo, usaremos la página "PAGE_Secure_Payment_ATOS.wwh"
  2. Suprimir el botón "Signo de interrogación" que hace referencia a una página de información que no fue importada en este proyecto.
  3. Sólo para ATOS:
    • Suprima el "IMG_BANK" control Imagen cuyo Image no fue importado a este proyecto.
    • Eliminar el código que se refiere al "IMG_BANK" control en las declaraciones globales de la página.
  4. Ajuste el tipo de página según el tipo de página que se utilizará en su proyecto: Sesión, AWP, modo Zoning, modo Responsive, etc.
  5. Para ATOS, asegúrese de que el objetivo del enlace "Pay" es el iFrame "IFRM_PAYMENT"..

El enlace "Pagar

Este enlace contiene el código que activa el pago seguro.
1. Parámetros específicos de la cuenta bancaria
Los parámetros específicos de la cuenta bancaria deben especificarse en este código. La información difiere según la solución de pago seleccionada.
Su proyecto contiene una página específica correspondiente al pago deseado: en el código de este enlace, encontrará un código adaptado al tipo de pago seleccionado. Este código contiene comentarios explicativos específicos de los parámetros solicitados.
ejemplo para ATOS:
  • Se debe especificar una "sociedad :
    MyPayment:CompanyCode
  • También debe reemplazar los archivos que se encuentran en el subdirectorio cuyo nombre se relaciona con la solución de pago seguro utilizada por los archivos suministrados por el banco. En este ejemplo, los archivos que se encuentran en el subdirectorio "Mercanet" : pathfile, parmcom.0825843414111111, parmcom.mercanet y certif.fr.08258434141411111
Ejemplo para Lyra (Systempay, Cyberplus, Spplus, Payzen, etc.):
Debe especificar:
  • un "identificador de sitio" : MiPago:SiteIdentifier
  • un número de Certificate MyPayment:Certificate.
Esta información se encuentra en el sitio de back-office, en la configuración de la tienda, en la pestaña "Certificados".
2. Nombre de la página de retorno de "servidor a servidor" (también llamado IPN : Pago instantáneo Notification)
En este código, el nombre de la página IPN debe ser reemplazado por el nombre de la página personalizada. Por ejemplo:
MyPayment:IPN Page="custompagenameforthereturns2s"
cambia a:
MyPayment:IPNPage="RETURN_S2S_B6SH7ZEX"
Dependiendo de la solución de pago seleccionada, la URL en la que esta página será accesible debe indicarse en el back-office del banco. Esta URL tiene el siguiente formato :
http://<domain>/<Site name>_WEB/<Language>/<Page name>.awp
Ejemplo:
  • Usando una página de retorno (llamada "RETURN_S2S_B6SH7ZEX") para un sitio WEBDEV que se llama "shop" y que se despliega en un servidor con el nombre de dominio "www.mydomain.eu" en inglés.:
    http://www.mydomain.eu/SHOP_WEB/EN/RETURN_S2S_B6SH7ZEX.awp
  • En el sitio de back-office para la solución de Lyra, debe entrar en el entorno de la tienda.. En la pestaña "Configuración", sección "URL de retorno", ACTIVE la opción "URL de notificación al final del pago".
Atención: su código para la gestión de la finalización del pago no debe encontrarse en estas páginas. Su código para gestionar el fin del pago debe encontrarse en "el enlace para volver a la tienda" y en "el enlace de retorno de servidor a servidor" (este tema se explicará en el resto de esta Document).
3. Imágenes de tarjetas para ATOS
Para ATOS, las imágenes de las tarjetas bancarias pueden no ser mostradas. En ese caso:
  1. Abra el código del enlace "Paga"..
  2. Añade el siguiente código después de la declaración de MyPayment Variable:
    MyPayment is SecurePayment(nBank) // Existing line
    MyPayment.FolderWebLogo = FolderWeb() + "/SecurePayment/EN/ATOS/"
'4. Otras personalizaciones'
También tienes la posibilidad de personalizar varias informaciones, sigue las instrucciones dadas en el enlace de comment de "Paga"..
Dependiendo de las soluciones de pago, usted puede:
  • especificar la facturación de Address.
  • especificar la entrega Address.
  • especifique el contenido de la cesta.
  • especifique algunos tipos de tarjetas bancarias.
  • realizar suscripciones.
  • ...
El método "FormParameterAdd" se utiliza para modificar o añadir información en el formulario enviado al banco.
Para más detalles, consulte la documentación del pago seleccionado.

Los otros enlaces: ¿dónde colocar el código que guarda el pago?

Otros dos enlaces se encuentran en la página:
  • El enlace "Volver a la tienda:
    El código de este enlace se ejecuta cuando el usuario de la Web finaliza su pago, independientemente de que se haya realizado con éxito o no, cuando vuelve al sitio web.
    Atención: Algunos usuarios de la web nunca vuelven al sitio del comerciante, a causa de un error de funcionamiento o de un fallo de INTERNET por ejemplo. Sin embargo, en el modo de prueba, en un ordenador no accesible por el servidor del banco, es el único código que se ejecuta.
  • El enlace "Retorno Servidor a Servidor" (también llamado "IPN": Pago instantáneo Notification)
    El código de este enlace se ejecuta cuando el usuario web valida su pago en el sitio del banco antes de que decida volver al sitio del comerciante o no..
    Atención: Este código se ejecuta a través de una llamada directa al servidor del banco, por lo tanto fuera de cualquier contexto, cookies, sesión, ... del usuario Web.
    En desarrollo, en modo de prueba, en un ordenador no accesible por el servidor del banco, este código no se ejecuta.
¿En dónde se debe escribir el código que registra el pago?
Una de las mejores soluciones es colocar el código que guarda el pago en el código associated con ambos enlaces "Back to store" y "IPN" pero con pequeñas variaciones.
  • En el código del enlace "Enviar al servidor : en este código, debes guardar el pago, actualizar la base de datos y enviar un Email con la factura. Sin embargo, este código no se ejecuta en modo de test: la implementación es compleja.
  • En el código del enlace "Volver a la tienda: debe comprobar que la devolución de servidor a servidor ya se ha guardado, excepto en el modo de prueba. En caso contrario, el pago debe ser guardado como en anomalía y debe ser verificado..
    Si la información debe mostrarse al usuario Web después del pago, continúe ; o si desea solicitarle nueva información, puede hacerlo en este código.
Prueba de pago
Para probar el pago, usted puede:
  • Inicie la página importada directamente,
  • Añade un código que inicie la página importada y pase como parámetro los elementos necesarios a la página : cantidad adeudada, Email del comprador, prueba o pago real, etc.
¿Qué cambia una vez desplegado el sitio?
Una vez que el sitio se implementa en un servidor, la IPN debe ejecutarse además de la devolución a la tienda como se explicó anteriormente. Cuando las pruebas sean validadas, tendrá que cambiar la opción especificando que se trata de un pago de prueba e indicando que los pagos son ahora reales.
Los elementos a desplegar para el pago
Durante el implementación, debe excluir el de implementación los archivos de "Transacción" HFSQL que contienen las transacciones de prueba realizadas localmente :
Problemas comunes

Error : La página de devolución no devuelve el resultado esperado

Este error puede ocurrir una vez que el sitio está desplegado. Significa que el Component ha intentado sin éxito acceder a la página de "vuelta a la tienda" o a la página de "IPN".
Las principales razones son:
  • Caso 1: En el código de inicialización del proyecto, hay un código que fuerza la visualización de una página específica de otra página si no se reciben algunos parámetros.
  • Caso 2: El parámetro de red del servidor no le permite unirse a sí mismo.
Para encontrar una solución:
  1. Compruebe esta URL en su navegador :
    http://www.mydomain.eu/MYSITE_WEB/EN/backtostore.awp?TEST=O

    mediante la sustitución :
    • "www.mydomaine.eu" por el nombre del sitio o IP Address,
    • "MYSITE" por el nombre del proyecto del sitio,
    • "backtostore" por el nombre de la página 'back to store' y luego por el nombre de la página IPN.
  2. TEl test de esta URL debe mostrar OK
    • If la prueba muestra OK: el problema puede ser relacionado a la configuración de la red del servidor (caso 2). Asegúrese de que el componente no ejecuta esta prueba habilitando la siguiente línea de código (que debe encontrarse ya pero en comment):
      MyPayment.IgnoreTestReturnPage = True
    • If la prueba muestra otra página, usted probablemente está en el caso 1: compruebe el código del proyecto y asegúrese de que no se fuerza la visualización de la página (PageDisplay). Y por ejemplo, no realice esta acción en modo AWP (InAWPMode).
    • Si la prueba muestra un error, debe encontrar el origen de este error..
    • Si ninguno de los casos anteriores coincide, habilite los registros (wlog) para entender lo que sucede.

Después de implementación, un mensaje indica : "Orden pendiente con intervención humana requerida"

Este mensaje puede aparecer al volver al sitio después del pago cuando la información recibida indica que el pago fue validado pero que la IPN no fue guardada..
El IPN se realiza sólo en implementación, este mensaje no puede ser mostrado en el modo de prueba.
Para encontrar una solución:
  1. Compruebe esta URL en su navegador :
    http://www.mydomain.eu/MYSITE_WEB/EN/customipnpage.awp?TEST=O
    mediante la sustitución :
    • "www.mydomaine.eu" por el nombre del sitio o IP Address,
    • "MYSITE" por el nombre del proyecto del sitio,
    • "customipnpage" por el nombre de la página de retorno y luego por el nombre de la página de IPN.
  2. Si la prueba muestra:
    • otra página, compruebe el código del proyecto para ver si no se fuerza la visualización de una página en algunos casos (PageDisplay). Y por ejemplo, no realice esta acción en modo AWP (InAWPMode).
    • un error, debe encontrar el origen de este error.
    • OK o si ninguna de las opciones anteriores se aplica a su caso, consulte el registro de transacciones en la tabla "Transacciones", elemento "LogInfo". Este registro también puede ser recuperado por TransactionLog, TransactionLogAccordingToID mediante programación.

¿Cómo habilitar los registros (WLOG) y leerlos?

La creación de registros (WLog) es una característica de WLanguage que se utiliza para guardar en un archivo todas las líneas de código que se ejecutan en un archivo WLOG con más o menos detalles. Para ello, debe utilizar dbgEnableLog.
Si lees este Document cuidadosamente, en el código del proyecto, hay un Line para el que se pueden eliminar los comentarios:
dbgEnableLog(fDataDir()+["\"]+"paymentlog_[%Date%]_[%Time%].wlog", LogAll)
En caso de dificultad, usted debe:
  1. Habilitar los registros.
  2. Despliegue el sitio (si el problema ocurre sólo en implementación).
  3. Vuelva a realizar la operación que desencadenó el problema.
  4. get los archivos WLOG para abrirlos con WEBDEV.
Atención: WEBDEV no mostrará toda la información que se encuentra en los archivos WLOG: sólo mostrará la información relativa a la configuración del proyecto Active abierta en el editor.
  • No se mostrará ninguna información si no se abre ningún proyecto.
  • Si su proyecto está abierto, verá las líneas de código ejecutadas por su proyecto.
  • Si se abre el proyecto de pago seguro Component con la configuración de Component habilitada , se verán las líneas de código ejecutadas por el Component.
Atención: Los registros no deben dejarse habilitados de forma permanente.: esto puede ralentizar el sitio y reducir el espacio en disco. Para evitar tener que recompilar el sitio para habilitar los registros, la activación puede activarse de acuerdo con la información de un archivo de configuración, por ejemplo. Por ejemplo:
IF Val(INIRead("PARAMETER", "WLOG", "0" , fDataDir() + ["\"]  + "param.ini")) = 1 THEN
dbgEnableLog(fDataDir() + ["\"] + "paymentlog_[%Date%]_[%Time%].wlog", LogAll)
END
Versión mínima requerida
  • Versión 23
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 30/10/2022

Señalar un error o enviar una sugerencia | Ayuda local