Saltar a contenido

FAQ - SDK


¿Dónde puedo encontrar la documentación de PayStore?

La documentación de Paystore (API, SDK) debe accederse a través del Portal Paystore, solo ingresar con sus credenciales de desarrollador.

¿Cuál es el Ambiente de desarrollo (IDE) utilizado por PlayStore?

Recomendamos utilizar el Eclipse, las versiones actualmente aprobadas son: Marks, Neon e Oxygen.

¿Cuál es la URL para instalar el plugin en Eclipse?

http://177.69.97.18:3434

¿Puedo utilizar la misma configuración de un terminal en otro?

No. Cada terminal necesita de un número único y previamente registrado. De lo contrario, se mostrará el mensaje "Sequencial no válido".

¿Para que es el archivo PP.DAT?

Este archivo contiene información de lectura de una tarjeta con chip y magnética. Se usa para simular la lectura de tarjetas en el Emulador.

Por patrón, las informaciones dentro del archivo están comentadas. Caso necesario, vaya a "Run Configuration" en su Eclipse, con el plugin instalado, y, en su ajustes (PhScript POS VM),elija la opción deseada en “Card Emulator”.

image alt text

Ese archivo foe creado para evitar la necesidad de utilizar un PinPad en el emulador.

El emulador también acepta pegar el número de tarjeta (CTRL-V) en lugar de teclear los números.

No puedo realizar transacciones ni inicializar la terminal. ¿Que puede ser?

Verifique la configuración de comunicación de la terminal conforme abajo:

INCLUYE TEXTO CON LA SECUENCIA DE MENÚS Y PARÁMETROS.

¿Para instalar la aplicación en un terminal físico, necesito de una Tarjeta SD?

No. Las terminales convencionales no son compatibles con la tarjeta SD.

Si la carga está en su máquina, use un cable USB o serial, dependiendo del modelo de la terminal.

Las terminales Verifone soportan carga de memorias USB.

Las terminales PAX no soportan carga de memorias USB.

La terminal exhibe "Número de serie no válido". ¿Que puede ser?

Probablemente falte el registro de este terminal en la PayStore. Solicita que tu terminal sea registrado.

Si el problema persistir, comuníquese con el Soporte.

¿Por qué ocurre el error "Bad request"?

Comuníquese con el Soporte con la fecha, hora y serie del equipo para que podamos investigar la causa de este problema.

¿Hay alguna forma de actualizar la aplicación que no sea a través de USB?

Sí. A través del sistema de carga remota, denominado PhDM, es posible realizar cargas en la terminal de forma remota.

Si necesita instalar una aplicación, colóquela en la tienda de aplicaciones para descargarla en la terminal, sin tener que cargarla localmente o realizar una actualización remota en la terminal.

Es posible realizar la primera carga vía del sistema de telecarga. (**PhDM**)?

No. La primera carga debe realizarse mediante carga local, a través de uno USB o Serie.

¿Qué aplicación debo cargar inicialmente en la terminal?

Usted recibirá un paquete que contiene las siguientes aplicaciones:

  • PhVM: Máquina virtual responsable por ejecutar/interpretar todas las demás aplicaciones escritas en Script.

  • PhAST: Aplicación principal.

  • App Tef: Aplicación financiera.

  • App PayStore: Aplicación encargada de comunicarse con la tienda de aplicaciones.

  • Apps de los adquirentes: Hay un conjunto de aplicaciones específicas para cada adquirente aprobadas en Play Store.

Esto paquete de aplicación es puesto a disposición por nuestro equipo de soporte.

¿Cómo cargo la aplicación en la terminal?

Vea el documento "\Guias\Processo de carga" en GitLab a través del enlace: https://gitlab.com/phoebus/phscript-sdk/blob/master/SDK/Guias/Processo%20de%20carga/ProcessoCarga.md

¿Dónde puedo conseguir los drivers windows para cargar vía USB en las terminales?

Comuníquese con el fabricante o proveedor de su terminal para solicitar los drivers.

¿Puedo realizar una venta ingresando el número de mi tarjeta de crédito o débito?

Eso depende. El adquirente debe permitir las transacciones ingresadas.

¿Por qué aparece el mensaje "Operación manual no permitida"?

