como usar ajax para ejecutar evento según estado de checkbox

Saludos a toda la comunidad,muy buenas dias. resulta que estoy haciendo una interfas para controlar un arduino por medio del puerto serial, todo va muy bien excepto que al pulsar el checkbox la página se recarga y eso hace que el checkbox pierda su estado de checked, estuve buscando por ahí como solucionar ese problema con Ajax para que la pagina no se recargue y se envíe solo el case isset($ _GET[‘submitOff/ON’]): al php…. ayudaa ya me rindo NO LO LOGRO 🙁

Instalación del paquete rf an Anaconda para Windows

¡Hola!

He intentado instalar el paquete “rf” para aplicar la metodología de funciones receptoras, en Anaconda, siguiendo cada una de las instrucciones que indican en la documentación. Algunas de las dependencias ya están instaladas correctamente, pero arroja el siguiente error:

Building wheel for toeplitz (setup.py) … error ERROR: Complete output from command ‘C:\Users\msaavedra\Anaconda3\python.exe’ -u -c ‘import setuptools, tokenize;file='”‘”‘C:\Users\MSAAVE~1\AppData\Local\Temp\pip-install-3gc1j83s\toeplitz\setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(file);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, file, ‘”‘”‘exec'”‘”‘))’ bdist_wheel -d ‘C:\Users\MSAAVE~1\AppData\Local\Temp\pip-wheel-9hnd__oo’ –python-tag cp37: ERROR: running bdist_wheel running build running config_cc unifing config_cc, config, build_clib, build_ext, build commands –compiler options running config_fc unifing config_fc, config, build_clib, build_ext, build commands –fcompiler options running build_src build_src building extension “toeplitz” sources f2py options: [] adding ‘build\src.win-amd64-3.7\build\src.win-amd64-3.7\src\fortranobject.c’ to sources. adding ‘build\src.win-amd64-3.7\build\src.win-amd64-3.7\src’ to include_dirs. build_src: building npy-pkg config files running build_ext No module named ‘numpy.distutils._msvccompiler’ in numpy.distutils; trying from distutils customize MSVCCompiler customize MSVCCompiler using build_ext get_default_fcompiler: matching types: ‘[‘gnu’, ‘intelv’, ‘absoft’, ‘compaqv’, ‘intelev’, ‘gnu95’, ‘g95’, ‘intelvem’, ‘intelem’, ‘flang’]’ customize GnuFCompiler Could not locate executable g77 Could not locate executable f77 customize IntelVisualFCompiler Could not locate executable ifort Could not locate executable ifl customize AbsoftFCompiler Could not locate executable f90 customize CompaqVisualFCompiler Could not locate executable DF customize IntelItaniumVisualFCompiler Could not locate executable efl customize Gnu95FCompiler Found executable C:\Users\msaavedra\Anaconda3\Library\mingw-w64\bin\gfortran.exe Using built-in specs. COLLECT_GCC=C:\Users\msaavedra\Anaconda3\Library\mingw-w64\bin\gfortran.exe COLLECT_LTO_WRAPPER=C:/Users/msaavedra/Anaconda3/Library/mingw-w64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: ../gcc-5.3.0/configure –prefix=/mingw64 –with-local-prefix=/mingw64/local –build=x86_64-w64-mingw32 –host=x86_64-w64-mingw32 –target=x86_64-w64-mingw32 –with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include –libexecdir=/mingw64/lib –with-gxx-include-dir=/mingw64/include/c++/5.3.0 –enable-bootstrap –with-arch=x86-64 –with-tune=generic –enable-languages=c,lto,c++,objc,obj-c++,fortran,ada –enable-shared –enable-static –enable-libatomic –enable-threads=posix –enable-graphite –enable-fully-dynamic-string –enable-libstdcxx-time=yes –disable-libstdcxx-pch –disable-libstdcxx-debug –enable-version-specific-runtime-libs –disable-isl-version-check –enable-lto –enable-libgomp –disable-multilib –enable-checking=release –disable-rpath –disable-win32-registry –disable-nls –disable-werror –disable-symvers –with-libiconv –with-system-zlib –with-gmp=/mingw64 –with-mpfr=/mingw64 –with-mpc=/mingw64 –with-isl=/mingw64 –with-pkgversion=’Rev5, Built by MSYS2 project’ –with-bugurl=https://sourceforge.net/projects/msys2 –with-gnu-as –with-gnu-ld Thread model: posix gcc version 5.3.0 (Rev5, Built by MSYS2 project) customize Gnu95FCompiler Using built-in specs. COLLECT_GCC=C:\Users\msaavedra\Anaconda3\Library\mingw-w64\bin\gfortran.exe COLLECT_LTO_WRAPPER=C:/Users/msaavedra/Anaconda3/Library/mingw-w64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: ../gcc-5.3.0/configure –prefix=/mingw64 –with-local-prefix=/mingw64/local –build=x86_64-w64-mingw32 –host=x86_64-w64-mingw32 –target=x86_64-w64-mingw32 –with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include –libexecdir=/mingw64/lib –with-gxx-include-dir=/mingw64/include/c++/5.3.0 –enable-bootstrap –with-arch=x86-64 –with-tune=generic –enable-languages=c,lto,c++,objc,obj-c++,fortran,ada –enable-shared –enable-static –enable-libatomic –enable-threads=posix –enable-graphite –enable-fully-dynamic-string –enable-libstdcxx-time=yes –disable-libstdcxx-pch –disable-libstdcxx-debug –enable-version-specific-runtime-libs –disable-isl-version-check –enable-lto –enable-libgomp –disable-multilib –enable-checking=release –disable-rpath –disable-win32-registry –disable-nls –disable-werror –disable-symvers –with-libiconv –with-system-zlib –with-gmp=/mingw64 –with-mpfr=/mingw64 –with-mpc=/mingw64 –with-isl=/mingw64 –with-pkgversion=’Rev5, Built by MSYS2 project’ –with-bugurl=https://sourceforge.net/projects/msys2 –with-gnu-as –with-gnu-ld Thread model: posix gcc version 5.3.0 (Rev5, Built by MSYS2 project) customize Gnu95FCompiler using build_ext building ‘toeplitz’ extension compiling C sources error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: https://visualstudio.microsoft.com/downloads/


