Skip to content

Transaction.php #69

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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

lupainformatica
Copy link

jsonSerialize - array filter changed from !is_null to !empty.
Property urls always return with empty array is throws an error Urls: Required parameter missing (kind).

jsonSerialize - array_filter alterado o return de !is_null para !empty, pois a propriedade urls estava retornando com um array vazio e dava erro de "Urls: Required parameter missing (kind)." no request
@edson-nascimento
Copy link

@netojoaobatista @RedeEc Alguma previsão de merge para corrigir esse erro do array de urls vazio?

@iappaPedroza
Copy link

@netojoaobatista @RedeEc Alguma previsão de merge para corrigir esse erro do array de urls vazio?

Eu acho incrível que ainda não fizeram o merge com sua correção para essa linha. Aparentemente para env em produção, não gera o conflito, mas para a sandbox, o erro Required parameter missing (kind). continua, estou enfrentando isso nesse momento, assim como não consigo nem em sandbox, nem em produção, realizar uma transação com "capture(false)", a cobrança está sendo capturada automaticamente, como se o parametro capture() estivesse ausente, mesmo estando presente no código.

@edson-nascimento
Copy link

@netojoaobatista @RedeEc Alguma previsão de merge para corrigir esse erro do array de urls vazio?

Eu acho incrível que ainda não fizeram o merge com sua correção para essa linha. Aparentemente para env em produção, não gera o conflito, mas para a sandbox, o erro Required parameter missing (kind). continua, estou enfrentando isso nesse momento, assim como não consigo nem em sandbox, nem em produção, realizar uma transação com "capture(false)", a cobrança está sendo capturada automaticamente, como se o parametro capture() estivesse ausente, mesmo estando presente no código.

Aqui no sandbox o $transaction->capture(false); está funcionando corretamente, queres postar o código onde implementa o transaction?

@iappaPedroza
Copy link

iappaPedroza commented May 26, 2024

@netojoaobatista @RedeEc Alguma previsão de merge para corrigir esse erro do array de urls vazio?

Eu acho incrível que ainda não fizeram o merge com sua correção para essa linha. Aparentemente para env em produção, não gera o conflito, mas para a sandbox, o erro Required parameter missing (kind). continua, estou enfrentando isso nesse momento, assim como não consigo nem em sandbox, nem em produção, realizar uma transação com "capture(false)", a cobrança está sendo capturada automaticamente, como se o parametro capture() estivesse ausente, mesmo estando presente no código.

Aqui no sandbox o $transaction->capture(false); está funcionando corretamente, queres postar o código onde implementa o transaction?

Bom pra meu sistema não está, e meu código está como recomendado no passo a passo aqui do GH.
dessa forma:
Por padrão, a transação é capturada automaticamente; caso seja necessário apenas autorizar a transação, o método Transaction::capture() deverá ser chamado com o parâmetro false:

<?php
// Configuração da loja em modo produção
$store = new Store('PV', 'TOKEN', Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

// Transação que será autorizada
$transaction = (new Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2020',
    'John Snow'
)->capture(false);

// Autoriza a transação
$transaction = (new eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}
//...
Mas o que acontece é que a cobrança é efetivada no cartão do cliente (testei usando um cartão válido em produção também), o certo não seria, só cobrar, depois da captura ser enviada novamente?
Por exemplo: cliente entra os dados do cartão, meu sistema dispara o codigo acima apenas para AUTORIZAR, conforme fala no manual, e depois, em outro momento eu disparo o codigo que CAPTURA/FORMALIZA A COBRANÇA?

@edson-nascimento
Copy link

$transaction = (new eRede($store))->create($transaction);

A implementação parece correta, parece ser algum problema interno mesmo 😕

@iappaPedroza
Copy link

$transaction = (new eRede($store))->create($transaction);

A implementação parece correta, parece ser algum problema interno mesmo 😕

Pois é... da mesma forma que a questão do Authorization Code que está sendo retornado dentro do objeto Brand, mas a classe não possui o tratamento adequado para puxar ele. Tive que fazer na mão, (not a big deal actually), mas tem esses bugs no SDK para PHP que não foram corrigidos ainda... mesmo com merge aplicado.

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

Successfully merging this pull request may close these issues.

3 participants