Lo más probable es que haya intentado realizar una transacción de venta escrita y la adquirente no permite.

¿Cómo puedo simular la captura de una tarjeta en la terminal virtual (Emulador)?

Deberá utilizar el archivo PP.DAT, que contiene informaciones de lectura de una tarjeta magnética y con chip. Se usa este archivo para simular la lectura de tarjetas en el Emulador.

Por patrón, las informaciones dentro del archivo están comentadas. Caso necesario, vaya a "Run Configuration" en su Eclipse, con el plugin instalado, y, en su ajustes (PhScript POS VM),elija la opción deseada en “Card Emulator”.

Este archivo fue creado para evitar la necesidad de usar un PinPad en el Emulador.

El emulador también acepta pegar el número de tarjeta (CTRL-V) en lugar de teclear los números.

¿Es posible iniciar una aplicación específica tan pronto como se enciende la terminal?

Sí, es necesario sobrescribir la función outset().

Vea un ejemplo abajo:

/******************************************************************/

/* Funcíón llamada en main de la VM después de las llamadas principales en main de las applicaciones. Juntamente

  • con la presentation de la VM, junto con las demás aplicaciones en la VM, siguiendo el orden de inicialización

  • @return invalid, true o false

*/

extern function outset()

{

  • Haga la llamada de su aplicación aquí.

return true;

}

/******************************************************************/

¿Es posible configurar mi App para siempre exhibirse y tome el control de la terminal, de forma similar a uno **_launcher _**de Android?

Si, esto sería como un terminal Android en Modo Kiosk.

Es necesario implementar la función. "onIdleRefresh()" y “onIdle()”. De esta manera, si el usuario sale de la aplicación, se volverá a ejecutar poco después.

Vea un ejemplo de cómo implementar:

/******************************************************************/

/* Función llamada al final del primer draw de la pantalla de Idle, junto de las demás aplicaciones en la VM,

siguiendo el orden de inicialización

*/

extern function onIdle()

{

  • Haga la llamada de su aplicación aquí.

}

/******************************************************************/

/*Función llamada al final de cada refresh de la pantalla de Idle, junto de las demás aplicaciones en la VM,

siguiendo el orden de inicialización

*/

extern function onIdleRefresh()

{

  • Haga la llamada de su aplicación aquí.

}

/******************************************************************/

¿Cómo cargo una aplicación con mi terminal físico?

Después de terminar el desarrollo de la aplicación, haga clic en el botón Generate Package en Eclipse image alt text.

Se generará una carpeta \dist dentro de su proyecto con dos subcarpetas, una con la carga local y la otra para la distribución de su App para su publicación en PayStore.

Dentro de la carpeta \dist\Carga Local, se creará una carpeta con el modelo de su terminal.

¿Dónde debo colocar las imágenes de la aplicación y otras funciones?

El la carpeta \res del proyecto.

¿Cuáles son los formatos de imagen que soportan las aplicaciones?

Actualmente, solo BMP 24 bits.

¿Por qué mi imagen no se exhibe?

Comprueba de que su imagen se encuentre dentro de la carpeta \res del proyecto.

Comprueba si la imagen es de tipo BMP de 24bits.

Comprueba que el tamaño de la imagen no sea mayor que el tamaño del frame (tamaño de la pantalla de la terminal, por ejemplo, 240 x 320).

Comprueba si el nombre de referencia de la imagen en el archivo .jcss es correcta.

¿Es posible personalizar un componente visual, por ejemplo, un menú, una lista, una entrada, etc.?

Sí. Creando un proyecto de skin y personalícelo según sus necesidades.

A PayStore utiliza el concepto de skin. Es en este proyecto, usted puede cambiar colores, imágenes, fuentes, etc.

¿Es posible cambiar la fuente de un componente visual?

Sim. Creando un archivo .jcss en su proyecto y definir la fuente deseada.

Ver documentación para verificar cómo implementar.

¿Qué formato de color es soportado?

La representación del color es un número (base decimal).

Abajo, hay herramientas online que le permiten convertir la representación del color en formato hexadecimal(comúnmente usado en archivos .css)) al formato decimal usado en PayStore.

http://www.rinkydinkelectronics.com/calc_rgb565.php

http://www.binaryhexconverter.com/hex-to-decimal-converter

