edson-nascimento / getnet-php

SDK php para integração com a API Getnet
https://developers.getnet.com.br/api
Apache License 2.0
18 stars 15 forks source link

Não funciona com o Slim-Framework .. #15

Closed dlhenke closed 6 months ago

dlhenke commented 10 months ago

Describe the bug Não funciona com o Slim-Framework

To Reproduce Steps to reproduce the behavior: Instale o slim-framework tanto faz o 3.0 quanto o 4.0

composer create-project slim/slim-skeleton meu-rest-service "~3.0" cd meu-rest-service composer require edson-nascimento/getnet-php

em src/routes.php
adicione um metodo get // Routes use Getnet\API\Getnet; use Getnet\API\Transaction; use Getnet\API\Environment; use Getnet\API\Token; use Getnet\API\Credit; use Getnet\API\Customer; use Getnet\API\Card; use Getnet\API\Order;

use Getnet\API\Boleto; $app->get('/cartao',function($request,$res,$args){ //return $response->withJson($this->get('GetNet')['sandbox']); $gnet = (object)$this->get('GetNet')['sandbox']; $client_id = $gnet->client_id; $client_secret = $gnet->client_secret; $seller_id = $gnet->seller_id; $environment = Environment::sandbox(); $keySession = null;

//Autenticação da API $getnet = new Getnet($client_id, $client_secret, $environment, $keySession); //$getnet->setDebug(true);

// Inicia uma transação $transaction = new Transaction();

// Dados do pedido - Transação $transaction->setSellerId($seller_id); $transaction->setCurrency("BRL"); $transaction->setAmount(27.50);

// Detalhes do Pedido $transaction->order("123456") ->setProductType(Order::PRODUCT_TYPE_SERVICE) ->setSalesTax(0);

// Gera token do cartão $tokenCard = new Token("5155901222280001", "customer_210818263", $getnet);

// Ou para usar um cartão já tokenizado que está salvo // $tokenCard = new \Getnet\API\Entity\CardToken('Pass your card token');

// Dados do método de pagamento do comprador $transaction->credit() ->setAuthenticated(false) ->setDynamicMcc("1799") ->setSoftDescriptor("LOJATESTECOMPRA-123") ->setDelayed(false) ->setPreAuthorization(false) ->setNumberInstallments(2) ->setSaveCardData(false) ->setTransactionType(Credit::TRANSACTION_TYPE_INSTALL_NO_INTEREST) ->card($tokenCard) ->setBrand(Card::BRAND_MASTERCARD) ->setExpirationMonth("12") ->setExpirationYear("30") ->setCardholderName("Jax Teller") ->setSecurityCode("123");

// Dados pessoais do comprador $transaction->customer("customer_210818263") ->setDocumentType(Customer::DOCUMENT_TYPE_CPF) ->setEmail("customer@email.com.br") ->setFirstName("Jax") ->setLastName("Teller") ->setName("Jax Teller") ->setPhoneNumber("5551999887766") ->setDocumentNumber("12345678912") ->billingAddress() ->setCity("São Paulo") ->setComplement("Sons of Anarchy") ->setCountry("Brasil") ->setDistrict("Centro") ->setNumber("1000") ->setPostalCode("90230060") ->setState("SP") ->setStreet("Av. Brasil");

// Dados de entrega do pedido $transaction->shipping() ->setFirstName("Jax") ->setEmail("customer@email.com.br") ->setName("Jax Teller") ->setPhoneNumber("5551999887766") ->setShippingAmount(0) ->address() ->setCity("Porto Alegre") ->setComplement("Sons of Anarchy") ->setCountry("Brasil") ->setDistrict("São Geraldo") ->setNumber("1000") ->setPostalCode("90230060") ->setState("RS") ->setStreet("Av. Brasil");

//Ou pode adicionar entrega com os mesmos dados do customer //$transaction->addShippingByCustomer($transaction->getCustomer())->setShippingAmount(0);

// FingerPrint - Antifraude $transaction->device("device_id")->setIpAddress("127.0.0.1"); //return $res->withJson($transaction); // Processa a Transação $response = $getnet->authorize($transaction);

// Resultado da transação - Consultar tabela abaixo $response->getStatus(); return $res->withJson($response->getStatus()); }); Não vai funcionar.. pois há conflito com o método Request do Slim-framework. Para corrigir altere a classe da getnet-php para RequestGetNet e pa bum funfa.

edson-nascimento commented 8 months ago

Não existe problema em ter classes com o mesmo nome Ex Request desde que estejam em namespaces diferentes. Provavelmente o seu problema deve ser alguma configuração no Slim