Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tempo de Vida da LIB 1.X #65

Open
leandroip opened this issue Mar 1, 2024 · 11 comments
Open

Tempo de Vida da LIB 1.X #65

leandroip opened this issue Mar 1, 2024 · 11 comments

Comments

@leandroip
Copy link

Olá,

Estou tentando de todas as formas integrar com uma maquininha PagSeguro.
Por enquanto, só consegui chegar mais longe com a LIB 1.x.
Compilou, mas não conecta na maquininha, o programa fica parado... (é a Moderninha WiFi Plus 2)

Gostaria de saber se posso continuar a desenvolver com essa LIB, corre o risco disso parar de funcionar em breve?

@miguelCasagrande
Copy link

As versões 1.X deixaram de ser atualizadas, portanto, não recebem mais correções ou melhorias.

Com o lançamento da versão 3.x, não haverá mais modificações (correções ou melhorias) na versão 1.x.

Na minha opinião, dependendo do seu caso de uso, utilizar essa versão pode apresentar alguns riscos de ela parar de funcionar, por exemplo, devido a atualizações no Android (as versões mais recentes do Android possuem algumas características que não são contempladas na versão 1.X). No entanto, se você tem total controle sobre os dispositivos utilizados, tanto das maquininhas quanto dos aparelhos com os quais você está realizando a integração, é possível que você consiga trabalhar sem problemas. Porém, isso não é o recomendado.

@leandroip
Copy link
Author

Olá,
Obrigado pela resposta!
É mais ou menos o que imaginei.
Minha integração era no Raspberry, mas fica preso no initBT....
Por enquanto, só consegui integrar no Windows em Python.
Em C/Windows dá o erro A107 na maquininha, que não sei o que significa ainda...rs
Vou usar Python até conseguir usar a 4.X no android

@miguelCasagrande
Copy link

Ahh entendi! É, me parece que a versão pra Raspberry ficou meio abandonada... Minha implementação foi toda em Android, então não acho que consigo ajudar muito.. Mas boa sorte no seu projeto!

@angelopedroso
Copy link

Author

O que tu fez pra rodar na demo do python? Botei a porta COM lá, mas não aparece nada no terminal quando faço um pagamento

@leandroip
Copy link
Author

Só rodei com a versao 3.6.2 portable de 32 bit do python.
Veja que aparecem duas portas COM do Bluetooth, mas só a de saída irá funcionar.
Outra coisa é que precisa refazer o pareamento se reiniciar o Windows. Vi alguém falando isso aqui e ocorreu no meu caso tbm.
Apareceu algum erro de timeout com código?

@leandroip
Copy link
Author

Poderiam liberar o protocolo serial como opção. Assim cada um poderia implementar sua versão. Dá forma que está fica amarrado com a dll, so, jar na versão de sistema e linguagem que foram feitos.

@angelopedroso
Copy link

angelopedroso commented Mar 28, 2024

Poderiam liberar o protocolo serial como opção. Assim cada um poderia implementar sua versão. Dá forma que está fica amarrado com a dll, so, jar na versão de sistema e linguagem que foram feitos.

Pois então, tão meio que obrigando a desenvolver um app embarcado. O certo era ter uma API igual as concorrentes, mas né

@angelopedroso
Copy link

angelopedroso commented Mar 28, 2024

Só rodei com a versao 3.6.2 portable de 32 bit do python. Veja que aparecem duas portas COM do Bluetooth, mas só a de saída irá funcionar. Outra coisa é que precisa refazer o pareamento se reiniciar o Windows. Vi alguém falando isso aqui e ocorreu no meu caso tbm. Apareceu algum erro de timeout com código?

Vou por a 3.6.2 p ver, e tinha colocado a COM de entrada também. Valeu

@angelopedroso
Copy link

angelopedroso commented Apr 1, 2024

Poderiam liberar o protocolo serial como opção. Assim cada um poderia implementar sua versão. Dá forma que está fica amarrado com a dll, so, jar na versão de sistema e linguagem que foram feitos.