ERROR: Failed building wheel for toeplitz Running setup.py clean for toeplitz Failed to build toeplitz Installing collected packages: toeplitz, rf Running setup.py install for toeplitz … error ERROR: Complete output from command ‘C:\Users\msaavedra\Anaconda3\python.exe’ -u -c ‘import setuptools, tokenize;file='”‘”‘C:\Users\MSAAVE~1\AppData\Local\Temp\pip-install-3gc1j83s\toeplitz\setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(file);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, file, ‘”‘”‘exec'”‘”‘))’ install –record ‘C:\Users\MSAAVE~1\AppData\Local\Temp\pip-record-lg50qgj6\install-record.txt’ –single-version-externally-managed –compile: ERROR: running install running build running config_cc unifing config_cc, config, build_clib, build_ext, build commands –compiler options running config_fc unifing config_fc, config, build_clib, build_ext, build commands –fcompiler options running build_src build_src building extension “toeplitz” sources f2py options: [] adding ‘build\src.win-amd64-3.7\build\src.win-amd64-3.7\src\fortranobject.c’ to sources. adding ‘build\src.win-amd64-3.7\build\src.win-amd64-3.7\src’ to include_dirs. build_src: building npy-pkg config files running build_ext No module named ‘numpy.distutils._msvccompiler’ in numpy.distutils; trying from distutils customize MSVCCompiler customize MSVCCompiler using build_ext get_default_fcompiler: matching types: ‘[‘gnu’, ‘intelv’, ‘absoft’, ‘compaqv’, ‘intelev’, ‘gnu95’, ‘g95’, ‘intelvem’, ‘intelem’, ‘flang’]’ customize GnuFCompiler Could not locate executable g77 Could not locate executable f77 customize IntelVisualFCompiler Could not locate executable ifort Could not locate executable ifl customize AbsoftFCompiler Could not locate executable f90 customize CompaqVisualFCompiler Could not locate executable DF customize IntelItaniumVisualFCompiler Could not locate executable efl customize Gnu95FCompiler Found executable C:\Users\msaavedra\Anaconda3\Library\mingw-w64\bin\gfortran.exe Using built-in specs. COLLECT_GCC=C:\Users\msaavedra\Anaconda3\Library\mingw-w64\bin\gfortran.exe COLLECT_LTO_WRAPPER=C:/Users/msaavedra/Anaconda3/Library/mingw-w64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: ../gcc-5.3.0/configure –prefix=/mingw64 –with-local-prefix=/mingw64/local –build=x86_64-w64-mingw32 –host=x86_64-w64-mingw32 –target=x86_64-w64-mingw32 –with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include –libexecdir=/mingw64/lib –with-gxx-include-dir=/mingw64/include/c++/5.3.0 –enable-bootstrap –with-arch=x86-64 –with-tune=generic –enable-languages=c,lto,c++,objc,obj-c++,fortran,ada –enable-shared –enable-static –enable-libatomic –enable-threads=posix –enable-graphite –enable-fully-dynamic-string –enable-libstdcxx-time=yes –disable-libstdcxx-pch –disable-libstdcxx-debug –enable-version-specific-runtime-libs –disable-isl-version-check –enable-lto –enable-libgomp –disable-multilib –enable-checking=release –disable-rpath –disable-win32-registry –disable-nls –disable-werror –disable-symvers –with-libiconv –with-system-zlib –with-gmp=/mingw64 –with-mpfr=/mingw64 –with-mpc=/mingw64 –with-isl=/mingw64 –with-pkgversion=’Rev5, Built by MSYS2 project’ –with-bugurl=https://sourceforge.net/projects/msys2 –with-gnu-as –with-gnu-ld Thread model: posix gcc version 5.3.0 (Rev5, Built by MSYS2 project) customize Gnu95FCompiler Using built-in specs. COLLECT_GCC=C:\Users\msaavedra\Anaconda3\Library\mingw-w64\bin\gfortran.exe COLLECT_LTO_WRAPPER=C:/Users/msaavedra/Anaconda3/Library/mingw-w64/bin/../lib/gcc/x86_64-w64-mingw32/5.3.0/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: ../gcc-5.3.0/configure –prefix=/mingw64 –with-local-prefix=/mingw64/local –build=x86_64-w64-mingw32 –host=x86_64-w64-mingw32 –target=x86_64-w64-mingw32 –with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include –libexecdir=/mingw64/lib –with-gxx-include-dir=/mingw64/include/c++/5.3.0 –enable-bootstrap –with-arch=x86-64 –with-tune=generic –enable-languages=c,lto,c++,objc,obj-c++,fortran,ada –enable-shared –enable-static –enable-libatomic –enable-threads=posix –enable-graphite –enable-fully-dynamic-string –enable-libstdcxx-time=yes –disable-libstdcxx-pch –disable-libstdcxx-debug –enable-version-specific-runtime-libs –disable-isl-version-check –enable-lto –enable-libgomp –disable-multilib –enable-checking=release –disable-rpath –disable-win32-registry –disable-nls –disable-werror –disable-symvers –with-libiconv –with-system-zlib –with-gmp=/mingw64 –with-mpfr=/mingw64 –with-mpc=/mingw64 –with-isl=/mingw64 –with-pkgversion=’Rev5, Built by MSYS2 project’ –with-bugurl=https://sourceforge.net/projects/msys2 –with-gnu-as –with-gnu-ld Thread model: posix gcc version 5.3.0 (Rev5, Built by MSYS2 project) customize Gnu95FCompiler using build_ext building ‘toeplitz’ extension compiling C sources error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: https://visualstudio.microsoft.com/downloads/ —————————————- ERROR: Command “‘C:\Users\msaavedra\Anaconda3\python.exe’ -u -c ‘import setuptools, tokenize;file='”‘”‘C:\Users\MSAAVE~1\AppData\Local\Temp\pip-install-3gc1j83s\toeplitz\setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(file);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, file, ‘”‘”‘exec'”‘”‘))’ install –record ‘C:\Users\MSAAVE~1\AppData\Local\Temp\pip-record-lg50qgj6\install-record.txt’ –single-version-externally-managed –compile” failed with error code 1 in C:\Users\MSAAVE~1\AppData\Local\Temp\pip-install-3gc1j83s\toeplitz\

