plugpag icon indicating copy to clipboard operation
plugpag copied to clipboard

Tempo de Vida da LIB 1.X

Open leandroip opened this issue 11 months ago • 11 comments

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?

leandroip avatar Mar 01 '24 19:03 leandroip

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.

miguelCasagrande avatar Mar 04 '24 21:03 miguelCasagrande

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

leandroip avatar Mar 04 '24 22:03 leandroip

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!

miguelCasagrande avatar Mar 04 '24 23:03 miguelCasagrande

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

angelopedroso avatar Mar 27 '24 20:03 angelopedroso

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 avatar Mar 27 '24 22:03 leandroip

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.

leandroip avatar Mar 27 '24 22:03 leandroip

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 avatar Mar 28 '24 11:03 angelopedroso

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 avatar Mar 28 '24 11:03 angelopedroso

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;
}

angelopedroso avatar Apr 01 '24 12:04 angelopedroso

Show, funcionou no Windows?

leandroip avatar Apr 01 '24 23:04 leandroip

Show, funcionou no Windows?

Aham, tudo certinho

angelopedroso avatar Apr 02 '24 00:04 angelopedroso