http://palettegenerator.com/

¿Dónde puedo encontrar las propiedades de un componente visual utilizado por la aplicación?

Además de la documentación, puede verificar el archivo llamado JCSS dentro de la carpeta \work. Este archivo es el patrón de layout.

¿Puedo cambiar el archivo JCSS?

No. Este archivo no se debe cambiar, ya que cada vez que se inicia la terminal, este archivo se sobrescribe.

Si desea cambiar las propiedades del archivo JCSS, es posible sobrescribir las propiedades de este archivo creando su propio archivo de layout .jcss en la carpeta \res de su proyecto. Consulte la documentación.

¿Por qué mi aplicación no se ejecuta en Terminal Emulator?

Probablemente, su carpeta work (la carpeta de salida de su terminal) esté corrupto.

Para solucionar el problema, es necesario hacer clic en el botón clean image alt text del plugin de Eclipse, para limpiar su carpeta. Después de eso, es necesario volver a configurar los datos de la terminal.

¿Cuando un terminal se actualiza mediante una telecarga, es necesario reinstalar las aplicaciones utilizadas o no se modifican?

Después de la telecarga, las aplicaciones siempre se guardan.

¿Cuando publico una App que desarrollé, Él estará disponiblepara todos las terminales de PayStore o solo para terminales de mi empresa??

Sus aplicaciones solo estará disponible para las terminales en su red. Estos niveles de visibilidad se pueden configurar en PayStore. Esta configuración se denomina filtros de publicación y puedem ser aplicadas por: Ciudad, Ramas de actividad, Grupo de Tenderos o Terminales específicos.

¿Puedo configurar el número de establecimiento de acuerdo con el ID de mi cliente?

Si, en PayStore, a través de la consola del adquirente, se puede definir el identificador del estabelecimiento en el registro de tenderos de una forma muy simples.

¿Cómo funciona la pantalla de idle?

La pantalla tiene una importancia fundamental en la arquitectura de la aplicación de terminal PayStore.

Es en esta pantalla donde la VM de la terminal comprueba si se ha insertado o pasado una tarjeta al terminal, y también, si hay algún evento para ser manejado. Por lo tanto, se deben desarrollar aplicaciones con el objetivo de reducir el retraso para volver a esta pantalla.

¿Es posible eliminar el botón "Salir" de las pantallas con menú de la terminal?

Sí. Para aprender cómo hacer esto, vea el script "sampleui_menu.wmls" del proyecto SampleUI.

¿Por qué la terminal muestra el mensaje "ERROR DE EJECUCIÓN ****3**", cuando ejecuto mi aplicación**

Por lo general, este mensaje de error se muestra cuando hay un error al pasar parámetros en una llamada de función.

Compruebe la definicion de la función en la documentación para ver el número y el tipo de los parámetros... Si el problema persiste, comuníquese con el soporte.

¿Cuál es el significado de cada código que viene después del mensaje ERROR DE EJECUCIÓN?

Código Descripción
1 Ocurre cuando las llamadas remotas pasan URLs o funciones que no existen.
2 Uso interno del PhVM.
3 Ocurre cuando el número de parámetros no coincide con el número de argumentos.
4 Ocurre cuando la función no existe o es llamada externamente por otro script y la función no tiene el modificador "extern".
5 Ocurre cuando PhVM no ha encontrado el script compilado. Generalmente, hay un error en la importación de la URL.

Para ver todos los posibles códigos de error, consulte la sección "Exceções" en la documentación.

**¿Puedo hacer solicitudes HTTP? **

Sí. En el plugin, al crear un nuevo proyecto, usted encontrará un ejemplo utilizando el componente http.

Me gustaría que las transacciones financieras se realicen siempre desde mi App. Entonces, ¿es posible eliminar las opciones patrón de crédito y débito del menú en la pantalla iddle?

Sí. El servicio de integración "tef.enable" permite habilitar o deshabilitar las transacciones financieras de la terminal.

¿Puedo cambiar el orden en que se captura la información, por ejemplo, capturando el valor antes de deslizar la tarjeta?

Sí, solo capture la cantidad antes de llamar a la API de pago.

¿Puedo cambiar el logotipo de mi recibo?