Pensé que solo necesitaba unos compiladores de fortran, por lo que también instalé MinGW para ver si se solucionaba el problema, sin embargo, no tuve éxito. En este caso no estoy segura si el paquete no funciona en un ambiente Windows, que es desde donde estoy trabajando con Anaconda.

Agradecería mucho cualquier ayuda!!!

Tengo 4 threads y dos se refieren a un objeto pero al hacer a un thread.sleep(x) no ejecuta ese thread para ambos objetos

Cree una ConcurrentLinkedQueue de strings, tengo dos colas y voy almacenando siempre datos (bucle en mi thread), luego por cada determinado tiempo una cola saca datos (bucle en thread) y luego la otra deberia tambien, pero ambas instrucciones de ambos threads se hacen al mismo tiempo, cuando necesito que por un tiempo se ejecute un thread y luego otro

Entrada entrada_cola1 = new Entrada(cola1);     Salida salida_cola1 = new Salida(cola1);     Entrada entrada_cola2 = new Entrada(cola2);     Salida salida_cola2 = new Salida(cola2);      System.out.println("------------------------");     System.out.println("INICIO DE SIMULACION");     System.out.println("------------------------");     entrada_cola1.start();     entrada_cola2.start();     salida_cola1.start();     salida_cola2.start();     while(true){         try{         salida_cola2.sleep(rojo);         } catch(Exception e){         }         System.out.println("--------------------------------------------------------------------------------------------------------------");         System.out.println("SEMAFORO CAMBIO COLOR: ROJO-VERDE PARA COLA A: Se encuentran "+cola1.size()+ " Carros en cola A");         System.out.println("SEMAFORO CAMBIO COLOR: VERDE-AMARILLO-ROJO PARA COLA B: "+cola2.size()+" Carros en cola B");         System.out.println("---------------------------------------------------------------------------------------------------------------");           try{         salida_cola1.sleep(rojo);         }catch(Exception e){         }         System.out.println("----------------------------------------------------------------------------------------------------------------");         System.out.println("SEMAFORO CAMBIO COLOR: VERDE-AMARILLO-ROJO PARA COLA A: "+cola1.size()+" Carros en cola A");         System.out.println("SEMAFORO CAMBIO COLOR: ROJO-VERDE PARA COLA B: "+cola2.size()+" Carros en cola B");         System.out.println("-----------------------------------------------------------------------------------------------------------------");          } 

