Jump to content
Fivewin Brasil

sunset

Membros
  • Posts

    346
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by sunset

  1. Boa tarde.

    deixa eu pegar um gancho aqui, implementei no meu sistema um pagamento por Pix da pagpix, tudo ok o funcionamento, mas agora que o negocio deu certo, o pessoal que usava o PINPAD com o PIX da integrado de cartão esta perguntando se não tem como mandar o QRCODE para o PINPAD igual o programa do TEF faz, para o cliente fazer o pagamento, atualmente mando na tela do caixa, então vem a burocracia de ter 2 telas ou o cliente ir ler da tela do caixa, no PINPAD faz mais sentido com certeza.

    Então não tenho a mínima ideia se e possível fazer  ou se o PINPAD e fechado para envios externos que não seja pelos "GP" gerenciador padrão das operadoras, usando DLL ou algum ou processo.

     

    Grato por qualquer dica.

  2. Em 17/05/2023 at 14:51, macs disse:

    Amigo, isso já ocorreu comigo por conta dos tamanhos das imagens. Para resolver, coloquei as imagens em uma Dll. 

    Aí é só realizar os controles:

    hResources := GetResources()

    SetResources( "imagens.dll" )

    ...

    ...

    ..

    SetResources( hResources ) 

     

     

    Voce cria sua dll com WORKSHOP ou PELLESC? se possível manda uma parte do codigo como voce carrega a imagem no objeto e exibir na linha de codigo de um botão por exemplo.

  3. 6 minutos atrás, giovanyvecchi disse:

    Se você contruir um arquivo .rc que é texto e não é compilado para .RES no PellesC, você tem que gerar o .RES por ele mesmo porque as definições das variaveis são diferentes do BCC que usa o BRC32 para gerar o .RES do arquivo .RC.

    Ou você usa o PellesC e edita o arquivo .RES diretamente e ja compilado, ou edita em .RC e na compilação usa o comando que citei acima.

    A vantagem de usar .RC é que voce terá controle de versão caso use Github. Eu faço desta maneira.

    O padrão de definições das variaveis do PellesC são as mesmas da Microsoft Visual C (MSVC) para quem usa Visual Studio para gerar o programa como eu. Neste caso você pode contruir os arquivos .RC no pellesC que o CVTRES.EXE é chamado automaticament pelo CL.EXE gerando os arquivos .RES compativeis ao MSVC para geração do seu executavel.

    Os arquivos .RES já compilados pelo Workshop ou outro editor de recursos do padrã Borland não são incorporados no executavel gerado pelo MSVC. O mesmo causa um erro no Link. 

    Baixe um demonstrativo que postei no forum internacional que no programinha que fiz tem um arquivo .RC feito no PellesC e compilado com MSVC.

    https://github.com/FiveTechSoft/FWH_tools/blob/master/giovany_tsttheme.zip

    Entendi, mas isso causaria o erro intermitente numa maquina ok e em outra com problema?

  4. 3 horas atrás, emotta disse:

    Eu nunca trabalhei com resources e faz um bom tempo que não trabalho com fivewin, mas esse problema tem cara de ser alguma perda de conexão da rede, mesmo que seja momentânea. 

    Experimente colocar o sistema localmente, se isso for possível, e veja se o erro ocorre. Mas é apenas um chute, se esse problema estivesse comigo eu iria por esse lado.

    Em maquinas locais tambem acontece, mas aleatoriamente, em algumas nunca da erro algum a do mysql que perde rede , acontece comigo em maquinas com windows 7 quando fica aberta no xbrowse, sempre cai. e mostra erro.

  5. 8 horas atrás, kapiaba disse:

    Erro BASE/1005  Class: 'NIL' has no property: BSTART quando que isso ocorre? é quando você clicka dentro da TXBROWSE()? como você definiu a Variável oBrw? O que você quer STARTAR? Iniciar? Tá super estranho e nos DIALOGOS, fora os NOMES das DIALOGS, não vi nada de "anormal", o phoda é que não entendo de PELLESC. Eu fiquei no muro. So sorry. Nem abrir os dialogos eu consigo.

    Abs.

    Regards, saludos.

    Como falei, tudo funciona perfeito, ate se passar 2h a 3h em algumas maquinas. Se fosse algo que não funcionava, como e uma tela de vendas e o unico lugar que geralmente passa-se horas usando a tela, achei que poderia ser algo tipo as maquinas antigonas que davam erro de divisão por zero. 

    Mas vou tentar o mais basico versão fw mais recente e ver no que da.

  6. 7 minutos atrás, kapiaba disse:

    Sunset, isto no PELLESC, e o que BOTOES ou BITMAPS?

     

    
      CONTROL "Button", 4002, "Button", BS_BITMAP|WS_TABSTOP, 4, 60, 135, 27
      CONTROL "Button", 4005, "Button", BS_BITMAP|WS_TABSTOP, 4, 88, 135, 27
      CONTROL "Button", 4003, "Button", BS_BITMAP|WS_TABSTOP, 4, 116, 135, 27
      CONTROL "Button", 4006, "Button", BS_BITMAP|WS_TABSTOP, 4, 144, 135, 27
      CONTROL "Button", 4004, "Button", BS_BITMAP|WS_TABSTOP, 4, 172, 135, 27
      CONTROL "Button", 4007, "Button", BS_BITMAP|WS_TABSTOP, 4, 200, 135, 27
      CONTROL "Button", 4013, "Button", BS_BITMAP|BS_MULTILINE|WS_TABSTOP, 4, 228, 135, 27
      CONTROL "Button", 4014, "Button", BS_BITMAP|BS_MULTILINE|WS_TABSTOP, 4, 256, 135, 27
    

     

    Regards, saludos.

    Botões onde vou carregar bitmaps

    https://www.screenpresso.com/=Y6Utb

    https://www.screenpresso.com/=qfwdb

     

    LInha do ID 4004

    REDEFINE RBBTN  obf6 PROMPT "F6  - Forma de Pagamento"  ACTION MsgRunESC("Aguarde somando os resultados para finalizar a venda...",'',{|oDlgMsg|PDV_FORMA_DE_PAGAMENTO(oDlgMsg)}) id 4004 OF oDlg_PDV_Principal WHEN vqntregis # 0 FONT oFontBotaoPDV01 MOSTLEFT ROUND BORDER GRADIANT aClrButtons1 LINECOLORS CLR_BLACK,CLR_WHITE
          obf6:bClrText := {| lEnable | if( lEnable, CLR_WHITE, GetSysColor( 17 ) ) }
          obf6:cToolTip:="F6 - Forma de Pagamento"
          obf6:aClrGradOver = { || aClrButtons2 }
          obf6:aClrGradBack = aClrButtons2
          obf6:bClrGradSubOver = { || aClrButtons2 }
     

     

  7. O erro não e recorrente, e apos 2 ou 3horas de uso e em maquinas mais fracas, em maquinas mais robustas as mesmas telas e rotinas rodam sem problema, por isso não acho que seja diretamente no .RES e não uso DLL para as telas, sempre edito todas pelo PELLES.

     

    Procuro quem para adquirir um novo FW? talvez o conjunto a obra seja o problema.

  8. Boa tarde, existe alguma maneira de evitar o erro abaixo, notei que em algumas maquinas apos 2h ou 3h de uso, da erro nas dialogs, sera que esta enchendo a memoria com as dialogs e não são finalizadas ou algo do tipo.

     

    Alguma dica ?

    Aplicacao
    ==========
       Nome e Caminho: S:\InteligenceERP.EXE
       Tamanho:  39.830.016,000 Bytes
       Unidade Mapeada: 
       \\SERVIDOR\iERP\Integra1
       Usuario: PC - IP da Maquina:192.168.0.111
       Windows Versao: 10 64 Bits
       Tempo Desde a Abertura do Programa: 2 hours 27 mins 47 secs 
       Ocorreu erro em: 10/05/2023, 09:06:10
       Descricao do problema:Erro FiveWin/3  Cannot create Dialog Box: 
                          Resource: DLG_CBR_VENDA1366X768

     

    Quando não é como o erro acima na criação da DIALOG e no meio da rotina, mas sempre com relação a montagem da tela.

     

     

    Aplicacao
    ==========
       Nome e Caminho: S:\InteligenceERP.EXE
       Tamanho:  39.830.016,000 Bytes
       Unidade Mapeada: 
       \\SERVIDOR\iERP\Integra1
       Usuario: Apoio - IP da Maquina:10.122.244.78
       Windows Versao: 10 64 Bits
       Tempo Desde a Abertura do Programa: 2 hours 1 mins 2 secs 
       Ocorreu erro em: 10/05/2023, 16:33:42
       Descricao do problema:Erro BASE/1005  Class: 'NIL' has no property: BSTART
       Args:
         [   1] = U   
         [   2] = B   {|| ... }

    Chamadas ao Stack 
    ================= 
    ERRSYSW.prg => (b)ERRORSYS( 38 )
     => _BSTART( 0 )
    vendmesa.prg => CBR_VENDA_POR_CODIGO_F2( 1038 )
    vendmesa.prg => (b)CBR_VENDA( 217 )
    MSGRUN.PRG => (b)MSGRUN( 36 )
    DIALOG.PRG => (b)TDIALOG:TDIALOG( 97 )
     => TDIALOG:DISPLAY( 0 )
    DIALOG.PRG => TDIALOG:HANDLEEVENT( 1123 )
     => DIALOGBOXINDIRECT( 0 )
    DIALOG.PRG => TDIALOG:ACTIVATE( 304 )
    MSGRUN.PRG => MSGRUN( 42 )
    vendmesa.prg => (b)CBR_VENDA( 217 )
    TRBTN.PRG => TRBTN:CLICK( 717 )

  9. Boa tarde.

    Não sei como popular com o conteúdo do jSON retornado, que esta em  anexo, quando eu coloco o conteúdo para ler com o xbrowse() ,o retorno do conteúdo, ele me mostra 2 Brow, o primeiro com "Detalhe" que é a primeira estrutura dos dados e quando dou 2 clicks ele abre o próximo browse com os dados detalhados, basicamente são os dados que queria popular o vetor, mas não sei como obter os dados da segunda camada dos dados.

    Qualquer dica e bem vinda, tentei algumas combinações lidas aqui no fórum, mas falhei em todas.

        xx:=MemoRead(varquivo_retorno)
                hRetornos := {=>}
                hb_JSONDecode(xx,@hRetornos)

    1º tela com xbrowse com o conteúdo retornado. 

    image.png.ef558e59829e48a80933c60bd52196a9.png

    2ª tela após 2 clicks em detalhes, ele mostra os dados detalhados da estrutura.

    image.thumb.png.96cc0c4b1b0bea7ff5f31682d79f39c2.png

    resposta_api - Copia.json

  10. Bom dia

    Alguém tem alguma dica de editor de recursos tipo o PELLES C para ser usado no Mac, atualmente estou usando o PELLES C dentro do Parallels, mas o desempenho e muito comprometido.

    Grato por qualquer indicação.

    PS: Já dei uma pesquisa no google mas não achei nada, ate mesmo porque o termo editor de recursos não retorna muita coisa.

  11. Bom Dia.

    Você também pode enviar via FTP para seu provedor de internet, mas claro isso também depende de quanto você tem disponível em disco no provedor, no meu caso faço o envio do PDF e do xml para uma pasta especifica e salvo o caminho no banco de dados, mesma situação para salvar imagens dos produtos no cadastro de produtos.

     

    Agora o FTP e muito sentimental tem dias que do nado para de funcionar e tambem volta a funcionar sem intervenção. 

  12. Bom Dia.

    Eu consigo consumir a API em outros projetos também sem problemas, meu único problema e de fato com a STONE, mas acredito que seja por este motivo anexo na imagem image.png.7ccc217a34edcdb78423e6a8d616d6a9.png

    usando o cURL.EXE tive que adicionar o parâmetro -k que é um modo inseguro para ele conseguir autenticar também, acredito que a ativação no objeto não se seja de forma nativa, então e bola frente ja que esta funcionando, ou problema também seria no formato devolvido esta compactado com gZIP e não temos como descompactar via FW, então usei mais uma vez algo externo, mas para o usuário esta tudo escondido, somente aquele sentimento de gambiarras para resolver coisas simples. 

  13. O comando e com PUT mas tenho outros para teste, com POST e GET, mas ambos também não funcionam, ja usando o cURL em maquinas que não estão com windows 10 toda atulizada tambem apresenta erros de autenticação, que provavelmente e o erro do CreateObject, na STONE ele faz uma autenticação com TLS 1.2 segundo a documentação e acredito que com  esse instanciamento não e possível.

    no cURL acrescentei um parâmetro -k e deu certo, em outras maquinas.

     

    Grato a todos pelas dicas, mas vamos ficar no bat com cURL mesmo.

    Outra dica importante o hb_unzipfile não descompacta GZIP tiver que colocar o 7z.exe e dll na pasta para poder descompactar. 

  14. 23 minutos atrás, macs disse:

    CreateObject( 'MSXML2.ServerXMLHTTP.6.0' ) ou CreateObject( 'MSXML2.ServerXMLHTTP.5.0' )

    Já tentei com as 2 variantes também não funcionou, então deixa a padrão.

    Quanto ao PUT seria um envio de TOKEN para registrar tem ele a mesma variação com GET para consultar se o token esta gerado, mas ambos retorna 401.

    https://conciliacao.stone.com.br/reference#concessao-de-acesso 

     

     

  15. Bom dia 

    Já tentei de tudo (rs), bem pelo menos com meus limitados conhecimentos, gostaria de consumir a api da Stone para uma integração do conciliador de cartão, então montei todo o esquema, no POSTMAN tudo ok, usando o cURL tudo ok tambem, mas quanto tento usar os metos contidos em 'MSXML2.ServerXMLHTTP' , sempre me retornar o erro 401, que seria falta ou parâmetros errados, na verdade não sei nem se chega a conectar porque o 401 não tem como debugar melhor, mas seria basicamente assim meu envio.

    Aqui funciona 100% com cURL 

    curl.exe --location --request PUT "https://conciliation.stone.com.br/v1/merchant/394972625/access-authorization?affiliationCode=f3129ad18f994abbb014e53dffb1b0c3" --header "X-Authorization-Raw-Data: 07956658000110" --header "X-Authorization-Encrypted-Data: 43d2be2913d2ce3e3042e8c6115e41bfe4a2bd90ef71ea3660eaa2201bead1c28b17243c958b47d90e5d2ec3dcd38c7066a710e9f18238cb8b7809c8817fcfe1" --header "Authorization: Bearer 5f260209-7169-4477-ac3c-f802d558a24b" -o resposta.xml -s

    Mas aqui não funciona.

    Function Comunica_api_stone_put(vstonecd,vafiliat,vcliappl,vsecretk,vauthraw,vauthenc)
                cUrl:= 'https://conciliation.stone.com.br/v1/merchant/'+vstonecd+'/access-authorization'
                oHttp:= CreateObject( 'MSXML2.ServerXMLHTTP' )    
                oHttp:Open( "PUT" , cUrl, .f. )
                oHttp:setRequestHeader("X-Authorization-Raw-Data",vauthraw)
                oHttp:setRequestHeader("X-Authorization-Encrypted-Data",vsecretk)
                oHttp:setRequestHeader("Authorization","Bearer "+vcliappl)
                oHttp:setRequestHeader("Content-Type","application/json")
                oHttp:send()
                MSGINFO(ALLTRIM(oHttp:ResponseText),"OK 1")
                MSGALERT(oHttp:status,"OK 2")
                IF oHttp:status = 504 
                    MsgAlert("Atenção Erro 504 Ocorreu um timeout e não foi possível concluir o trabalho, tente novamente","Atenção") 
                    RETURN .F.
                ELSEIF oHttp:status = 503
                    MsgAlert("Atenção Erro 503 Um dos sistemas da Stone falhou, por favor nos informe","Atenção") 
                    RETURN .F.
                ELSEIF oHttp:status = 500
                    MsgAlert("Atenção Erro 500 Ocorreu um erro interno na API, por favor nos informe","Atenção") 
                    RETURN .F.
                ELSEIF oHttp:status = 404
                    MsgAlert("Atenção Erro 404 Erro no formato da URL ou no método enviado","Atenção") 
                    RETURN .F.
                ELSEIF oHttp:status = 401
                    MsgAlert("Atenção Erro 401 Erro no envio Não autorizado para API","Atenção") 
                    RETURN .F.
                ELSEIF oHttp:status = 400
                    MsgAlert("Atenção Erro 400 Erro nos dados informados para a API","Atenção") 
                    RETURN .F.
                ELSEIF oHttp:status = 202
                    MsgAlert("Atenção 202 empresa, identificada pelo {application-key}, ainda não tem acesso aos dados de conciliação do lojista identificado pelo {stone-code} informado na URL. O e-mail de solicitação foi enviado para o lojista, para que ele conceda o acesso ou não.","Atenção") 
                    RETURN .T.
                ELSEIF oHttp:status = 200
                    MsgAlert("Atenção 200 A empresa, identificada pelo {application-key}, já está autorizada a acessar os dados de conciliação do lojista identificado pelo {stone-code} informado na URL.","Atenção") 
                    RETURN .T.
                ENDIF                     
                RETURN .T.             
     

    Alguma Dica, ou vou ter que morrer usando o BAT mesmo com o cURL ?

×
×
  • Create New...