Sí, en su proyecto de skin, reemplace la imagen PRINT.bmp con el logotipo que desea. Esta imagen debe ser monocromática (1 bit / blanco y negro).

¿Puedo cambiar la posición de los componentes visuales en la pantalla?

Sí. En su proyecto de skin,carpeta res, hay un archivo JCSS, busque el componente que desea cambiar y cambie sus propiedades como desee.

¿Cómo cargar una aplicación en la tienda de aplicaciones PayStore?

Después de finalizar el desarrollo de la aplicación, haga clic en el botón "Generate Package" en Eclipse image alt text.

Se generará una carpeta \dist dentro de su proyecto con dos subcarpetas, una con la carga local y la otra para la distribución de su App para publicación en PayStore.

Dentro de la carpeta \dist\PayStore estarán el paquete “PH” que debe publicarse en la Tienda de Aplicaciones.

Después de eso debes:

  • Acceda a la tienda de aplicaciones con tu usuario desarrollador;

  • Menú de aplicaciones -> pestaña "Borrador";

  • Agregar su respectiva Aplicación;

  • Espere a que el adquirente de la red apruebe su aplicación.

No consigo ejecutar los ejemplos http. ¿Como puedo resolver esto?

Para ejecutar los ejemplos http, debe utilizar un servidor rest y configurar los ejemplos de acuerdo con la IP y el puerto de ese servidor. Para esto, puede usar json-server. Para obtener más información, busque en Google "json-server".

Como pongo un **_frame _**para cerrar automáticamente después de x segundos?

Solo agregue un componente de temporizador del paquete Timer "package://phui#components/timer.wmlsc". Para obtener más informaciones, consulte la documentación.

¿Cómo veo la versión del SO (sistema operativo) de mi terminal PAX?

Al encender su terminal, qcuando aparezca la pantalla de SELF-TEST, seleccione la opcíon 2. Na tela de Main Menu, seleccione la opción 4. En la primera pantalla, se exhibiran un QRCODE. Vaya a la segunda pantalla para ver la versión del SO.

Ejemplo de un SO PAX:

OS:ProlinV2.4.85.5396R

TermAssist PAX no puede conectarse al terminal y exhibe "Running error". ¿Que puede ser?

A veces es necesario ejecutar el TermAssist como administrador. Si sigue apareciendo un error, cambie su compatibilidad a Windows 7 e intente nuevamente.

Parece que la instalación de la aplicación por TermAssist entró en looping. Sigue instalando la APP en la terminal y no termina. ¿Que puede ser?

Esto ocurre cuando existe un problema con TermAssist. Cierre TermAssist e intente ejecutarlo nuevamente.

¿Cómo veo la versión del plugin?

Acceda a Eclipse, en el menú "Ayuda", opcíon “Install New Software”, en la ventana que se muestra, haga clic en el enlace “already installed”.

¿Cómo puedo agregar información adicional al terminal, como, por ejemplo, el "ID de mis clientes"?

Para agregar información al terminal, acceda al portal PayStore, en el menú "Configuración", seleccione la opción "Campos adicionales".

¿Cómo capturar información de un campo adicional?

Debes usar el componente con la declaración:

use url PSCfg "package://paystore#config/config.wmlsc"

y leer el campo de esta manera:

PSCfg#getProperty("nombre del campo");

Para más informaciones, consulte la documentación.

¿Cómo puedo formatear un valor monetario?

Para formatear un valor, inicialmente debe declarar el módulo en su script, de la siguiente manera:

use url StringFormat "package://libs#ui/str_format.wmlsc";

Y usa la función "getMoneyAsStringCurrency".

Ejemplo:

StringFormat#getMoneyAsStringCurrency("1500", "R$", 2, ",", ".");

Para más informaciones, consulte la documentación.

¿Es posible cambiar o agregar información en el recibo?

Eso depende del adquirente. Algunos adquirentes envían el recibo ya formateado para que se imprima en la terminal. Para otros adquirentes, es posible crear el recibo en el servidor TEF, posicionando y formateando la información como se desea.

El PayStore también soporta a impresión del recibos gráficos. En este caso, la terminal POS utiliza las informaciones enviadas por el adquirente o Servidor TEF, para formatear los recibos mediante un layout gráfico. En el layout gráfico, el desarrolador tiene total libertad para construir el recibo.