Arrumei em C se quiser:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "PPPagSeguro.h" // Incluir o header fornecido

void pResult (stPPPSTransactionResult transactionResult)
{
	printf ("\nTransaction Result\n\tmessage [%s]\n\ttransactionCode [%s]\n\tdate [%s]\n\ttime [%s]\n\thostNsu [%s]\n\tcardBrand [%s]\n\tbin [%s]\n\tholder [%s]\n\tuser reference [%s]\n",
			transactionResult.message,
			transactionResult.transactionCode,
			transactionResult.date,
			transactionResult.time,
			transactionResult.hostNsu,
			transactionResult.cardBrand,
			transactionResult.bin,
			transactionResult.holder,
			transactionResult.userReference);
}

int main() {
    const tyComPort comPort; // Alterado para um ponteiro constante
    enPPPSPaymentMethod paymentMethod;
    enPPPSInstallmentType installmentType;
    unsigned int installment;
    tyAmount amount;
    tyUserReference userReference;
    stPPPSTransactionResult transactionResult;
    int ret;
    int choice;

    char continuar[2];

    printf("Digite a porta COM desejada (ex: COM11): ");
    scanf("%s", (char*)comPort); // Realizando cast explícito para char*

    // Iniciar a conexão Bluetooth
    InitBTConnection(&comPort);

    do {
        printf("Selecione uma opcao:\n");
        printf("1. Realizar pagamento\n");
        printf("2. Consultar ultima transacao\n");
        printf("3. Estorno\n");
        printf("Digite o numero correspondente a opcao desejada: ");
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                printf("Digite o tipo de transacao (1 - Credito, 2 - Debito, 3 - Voucher): ");
                scanf("%d", (int*)&paymentMethod);

                printf("Digite o tipo de parcelamento (1 - A vista, 2 - Parcelado): ");
                scanf("%d", (int*)&installmentType);

                if (installmentType == PPPAGSEGURO_A_VISTA) {
                    installment = 1;
                } else {
                    printf("Digite o numero de parcelas: ");
                    scanf("%u", &installment);
                }

                printf("Digite o valor da transacao (em reais): ");
                scanf("%s", amount);

                // Convertendo o valor da transacao para centavos (multiplicando por 100)
                int amountInCents = atof(amount) * 100;
                snprintf(amount, sizeof(amount), "%d", amountInCents);

                // Definindo o código de venda fixo
                strncpy(userReference, "0000000001", sizeof(userReference));

                // Definir o nome e versão da aplicacao
                tyAppName appName;
                tyAppVersion appVersion;
                memcpy(appName, "MyApplication", sizeof("MyApplication"));
                memcpy(appVersion, "R001", sizeof("R001"));
                SetVersionName(appName, appVersion);

                // Executar a transacao
                ret = SimplePaymentTransaction(paymentMethod, installmentType, installment, &amount, &userReference, &transactionResult);

                printf("\n\nRETORNO: %d\n", ret);
                pResult(transactionResult);
                break;

            case 2:
                printf("Consulta ultima transacao:\n");

                // Consultar ultima transacao aprovada
                ret = GetLastApprovedTransactionStatus(&transactionResult);

                printf("\n\nRETORNO: %d\n", ret);
                pResult(transactionResult);
                break;

            case 3:
                printf("Estorno:\n");

                // Executar estorno
                ret = CancelTransaction(&transactionResult);

                printf("\n\nRETORNO: %d\n", ret);
                pResult(transactionResult);
                break;

            default:
                printf("Opcao invalida\n");
                break;
        }

        printf("Deseja fazer outra transação? (S/N): ");
        scanf("%s", continuar);
    } while (strcmp(continuar, "S") == 0 || strcmp(continuar, "s") == 0);

    system("pause");

    return ret;
}

@leandroip
Copy link
Author

Show, funcionou no Windows?

@angelopedroso
Copy link

Show, funcionou no Windows?

Aham, tudo certinho

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants