Gateway - Procesamiento
Puntos de Venta
Integración Avanzada
6 min
se requiere permisos especiales para poder utilizar este modo de integración del pos, los mismos serán habilitados junto a la aceptación de su operatoria solicitar aplicativo local al equipo para integración indicando sistema operativo y arquitectura ej windows arm64 o macos (arm / intel) esto es importante para compartir el servicio correcto de lo contrario la integración fallará esta integración requiere dos componentes un aplicativo local que funcionará en su computadora y que se encargará de la conexión con el dispositivo el dispositivo conectado via usb c es extremadamente importante utilizar el cable usb c provisto en la caja, si requiere otro usb c por favor consulte la especificación del mismo configuración del servicio local archivo de configuración config json serialport puerto serial configurado para el dispositivo serialbaudrate esta configuración es opcional port esta configuración es opcional y permite definir el puerto local del servicio una vez creada la configuración debe correr el aplicativo provisto por nuestro equipo desde el mismo directorio en el que se encuentra el archivo config json si el mismo se ejecuta de manera normal se añadirá un icono en el area de notificaciones del sistema el cual le permitirá ver el puerto en el que corre y salir del proceso antes de empezar para comenzar a procesar en esta modalidad es necesario que coloques al dispositivo en modo pinpad { "name" "cambio de modo", "method" "patch", "url" "http //localhost 8484/device/mode", "description" "cambiar el modo del dispositivo", "tab" "examples", "examples" { "languages" \[ { "id" "gybnh43aenvknzmngmumr", "language" "javascript", "code" "var myheaders = new headers();\nmyheaders append(\\"accept\\", \\"application/json\\");\nmyheaders append(\\"content type\\", \\"application/json\\");\n\nvar raw = json stringify({\n \\"id\\" \\"string\\"\n});\n\nvar requestoptions = {\n method 'get',\n headers myheaders,\n body raw,\n redirect 'follow'\n};\n\nfetch(\\"https //api cakes com\\", requestoptions)\n then(response => response text())\n then(result => console log(result))\n catch(error => console log('error', error));", "customlabel" "" } ], "selectedlanguageid" "gybnh43aenvknzmngmumr" }, "results" { "languages" \[ { "id" "qtfx0mreeek71udb4pvwm", "language" "200", "customlabel" "", "code" "{\n \\"name\\" \\"cake's name\\",\n}" }, { "id" "la1w5mqld8goxq3hxlijq", "language" "404", "customlabel" "", "code" "{\n \\"message\\" \\"ain't no cake like that \\"\n}" } ], "selectedlanguageid" "qtfx0mreeek71udb4pvwm" }, "request" { "pathparameters" \[], "queryparameters" \[], "headerparameters" \[], "bodydataparameters" \[ { "name" "mode", "kind" "required", "type" "string", "description" "permite cambiar el modo opciones normal, pinpad", "" "permite cambiar el modo opciones normal, pinpad" } ], "formdataparameters" \[] }, "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" }, "hastryitout" false } realizando una transacción para comenzar una operación primero se debe generar un intent token para la operatoria 1\) generar intenttoken para el pos actual al generar el intent token guardar el mismo devuelto por el servicio 2\) iniciar lectura en el dispositivo enviando todo el contenido recibido en el endpoint anterior es importante que establezca el timeout en 120 segundos ya que esta operación es sincrona { "name" "iniciar lectura", "method" "post", "url" "http //localhost 8484/payment", "description" "inicia la lectura en el dispositivo sólo para modo pinpad", "tab" "examples", "examples" { "languages" \[ { "id" "vpfvojiup1lt9 6k1dppq", "language" "javascript", "code" "var myheaders = new headers();\nmyheaders append(\\"accept\\", \\"application/json\\");\nmyheaders append(\\"content type\\", \\"application/json\\");\n\nvar raw = json stringify({\n \\"id\\" \\"string\\"\n});\n\nvar requestoptions = {\n method 'get',\n headers myheaders,\n body raw,\n redirect 'follow'\n};\n\nfetch(\\"https //api cakes com\\", requestoptions)\n then(response => response text())\n then(result => console log(result))\n catch(error => console log('error', error));", "customlabel" "" } ], "selectedlanguageid" "vpfvojiup1lt9 6k1dppq" }, "results" { "languages" \[ { "id" "mkvdxlr1 4kwkr74b3d80", "language" "200", "customlabel" "", "code" "{\n \\"name\\" \\"cake's name\\",\n}" }, { "id" "73puurf5mh w w9snr1of", "language" "404", "customlabel" "", "code" "{\n \\"message\\" \\"ain't no cake like that \\"\n}" } ], "selectedlanguageid" "mkvdxlr1 4kwkr74b3d80" }, "request" { "pathparameters" \[], "queryparameters" \[], "headerparameters" \[], "bodydataparameters" \[], "formdataparameters" \[] }, "currentnewparameter" { "label" "body parameter", "value" "bodydataparameters" }, "hastryitout" false } 3\) genere la operación invocando el endpoint de operatoria con el intenttoken guardado en el punto 1 y el source recibido en el punto 2 ver aqui