En cualquier caso, el cambio en los recibos o el uso del recibo gráfico debe ser enviado para su validación por parte del adquirente, ya que la caracterización errónea del recibo (modelo) puede verse como un posible problema para acciones futuras, como la dificultad para identificar transacciones en los call center, posible bloqueo de las marcas de las tarjetas en respecto a los datos informados en el recibo, etc.

¿Cómo puedo capturar en mi transacción el nombre del cliente de la tarjeta?

A través de la propiedad "card.holder" de la estructura de respuesta de pago.

Para obtener más información, consulte el ejemplo "Pagos" del SDK.

¿Cómo puedo capturar en mi transacción el ID del adquirente?

A través de la propiedad "acquire.id" de la estructura de respuesta de pago.

Para obtener más información, consulte el ejemplo "Pagos" del SDK.

¿Cómo puedo capturar la NSU del adquirente de mi transacción?

A través de la propiedad "payment.nsu.acquire" de la estructura de respuesta de pago.

Para obtener más información, consulte el ejemplo "Pagos" del SDK.

¿Cómo puedo capturar la fecha de la transacción?

A través de la propiedad "payment.datetime" de la estructura de respuesta de pago.

Para obtener más información, consulte el ejemplo "Pagos" del SDK.

¿Cómo puedo capturar el tipo de transacción si es de crédito o débito?

A través de la propiedad "payment.type" de la estructura de respuesta de pago, donde 1 - Crédito, 2 - Débito.

Para obtener más información, consulte el ejemplo "Pagos" del SDK.

¿Cómo puedo capturar el código de autorización de la marca de la tarjeta?

A través de la propiedad "payment.auth" de la estructura de respuesta de pago.

Para obtener más información, consulte el ejemplo "Pagos" del SDK.

¿Cómo puedo capturar el estado de la transacción, para comprobar si se produjo un error o un éxito?

A través de la propiedad "result.error" de la estructura de respuesta de pago, si devuelve vacío, la transacción se realizó correctamente.

Para obtener más información, consulte el ejemplo "Pagos" del SDK.

¿Qué informaciones puedo capturar como respuesta a una transacción?

La App del ejemplo "Pagos" que viene con el SDK, cuenta con la estructura completa de los campos que serán devueltos al terminal en una transacción de pago.

Para obtener más información, consulte el ejemplo "Pagos" del SDK.

¿La API tiene una función "subString""?

Sí, la clase "String" proporciona varias funciones que serán de gran utilidad a la hora de desarrollar una aplicación. Para obtener más información, consulte la documentación del SDK.

¿Cómo puedo obtener solo una parte de la fecha?

Para manipular fechas, inicialmente debe declarar el módulo en su script, de la siguiente manera:

"use url DateTime package://phast#utils/datetime.wmlsc".

Y utiliza la función "dateTimeAsStr()".

Ejemplo:

DateTime#dateTimeAsStr("YYYY", datetime);

Para obtener más información, consulte la documentación.

El Emulador muestra la red wifi REDE-01, pero no tenemos esta red. ¿Que significa?

De hecho, esta red wifi no existe. Al seleccionar, el emulador utilizará realmente la conexión Ethernet.

¿Cuál es el nombre del lenguaje utilizada para desarrollar las aplicaciones? ¿La sintaxis es propietaria?

El lenguaje que se utiliza para desarrollar aplicaciones para terminales POS es JAVA SCRIPT LITE, un lenguaje desarrollado por Phoebus que se basa en el WAP-194. Su sintaxis se acerca mucho a la del lenguaje JAVA SCRIPT, un lenguaje muy utilizado. Además de los recursos requeridos por la WAP-194, el JAVA SCRIPT LITE tiene extensiones que permiten al desarrollador un desarrollo fácil.

¿Por qué al insertar al tarjeta en la terminal se exhibe una pantalla para que se seleccione crédito o débito, en lugar de llamar a mi App?

Esto ocurre porque la tarjeta insertada está habilitada para operaciones de débito y crédito. En este caso, el flujo EMV requiere que el usuario informe qué operación desea realizar. Puedes capturar el tipo de operación seleccionada por el usuario y pasarla a tu App para que esta información no sea nuevamente solicitada al usuario por tu aplicación.

