Recurring payment with Cielo webservice 3.0 [closed]
Closed. this question is out of scope and is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed last month .
improve this questionI am testing the recurring payment example, available in the official Cielo repository and the code returns the following error:
Fatal error: Uncaught Error: Call to a member function setInterval() on null in / var/www/public / page.php: 24
$recurrent = $recurrent->setInterval(RecurrentPayment::INTERVAL_MONTHLY)->setAuthorizeNow(true);
Has anyone ever had this problem?
Full Code:
require 'vendor/autoload.php';
use Cielo\API30\Merchant;
use Cielo\API30\Ecommerce\Environment;
use Cielo\API30\Ecommerce\Sale;
use Cielo\API30\Ecommerce\CieloEcommerce;
use Cielo\API30\Ecommerce\Payment;
use Cielo\API30\Ecommerce\Request\CieloRequestException;
// ...
// Configure o ambiente
$environment = $environment = Environment::sandbox();
// Configure seu merchant
$merchant = new Merchant('MERCHANT ID', 'MERCHANT KEY');
// Crie uma instância de Sale informando o ID do pagamento
$sale = new Sale('123');
// Crie uma instância de Customer informando o nome do cliente
$customer = $sale->customer('Fulano de Tal');
// Configure a recorrência
$recurrent = $recurrent->setInterval(RecurrentPayment::INTERVAL_MONTHLY)
->setAuthorizeNow(true);
// Crie uma instância de Payment informando o valor do pagamento
$payment = $sale->payment(15700);
// Crie uma instância de Credit Card utilizando os dados de teste
// esses dados estão disponíveis no manual de integração
$payment->setRecurrentPayment($recurrent)
->setType(Payment::PAYMENTTYPE_CREDITCARD)
->creditCard("123", "Visa")
->setExpirationDate("12/2018")
->setCardNumber("0000000000000001")
->setHolder("Fulano de Tal");
// Crie o pagamento na Cielo
try {
// Configure o SDK com seu merchant e o ambiente apropriado para criar a venda
$sale = (new CieloEcommerce($merchant, $environment))->createSale($sale);
// Com a venda criada na Cielo, já temos o ID do pagamento, TID e demais
// dados retornados pela Cielo
$paymentId = $sale->getPayment()->getPaymentId();
// Com o ID do pagamento, podemos fazer sua captura, se ela não tiver sido capturada ainda
$sale = (new CieloEcommerce($merchant, $environment))->captureSale($paymentId, 15700, 0);
// E também podemos fazer seu cancelamento, se for o caso
$sale = (new CieloEcommerce($merchant, $environment))->cancelSale($paymentId, 15700);
} catch (CieloRequestException $e) {
// Em caso de erros de integração, podemos tratar o erro aqui.
// os códigos de erro estão todos disponíveis no manual de integração.
$error = $e->getCieloError();
}
1
Author: Guilherme Nascimento, 2017-07-17
1 answers
Solved: it is necessary to append the class at the top:
use Cielo\API30\Ecommerce\RecurrentPayment;
And instantiate the variable $recurrent
:
$recurrent = new RecurrentPayment();
$recurrent = $recurrent->setInterval(RecurrentPayment::INTERVAL_MONTHLY)->setAuthorizeNow(true);
1
Author: marcelo2605, 2017-07-18 16:21:20