Open 11JoseMarcos11 opened 3 years ago
Bom dia Josá Marcos, Tudo bem e contigo?
Essa biblioteca segue o padrão do manual citado acima. É uma biblioteca que fiz para um produto interno, por isso ainda não tem documentação. Está funcionando, mas continua em versão Beta.
Ela é baseada na developercielo/api-3.0-php, inclusive é requisito utilizar a mesma.
Vou te passar abaixo um exemplo de código para fazer uma requisição na API de Split da Braspag:
`<?php
use FelixBraspag\Marketplace\Authentication; use FelixBraspag\Marketplace\Environment as EnvironmentBraspag; use FelixBraspag\Marketplace\SplitPayment\Cielo\Environment as EnvironmentCielo; use FelixBraspag\Marketplace\SplitPayment\Cielo\Sale; use FelixBraspag\Marketplace\SplitPayment\Cielo\Payment; use FelixBraspag\Marketplace\SplitPayment\Cielo\SplitPayment; use FelixBraspag\Marketplace\SplitPayment\Cielo\VoidSplitPayment; use FelixBraspag\Marketplace\SplitPayment\Cielo\Ecommerce; use FelixBraspag\Marketplace\SplitPayment\Cielo\PaymentFraudAnalysis; use FelixBraspag\Marketplace\SplitPayment\Cielo\Request\CieloRequestException; use Cielo\API30\Ecommerce\CreditCard;
$client_id = null; $client_secret = null; // Para o ambiente staging use EnvironmentBraspag::sandbox() $env = EnvironmentBraspag::production();
// Configure seu merchant $merchant = new Authentication( $client_id, $client_secret, $env );
// Parametro consiste no Merchant Order Id $sale = new Sale(12345);
// Dados do cliente, endereço de entrega e endereço de cobrança // Obs.: Quando estiver utilizando o ambiente de homologação acrescenta ACCEPT após o nome do cliente $sale->customer('Sergio Felix ACCEPT') ->setIdentity(123456789) ->setPhone('5571991231234') ->setIdentityType('Cpf') ->setEmail('sergio@example.com') ->setDeliveryAddress([ 'Street' => 'Rua Divino', 'Number' => '123', 'Complement' => '', 'District' => 'Centro', 'ZipCode' => '30000000', 'City' => 'Salvador', 'State' => 'Bahia', 'Country' => 'BR', ]) ->setBillingAddress([ 'Street' => 'Rua Divino', 'Number' => '123', 'Complement' => '', 'District' => 'Centro', 'ZipCode' => '30000000', 'City' => 'Salvador', 'State' => 'Bahia', 'Country' => 'BR', ]);
// Valor do pagamento em centavos. ex.: 120,00 e dados do cartão $payment = $sale->payment(12000) ->setType(Payment::PAYMENTTYPE_SPLITTED_CREDITCARD) ->creditCard(123, 'Visa') ->setExpirationDate(1221) ->setCardNumber(1234123412341234) ->setHolder('Sergio Felix ACCEPT') ->setSaveCard(true);
// Um exemplo de como fazer a divisão de pagamento, pode ser aplicado para vários subordinados, basta repetir o código abaixo alterando o valor e o merchant id do subordinado $subordinate = new SplitPayment(); $subordinate->setSubordinateMerchantId('#SUBORDINATE MERCHANT ID') ->setAmount(10000) ->setFareMdr(0);
$sale->getPayment()->putSplitPayment($subordinate);
$fraudAnalysis = new PaymentFraudAnalysis(); $fraudAnalysis->setProvider('cybersource') ->setShippingAddressee('Sergio Felix') ->setShippingPhone('5571991231234') ->setBrowserFingerPrint('#antifraud browser fingerprint') ->setBrowserIpAddress('#antifraud browser ip') ->putMerchantDefinedFieldsItems(['Id' => 1, 'Value' => '#antifraud username']) ->putMerchantDefinedFieldsItems(['Id' => 4, 'Value' => 'Movel']) ->putMerchantDefinedFieldsItems(['Id' => 9, 'Value' => 'Nao']) ->putMerchantDefinedFieldsItems(['Id' => 37, 'Value' => 'Motoboy']) ->putMerchantDefinedFieldsItems(['Id' => 83, 'Value' => 'Varejo']) ->putMerchantDefinedFieldsItems(['Id' => 84, 'Value' => 'PROPRIA']) ->setCartIsGift(false) ->setCartReturnsAccepted(true);
// Insira os itens do carrinho no antifraude através desse método $fraudAnalysis->putCartItems([ 'Name' => 'Bicicleta 29', 'Sku' => '123123', 'UnitPrice' => 12000, 'Quantity' => 1, ]);
// Aplica a descrica para aparecer no cartao e o antifraude $sale->getPayment() ->setSoftDescriptor("MINHA LOJA Ped. #123") ->setFraudAnalysis($fraudAnalysis);
try {
$splitPayments = $this->sale->getPayment()->getSplitPayments();
$sale = (new Ecommerce($merchant, $env))->createSale($sale);
if($this->sale->getPayment()->getStatus() == 1) {
$sale = (new Ecommerce($merchant, $env))->captureSaleWithSplit($sale->getPayment()->getPaymentId(), $splitPayments);
}
} catch (CieloRequestException $e) { $error = $e->getCieloError();
if ($error) {
print_r($error);
}
} `
Perfeito, Felix. Muito obrigado!
Boa noite, Felix. Tudo bem?
Deixe-me tirar uma dúvida com você. Os valores da compra são passados via post ($_POST) ou pelo JQuery? Perdoe-me a pergunta, pois é a primeira vez que trabalho com a Braspag.
Bom dia José Marcos, Tudo bem e com você?
Eu não entendi ao certo sua pergunta, mas assim, como se trata de uma biblioteca para PHP, se você está usando um formulário deverá submeter(POST) esse formulário com os dados necessários e ao receber os dados deve tratar e inserir na classe da Braspag conforme o exemplo acima. Você pode usar o jQuery para enviar o POST com esses dados.
Me explique seu atual cenário, para eu entender melhor.
Bom dia, Felix.
Certo. Seria isso mesmo. Se os valores podem ser passados via POST ou somente pelo Jquery, onde os valores seriam tratados e posteriormente direcionados para o arquivo PHP.
Muito obrigado mais uma vez.
Bom dia, Felix. Tudo bem?
Nosso cliente usará a Braspag em sua loja virtual. Através de algumas pesquisas, chegamos na sua biblioteca e estamos com uma dúvida. Como fazemos para aplicá-la em nosso projeto? Não encontramos por exemplo, onde fazemos as configurações: Merchant ID, ClientSecret etc. Poderia nos ajudar nessa dúvida? Estamos usando esse manual, seria o mesmo que você usou? https://braspag.github.io/manual/split-de-pagamentos-cielo-e-commerce
Obrigado!