Si el usuario inserta o desliza una tarjeta solo de crédito o solo de débito, la pantalla que solicita la selección de la operación no se mostrará, ya que la terminal ya sabe cuál es la (única) operación presente en la tarjeta insertada.

¿Cómo puedo simular una transacción denegada en Ambiente de desarrollo?

Los emuladores de Ambiente de desarrollo están configurados para denegar transacciones con montos fraccionarios, de esta manera recibirá una transacción denegada por el autorizador.

¿Cuáles son las dimensiones de la pantalla de un terminal POS?

Las dimensiones pueden variar según el modelo de la terminal, por ejemplo la terminal PAX s920 tiene una pantalla de 240x320, pero como o terminal da Verifone Vx690. La terminal D200 de PAX tiene una dimensión de 320x240.

Acerca de la API de persistencia, ¿la base de datos es relacional?

La base de datos no es relacional. Utilizamos una estructura muy parecida a una base de datos noSQL. Para obtener más información, consulte la documentación y los ejemplos del SDK.

¿Cuáles son los tipos de campos soportados por la de base de datos?

La API soporta los tipos más triviales ya conocidos en otras tecnologías, así como los tipos complejos. Consulte la documentación en la seccíon "PhType". En esta seccíon hay una lista completa de los tipos soportados.

¿Puedo tener más de una tabla en una base de datos?

Si, en la estructura de su base de datos es posible crear una estructura anidado con varias tablas. Vea un ejemplo:

image alt text

¿Es posible hacer operaciones de CRUD con la API de datos?

Si, es posible realizar operaciones como INSERT, UPDATE, DELETE y CONSULTAS.

Para mas informaciones, consulte la documentacíon.

Cuales NSUs son devueltos el la respuesta de una trasaccíon?

Identificador Descripción
payment.nsu.client Es el identificador de la transacción en la Terminal. Es un número único para cada transacción. Es secuencial y no se repite. No se repite para el mismo terminal.
payment.nsu.server Es el identificador de la transacción en la Servidor. Es un número único para cada transacción. Es secuencial y no se repite..
payment.nsu.acquire Es el identificador de la transacción en la Adquirente. Es un número único para cada transacción. Es secuencial y no se repite.
payment.nsu.auth Es el código de autorización de la marca de la tarjeta.

¿Qué necesito para realizar una transacción usando https?

Para realizar una transacción https, es necesario pasar el certificado proporcionado por su autoridad certificadora como parámetro de función. Para realizar una transacción https, es necesario pasar el certificado proporcionado por su autoridad certificadora como parámetro de función.

¿Por qué necesito del certificado en la terminal cuando, en browser o a través de PostMan, no necesito?

Los principales navegadores ya cuentan con algunos certificados de las autoridades certificadoras y pasan este certificado para realizar la conexión en el momento de su solicitud.

¿Qué formato de certificado de seguridad se admite en una solicitud https?

El formato patrón del certificado es Privacy Enhanced Mail (PEM), esse formato es codificado en base64. Si el certificado está en otro formato, verifique si su contenido está codificado en base64, de lo contrario es necesario generar un nuevo archivo con formato ".pem" a partir de su certificado.

Mi certificado vence cada 3 meses. ¿Necesitaré actualizar el certificado en cada terminal de mi red?

Dado que el certificado cargado en la terminal será el de su Autoridad de certificación, no será necesario actualizarlo cuando caduque su certificado. Solo necesita ser actualizado en caso de cambio de Autoridad de Certificación.

No puedo realizar solicitudes https, ¿qué puede ser?

Verifique se estas pasando como parámetro el nombre del certificado en el siguiente formato NOMEApp_nomeCertificado.pem (El nombre de la aplicación debe estar todo en mayúscula )

Verifique de que su certificado esté codificado en Base64. Generalmente, estos archivos tienen una extensión ".pem"

Verifique de que su certificado tiene todas las autoridades certificadoras. Una forma de comprobarlo es mediante los siguientes pasos:

  • Acceda en su endpoint a través de su navegador.

  • En su navegador, localice el detalle del certificado, se mostrará cuántas autoridades de certificación firmaron el certificado.

  • Exporta la firma de cada autoridad certificadora por separado, de esta forma se creará un archivo para cada una de ellas..

  • Concatene el contenido de los archivos en un solo archivo ".pem".

  • Utilice el archivo recién creado, el tiene la firma de todas las autoridades certificadoras.