¿Como puedo usar el Action Listener para asignarle unas teclas a unas imagenes?

quiero hacer un juego donde una serie de imágenes saldrán en pantalla. la idea es que si la imagen de color azul sale el niño oprima la letra (A) por ejemplo. si sale una verde oprima la letra (v), y de esta forma saldrá un mensaje de correcto pero si oprime otra que no corresponde salga error. como le asigno una letra a cada imagen.

Agregar animación a carrusel para desplazarse de derecha a izquierda y viceversa

Buen día amigos desarrolladores, tengo un carrusel parecido a los de bootstrap que contiene 4 items y por medio de JavaScript detecto que al dar click en la flecha siguiente o atrás me oculte el ultimo o primer ítem y solo me deje visible en este caso los 3 restantes. generaría el siguiente efecto: [1,2,3]… [2,3,4]… [3,4,5]…[4,5,6]… Esto lo logro alternando de posición los div internos del carrusel y utilizando las propiedades display: block y none. tambien es posible que por el valor de una variable puedo elegir cuantos divs voy a visualizar.Hasta el momento todo funciona de maravilla, lo que quiero y aun me falta es añadirle una transición para que deslice los divs de derecha a izquierda y viceversa.

Codigo Html:

Mi_Carrucel_Datia("mi_carrucel", 3, "boton1", "boton2"); Mi_Carrucel_Datia("mi_carrucel_2", 5, "boton3", "boton4");  function Mi_Carrucel_Datia($  var_Carrucel, $  var_Visibles, $  btn_Atras, $  btn_Siguiente) {   console.log("Objeto: " + $  var_Carrucel + " - Cantidad: " + $  var_Visibles + " - Boton atras: " + $  btn_Atras + " - Boton derecha: " + $  btn_Siguiente);   $  ind_Int = 0;   $  var_Visibles--;   $  var_Movimiento = 100 / $  var_Visibles;   //ocular otros   $  ('#' + $  var_Carrucel + '>div').each(function() {      console.log("Div: " + $  (this).index());     if ($  (this).index() > $  var_Visibles) {       $  (this).css("display", "none");     }   });    $  btn_izq = document.getElementById($  btn_Siguiente);   $  btn_izq.addEventListener('click', function() {      console.log("Atras: " + $  (this).prop("id") + " - Objeto: " + $  var_Carrucel);     $  var_item_Temp = $  ('#' + $  var_Carrucel).children('div :first');     $  ('#' + $  var_Carrucel).append($  var_item_Temp);     //$  ('#' + $  var_Carrucel).children('div :first').remove();     $  ('#' + $  var_Carrucel + '>div').each(function() {        console.log("Div: " + $  (this).index());       if ($  (this).index() > $  var_Visibles) {         $  (this).css("display", "none");       } else {         $  (this).css("display", "block");       }     });    }, false);    $  btn_der = document.getElementById($  btn_Atras);   $  btn_der.addEventListener('click', function() {     console.log("Siguiente: " + $  (this).prop("id") + " - Objeto: " + $  var_Carrucel);     $  var_item_Temp = $  ('#' + $  var_Carrucel).children('div :last');     $  ('#' + $  var_Carrucel).prepend($  var_item_Temp);      $  ('#' + $  var_Carrucel + '>div').each(function() {        console.log("Div: " + $  (this).index());       if ($  (this).index() > $  var_Visibles) {         $  (this).css("display", "none");       } else {         $  (this).css("display", "block");       }     });    }, false);  }
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />  <div style="width: 100%; margin-top: 80px;border: 1px solid; height: 200px;">   Mi carrucel primero    <div id="mi_carrucel" class="row">     <div class="col" style="height: 100px;border: 1px solid;">       numero 1     </div>     <div class="col" style="height: 100px;border: 1px solid;">       numero 2     </div>     <div class="col-" style="height: 100px;border: 1px solid;">       numero 3     </div>     <div class="col-" style="height: 100px;border: 1px solid;">       numero 4     </div>     <!-- <div class="col-md-3" style="height: 100px;border: 1px solid;"> numero 5 </div> <div class="col-md-3" style="height: 100px;border: 1px solid;"> numero 6 </div> <div class="col-md-3" style="height: 100px;border: 1px solid;"> numero 7 </div> -->   </div>   <div id="boton1">     Atras   </div>   <div id="boton2">     Siguiente   </div>  </div> <div style="width: 100%; margin-top: 80px;border: 1px solid; height: 200px;">   Mi carrucel segundo    <div id="mi_carrucel_2" class="row">     <div class="col" style="height: 100px;border: 1px solid;">       numero 1     </div>     <div class="col" style="height: 100px;border: 1px solid;">       numero 2     </div>     <div class="col" style="height: 100px;border: 1px solid;">       numero 3     </div>     <div class="col" style="height: 100px;border: 1px solid;">       numero 4     </div>     <div class="col" style="height: 100px;border: 1px solid;">       numero 5     </div>     <div class="col" style="height: 100px;border: 1px solid;">       numero 6     </div>     <div class="col" style="height: 100px;border: 1px solid;">       numero 7     </div>   </div>    <div id="boton3">     Atras   </div>   <div id="boton4">     Siguiente   </div>   </div>

Subconsulta para sumar dos columnas en mysql

necesito que alguien me pueda ayudar… No tiene relación la pregunta escrita, o bien si, les comentaré: Estoy trabajando con una tabla llamada “pasajes_db”, del cual contiene las fecha de viajes y el precio tanto de ida, como de vuelta.

+--+-----+----------+----------------+-----------+---------------+ |id|   fecha_compra |estado_solicitud|tarifa_ida | tarifa_vuelta | +--+-----+----------+----------------+-----------+---------------+ |1 |   2019-07-10   |    EMITIDO     | 140       |  130          | +--+-----+----------+----------------+-----------+---------------+ |2 |   2019-08-21   |    EMITIDO     | 155       |  140          | +--+-----+----------+----------------+-----------+---------------+ |3 |   2019-09-01   |    PERDIDO     | 180       |  160          | +--+-----+----------+----------------+-----------+---------------+ |4 |   2019-09-01   |    EMITIDO     | 90        |  110          | +--+-----+----------+----------------+-----------+---------------+ |2 |   2019-09-08   |    EMITIDO     | 130       |  120          | +--+-----+----------+----------------+-----------+---------------+ |3 |   2019-09-13   |    PERDIDO     | 130       |  130          | +--+-----+----------+----------------+-----------+---------------+ 

Tengo ingresado los estados de aquellos pasajes, significa que todos son comprados, sin embargo los perdidos se toman como costo ya que cliente nunca usó su pasaje.

Lo que necesito realmente de todo esto es generar una consulta que realice suma de la tarifa ida y tarifa vuelta al año, y además que me visualice los pasajes emitidos y los perdidos (emitidos – perdidos), de momento tengo esto, pero sólo me entrega los emitidos.

SELECT MONTH(fecha_compra) Mes, SUM(tarifa_ida+tarifa_vuelta) as total_emitido  FROM pasajes_db  WHERE estado_solicitud='EMITIDO'  GROUP BY Mes 

RESULTADO

+-----+----------+----------------+ |   Mes          |  total_emitido | +-----+----------+----------------+ |   7            |     270        |  +-----+----------+----------------+ |   8            |     295        |  +-----+----------+----------------+ |   9            |     450        |  +-----+----------+----------------+ 

Sé que estoy usando un WHERE que sólo está condicionando los “emitidos”, pero no logro traer la solicitud “perdido”, tengo que crear ¿ subconsulta ?

Ayuda para implementar correctamente Mobile Checkout

Estoy haciendo una implementación de Mobile Checkout en Node y Android para un e-commerce.

Mi backend crea la preferencia, la guarda en la orden de compra y luego regresa la orden con las preferencias al cliente, este usa el id de la preferencia para continuar con el pago.

Ahora, cuando realizo el pago (tarjetas de prueba), la respuesta me trae el id del pago, el cual lo envío al backend para actualizar la orden de compra.

Mi problema es, cuando obtengo el pago (en backend), no encuentro algún campo que relacione ese pago con la preferencia creada previamente, necesito esto para de poder confirmar que el pago pertenece a una orden, no puedo relacionarlo con el id la orden que me envía el cliente móvil porque eso sería una vulnerabilidad.

Es posible que me estoy saltando algo, espero puedan ayudarme con eso. Muchas gracias.