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

Classe RetryPaymentOrderService incompleta? #94

Closed
arivanbastos opened this issue Dec 6, 2017 · 6 comments
Closed

Classe RetryPaymentOrderService incompleta? #94

arivanbastos opened this issue Dec 6, 2017 · 6 comments

Comments

@arivanbastos
Copy link

arivanbastos commented Dec 6, 2017

Seguindo o exemplo constante em /public/DirectPreApproval/retryPaymentOrder.php eu obtenho o erro:

Missing argument 2 for PagSeguro\Services\DirectPreApproval\RetryPaymentOrderService::request(), called in /source/Services/DirectPreApproval/RetryPaymentOrderService.php on line 55 and defined
    in file /source/Services/DirectPreApproval/RetryPaymentOrderService.php at line 92
#0 /source/Services/DirectPreApproval/RetryPaymentOrderService.php(55): request()
#1 /source/Domains/Requests/DirectPreApproval/RetryPaymentOrder.php(43): create()

Verificando a classe RetryPaymentOrderService é possível notar que o código está incompleto (parece um código que estava no meio de um depuração). Possui uns "print_r" e um "exit" no meio do método. Basta olhar o método request:

    private static function request(Connection\Data $connection, $data)
    {
        echo '<pre>';
        print_r($data);
        print_r($connection->buildDirectPreApprovalRetryPaymentOrderUrl() . "?" . $connection->buildCredentialsQuery());
        exit;

        return $connection->buildDirectPreApprovalRetryPaymentOrderUrl() . "?" . $connection->buildCredentialsQuery();
    }

Por conta disso não estou conseguindo fazer retentativas de pagamentos que falharam.

@ghost
Copy link

ghost commented Dec 6, 2017

@arivanbastos Boa tarde executei a constante /public/DirectPreApproval/retryPaymentOrder.phpaqui e retorno com sucesso via Sandbox conforme:
image

Executei conforme exemplo abaixo:

image

@arivanbastos
Copy link
Author

arivanbastos commented Dec 6, 2017

@felipebranco você não executou o retryPaymentOrder você executou o queryPaymentOrder! O retryPaymentOrder é:

$plan = new \PagSeguro\Domains\Requests\DirectPreApproval\RetryPaymentOrder();
$plan->setPreApprovalCode('código da assinatura');
$plan->setPaymentOrderCode('código da ordem de pagamento');
try {
    $response = $plan->register(
	    new \PagSeguro\Domains\AccountCredentials('email vendedor', 'token vendedor') // credencias do vendedor no pagseguro
    );
    echo '<pre>';
    print_r($response);
} catch (Exception $e) {
    die($e->getMessage());
}

A versão HEAD do github está com o problema que mencionei (basta você olhar o arquivo https://github.com/pagseguro/pagseguro-php-sdk/blob/master/source/Services/DirectPreApproval/RetryPaymentOrderService.php):

  1. Na linha 55 o método request() é invocado com 1 parâmetro (que é o que causa o erro) sendo que a assinatura do método define 2 parâmetros.
  2. Existe um exit no meio do método request.

Obrigado pelo feedback!

@arivanbastos
Copy link
Author

Alguma resposta?

@ghost
Copy link

ghost commented Jan 8, 2018

@arivanbastos Irei passar para a equipe de Desenvolvimento do Pagseguro analisar o problema menciado e em breve retorno com um posicionamento! Obrigado pela contribuição.

@ghost
Copy link

ghost commented Jan 9, 2018

@arivanbastos Foi lançada uma nova atualização da Biblioteca de integração Pagseguro para PHP disponível no link: https://github.com/pagseguro/pagseguro-php-sdk/tree/desenvolvimento que corrige o problema relatado.

@arivanbastos
Copy link
Author

Ok. muito obrigado @felipebranco !

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

2 participants