¿Se ejecuta el plugin Eclipse en otras plataformas como Mac o Linux?

No, solo en Windows.

¿Cómo funciona el alcance de variable? ¿Es posible tener un alcance por script?

Las variables pueden tener un alcance de función o ser globales.

  • Alcance de función: Como su nombre lo indica, la variable solo estará visible y disponible dentro de la función donde fue declarada.

  • Alcance Global: La variable que es global es visible y está disponible para cualquier script que forme su App. Es posible establecer una variable como * global * a través de la función "PhSystem.setGlobal(key, value)". Para obtener más información, consulte la documentación.

¿Existe alguna razón especial para que las transacciones sean devueltas con hora UTC (0000) en vez de la brasileña (-0300)?

En este caso, la API devuelve la transacción considerando la hora universal coordinada (UTC). Su capa de presentación debe tomar su zona horaria y ajustarla para que se muestre en su horario. Esta es la forma en que los sistemas abstraen las diferencias de zona horaria entre países.

¿Puedo cambiar las fuentes de impresión del recibo?

Es posible cambiar el formato de la fuente, a través de TAGS de impresión, estas TAGS deben agregarse al comienzo de cada línea y deben estar dentro de los símbolos <> . Vea las opciones disponibles:

TAG DESCRIPCIÓN
NSF Elemento que determina que la fuente de la línea actual del recibo debe tener un tamaño patrón.
DSF Elemento que determina que la fuente de la línea actual debe tener un tamaño doblado en relación al tamaño patrón.
DHF Elemento que determina que la fuente de la línea actual debe tener el doble de la altura de una fuente normal.
DWF Elemento que determina que la fuente de la línea actual debe tener el doble de ancho de una fuente normal.
HL Elemento que determina que la fuente de la línea actual debe estar formada por una línea horizontal (útil para las líneas de firma en el recibo).

¿Cómo desinstalo una aplicación?

En su terminal siga estos pasos:

  1. Haga clic en el botón de la tienda en la pantalla de idle de la terminal.

  2. Haga clic en payStore, y se mostrará las aplicaciones instaladas y las aplicaciones disponibles.

  3. Haga clic en encima de la aplicación, se mostrará la opción para eliminar la aplicación.

  4. aga clic en Eliminar. La aplicación se eliminará de la terminal.

¿Por qué no puedo cargar mi paquete de manera local en la terminal de producción? obs: el mismo paquete funciona en la terminal de prueba.

Para cargar loclmente en uno terminal de producción su paquete debe estar firmado. Comuníquese con su fabricante para firmar su paquete.

¿Cómo puedo incrementar la versión de mi aplicación?

En Eclipse:

  1. Haz clic derecho en tu proyecto..

  2. Haga clic en Properties.

  3. Haga clic en Project Settings

¿Cuál es el operador y la contraseña para cancelar (revertir) una transacción?

Es el número del establecimiento (tendero). Este número puede confirmarse mediante la función terminal + 6, opción Establecimiento.

Hay soporte para la comunicación vía socket?

Sí, en el proyecto de ejemplo "devices", hay un script llamado "ethernet.wmls" que muestra cómo abrir un socket.

¿Cuál es la cuantidad a quantidade exacta de bytes que una variable puede recebir?

Sigue el patrón utilizado en C, utilizando un terminador nulo\0. Conceptualmente sería el tamaño de la memoria disponible.

Cuál es la dimensión / píxel de un .bmp que se puede imprimir en un recibo?

El ancho maximo para un archivo .bmp y un recibo es 384px.

¿Qué tamaño máximo se puede cargar un archivo .zip en el POS? ¿Se puede crear y extraer mediante Java Script Lite desde un búfer recibido?

El patrón utilizado en Java Script Lite es .gzip y podemos recibir y extraer normalmente.

¿Cuál es la capacidad de línea máxima de un archivo guardado/persistente?

Tiene una capacidad de 65000 registros.

¿Es posible recibir un archivo búfer/binario de una imagen y ejecutar un file.open/file.write y crearlo en su extensión respectiva?

