Поднос QZ не может получить подпись и соединениеJavascript

Форум по Javascript
Ответить
Anonymous
 Поднос QZ не может получить подпись и соединение

Сообщение Anonymous »

Я пытался использовать свой собственный сертификат и закрытый ключ, но когда я пытался реализовать методы setCertificatePromise () и setSignaturePromise (), мой метод QZ.Websocket.Connect () не разрешает и останавливает мое приложение Vue. Я не знаю, забываю ли я внедрить или запустить другой метод. Весь мой код: < /p>
import apiClient from "./apiClient"
import { signService } from "./signService"
qz.security.setCertificatePromise(()=>{
return signService.getCertificate()
.then(response=>{
const cert=response.data
console.log(cert)
return cert
}).catch(err=>{
console.error('Error en la obtención del certificado', err)
throw err
})
})
qz.security.setSignatureAlgorithm("SHA512");
qz.security.setSignaturePromise(function(toSign){
console.log("Se inicia la firma del mensaje")
return signService.signMessage(toSign)
.then(response=>{
console.error("message", response.data)
return response.data
})
.catch(err=>{
console.error("Error en la firma:",err)
throw err
})
})
qz.websocket.connect().then(()=>{
console.log('conexion establecida')
}).catch((err)=>{
console.error('error', err)
})
export const print=async(info)=>{
const ESC='\x1B'
const GS='\x1D'
const alignCenter=ESC+'a\x01'
const alignLeft=ESC+'a\x00'
const alignRight=ESC+'a\x02'
const boldOn=ESC+'E\x01'
const boldOff=ESC+'E\x00'
const doubleHeightWidth=GS+'!\x11'
const normalSize=GS+'!\x00'
const cortar=GS+'V\x00'
try{
console.log('iniciar impresion')
const printerName='POS-58'
const config=qz.configs.create(printerName, {
encoding:'Cp437'
})
console.log('creacion de ticket')
let ticket="\n\n"
ticket+=alignCenter
ticket+=boldOn+doubleHeightWidth
ticket+="Casa Paraíso\n"
ticket+=normalSize+alignLeft
ticket+="Dirección: Camelinas 12, Centro, 76750\nTequisquiapan, Qro.\n\n"
ticket+="Numero de cuenta: "+info.id+"\nCliente: "+info.name+"\n\n"
ticket+="Lista de productos:\n-------------------\n"
ticket+="Nombre del producto | Precio\n"+boldOff
info.products.forEach((prod)=>{
ticket+=`${prod.product.name.padEnd(20)}$${prod.product.price.toFixed(2)}\n`
})
ticket+=boldOn+"-------------------\n"+boldOff
ticket+=alignRight

if(info.status==='open'){
ticket+="Subtotal: $"+boldOn+info.subtotal.toFixed(2)+boldOff+"\n"
ticket+=alignCenter+doubleHeightWidth
ticket+="Pre-ticket\n\n\n\n"+cortar
}else{
if(info.tip!==0){
ticket+="Subtotal: $"+boldOn+info.subtotal.toFixed(2)+boldOff+"\n"
ticket+="Propina: $"+boldOn+info.tip.toFixed(2)+boldOff+"\n"
}
ticket+="Total:"
ticket+=boldOn+`$${info.total.toFixed(2)}\n\n`
ticket+=alignCenter+doubleHeightWidth
ticket+="Gracias por\nsu compra!\n\n\n\n"+cortar
}
console.log('inicio con la firma')
const data=[{type:'raw', format:'plain', data:ticket}]
console.log("inicio de la impresion fisica")
await qz.print(config, data)
console.log("fin de la impresion fisica")
return true
}catch(err){
console.error('Error en la impresion', err)
return false
}
}

< /code>
setCertificatePromise () успешно работает, но после этого ничего не происходит, любая ошибка, любая подтверждение, ничего.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... connecting
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»