Si.

¿Qué significa MID?

Identificador del establecimiento junto con adquirente

¿Qué significa TID?

Identificador de terminal con el adquirente

Al instalar el complemento, las aplicaciones no se instalan en la terminal del emulador. ¿Qué hago?

Instale 7zip, si aún no está instalado. Después de la instalacíon, agregue su rota en path de Windows. Si el problema persiste, comuníquese con el servicio de soporte. Este problema también puede ocurrir si está utilizando Windows de 32 bits y utilice la versión de Windows de 64 bits.

¿Cómo puedo reducir el consumo de batería de mi aplicación?

Una de las razones del consumo de batería de un terminal móvil es la iluminacíon de la pantalla. Puede reducir el consumo de pantalla de dos formas:

  • Estabelecer un timeout de espera ocioso en tu aplicación. De esta forma, se tu aplicación permanecer inactiva durante algunos segundos (parametrizable), a pantalla se puede cerrar yendo a la pantalla de idle, que atenúa o apaga por completo, dependiendo modelo del dispositivo, la pantalla de la terminal en caso de ociosidad.

  • Controlar vía applicacíon cuándo atenuar la pantalla de la terminal, a través del comando PhDisplay.light(). Para mas información, consulte la documentación.

¿Cómo configuro la Terminal Emulator en Eclipse?

Para configurar el emulador de terminal, siga los pasos a abajo:

  1. Acceda al Portal del Facilitador;
  2. Cree un tendero;
  3. Cree un terminal lógico;
  4. Registre la terminal físico del emulador de terminal;
  5. Execute no Emulador de Terminal, función 1. En seguida, seleccione el menú EQUIPO. Tenga en cuenta el campo "Número de serie de la terminal”;
  6. Asocie la terminal físico con el teminal lógico;
  7. Elija el tipo de comunicación como S920_WIFI.

En el emulador de terminal:

  1. Ejecute el emulador de terminal en Eclipse; 2.Cuando abrir la pantalla principal, elija la opción 3 - XXXXXXXXX;
  2. En seguida, el Emulador de Terminal exhibe la lista de redes Wifi disponíveis;
  3. Elija la red: Rede 01;
  4. Escriba la contraseña: 01010101;
  5. Vuelve a la pantalla de inicio de Terminal Emulator;
  6. Inicie la terminal.

Finalmente, realice una transacción de prueba.

¿Cómo puedo guardar el nombre del titular de la tarjeta en mi aplicación?

El nombre del titula de la tarjeta es una informaccíon que viene en la respuesta de pago de una transacción realizada en la terminal, en la propiedad "card holder". Actualmente, no es posible capturar esta información antes de realizar la transacción de pago, ya que esta información solo está presente en la respuesta. Esta información también se puede obtener vía API de consulta transaccionales. Para obtener más sobre las informaciones de respuesta de transaccíon de pago, consulte la documentación en "Referencias => TEF - Servicios" o la documentación de la API.

Mi emulador de POS no muestra el recibo de la transaccíon. ¿Qué debo hacer?

Haga clic en la carpeta Eclipse y busque el archivo config.ini. Habrá varios, y dentro de ellos tenemos las configuraciones para las terminales Vx685, Vx690, S920, D200, entre otros. Al abrir cada archivo, agregue, si aún no existen, las dos líneas abajo.

  • printer.graphic=1
  • display.graphic=1

Obs.: En la mayoría de los archivos, la línea display.graphic ya existe, solo cambia el 0 por 1.

¿Dónde están impresas las imágenes en el recibo gráfico?

Las imágenes impresas en el recibo están dentro de la carpeta "image". El logotipo impreso se puede encontrar con el nombre I020. Estas imágenes deben estar en formato .bmp y deben ser imágenes monocromática.

¿Cómo debo versionar mi aplicación?

En el archivo applet.ini de su aplicación. Los parámetros VERSION_CODE y VERSION_NAME son responsables por versionamento de la da aplicación.

Una vez que se hayan cambiado estos parámetros, el Portal PayStore aceptará la nueva versión de la aplicación.

¿Es posible obtener la información de la tarjeta de pago del cliente durante la transacción?

O PCI no permite la captura de información del titular de la tarjeta.