2017 © Pedro PelĆ”ez
 

library bcash-php-sdk

Fork of bcash/bcash-php-sdk

image

devsdmf/bcash-php-sdk

Fork of bcash/bcash-php-sdk

  • Tuesday, November 29, 2016
  • by devsdmf
  • Repository
  • 1 Watchers
  • 0 Stars
  • 22 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 9 Forks
  • 0 Open issues
  • 9 Versions
  • 0 % Grown

The README.md

Bcash PHP SDK

Total Downloads GitHub tag, (*1)

Requisitos

  • PHP >= 5.3
  • extensƵes: cURL e JSON.

Instalando utilizando o composer

Adicione a dependencia do sdk no seu arquivo de configuração do composer. Por exemplo:, (*2)

{
    "config": {
        "vendor-dir": "lib"
    },
    "require": {
        "bcash/bcash-php-sdk": "dev-develop"
    }
}

Exemplo de criação de transação

<?php

require_once '../lib/bcash-php-sdk/autoloader.php';

use Bcash\Domain\Address;
use Bcash\Domain\Customer;
use Bcash\Domain\StateEnum;
use Bcash\Domain\PaymentMethod;
use Bcash\Domain\PaymentMethodEnum;
use Bcash\Domain\Product;
use Bcash\Domain\TransactionRequest;
use Bcash\Domain\ShippingTypeEnum;
use Bcash\Domain\CurrencyEnum;
use Bcash\Service\Payment;
use Bcash\Exception\ConnectionException;
use Bcash\Exception\ValidationException;

function createAddress()
{
    $address = new Address();
    $address->setAddress("Av. Tiradentes");
    $address->setNumber("123");
    $address->setComplement("Ap. 203");
    $address->setNeighborhood("Centro");
    $address->setCity("SĆ£o Paulo");
    $address->setState(StateEnum::SAO_PAULO);
    $address->setZipCode("01306000");
    return $address;
}

function createBuyer()
{
    $buyer = new Customer();
    $buyer->setMail("comprador@comprador.com");
    $buyer->setName("Comprador Teste");
    $buyer->setCpf("850-822-365-04");
    $buyer->setPhone("34-3311-9999");
    $buyer->setAddress(createAddress());
    return $buyer;
}

function createProduct()
{
    //Product 1
    $product1 = new Product();
    $product1->setCode(1);
    $product1->setDescription("Produto de teste 1");
    $product1->setAmount(2);
    $product1->setValue(5.5);
    //Product 2
    $product2 = new Product();
    $product2->setCode(2);
    $product2->setDescription("Produto de teste 2");
    $product2->setAmount(1);
    $product2->setValue(9);
    //Product Array
    $products = array($product1, $product2);
    return $products;
}

function createTransactionRequest()
{
    $transactionRequest = new TransactionRequest();
    $transactionRequest->setSellerMail("lojamodelo@pagamentodigital.com.br");
    $transactionRequest->setOrderId("123456");
    $transactionRequest->setBuyer(createBuyer());
    $transactionRequest->setShipping(10.95);
    $transactionRequest->setShippingType(ShippingTypeEnum::E_SEDEX);
    $transactionRequest->setDiscount(1.20);
    $transactionRequest->setAddition(3);
    $transactionRequest->setPaymentMethod(PaymentMethodEnum::BANK_SLIP);
    $transactionRequest->setUrlReturn("https://www.bcash.com.br/loja/retorno.php");
    $transactionRequest->setUrlNotification("https://www.bcash.com.br/loja/aviso.php");
    $transactionRequest->setProducts(createProduct());
    $transactionRequest->setAcceptedContract("S");
    $transactionRequest->setViewedContract("S");

    return $transactionRequest;
}

$transactionRequest = createTransactionRequest();

$payment = new Payment("SUA CONSUMER KEY");

try {
    $response = $payment->create($transactionRequest);
    echo "

";
    var_dump($response);
    echo "
"; } catch (ValidationException $e) { echo "ErroTeste: " . $e->getMessage() . "\n"; echo "
";
    var_dump($e->getErrors());
    echo "
"; } catch (ConnectionException $e) { echo "ErroTeste: " . $e->getMessage() . "\n"; echo "
";
    var_dump($e->getErrors());
    echo "
"; }

Cartão de crédito

use Bcash\Domain\Credicard;

/* ... */

function createCreditCard()
{
    $creditCard = new CreditCard();
    $creditCard->setHolder("Pedro D. F. Silva");
    $creditCard->setNumber("4111111111111111");
    $creditCard->setSecurityCode("123");
    $creditCard->setMaturityMonth("01");
    $creditCard->setMaturityYear("2019");
    return $creditCard;
}

$transactionRequest->setPaymentMethod(PaymentMethodEnum::VISA);
$transactionRequest->setCreditCard(createCreditCard());

Adicionando transaƧƵes dependentes (Comissionamento)


/* ... */ function createDependentTransactions() { $dep1 = new DependentTransaction(); $dep1->setEmail("dep1@email.com"); $dep1->setValue("1.00"); $dep2 = new DependentTransaction(); $dep2->setEmail("dep2@email.com"); $dep2->setValue("1.95"); $deps = array($dep1, $dep2); return $deps; } /* ... */ $transactionRequest->setDependentTransactions(createDependentTransactions());

Consulta de conta

require_once '../lib/bcash-php-sdk/autoloader.php';

use Bcash\Service\Account;
use Bcash\Exception\ValidationException;
use Bcash\Exception\ConnectionException;

$email = "email@loja.com.br";
$token = "SEU TOKEN";

$account = new Account($email, $token);

try {
    $cpf = '00201208008';
    $response = $account->searchBy($cpf);
    echo "

";
    var_dump($response);
    echo "
"; } catch (ValidationException $e) { echo "ErroTeste: " . $e->getMessage() . "\n"; echo "
";
    var_dump($e->getErrors());
    echo "
"; } catch (ConnectionException $e) { echo "ErroTeste: " . $e->getMessage() . "\n"; echo "
";
    var_dump($e->getErrors());
    echo "
"; }

Consulta de parcelamento

require_once '../lib/bcash-php-sdk/autoloader.php';

use Bcash\Service\Installments;
use Bcash\Exception\ValidationException;
use Bcash\Exception\ConnectionException;

$email = "email@loja.com.br";
$token = "SEU TOKEN";

$installments = new Installments($email, $token);

try {
    $amount = 100.00; //Valor para cƔlculo
    $maxInstallments = 2; //Quantidade mƔxima de parcelas
    $ignoreScheduledDiscount = false; //Ignorar descontos programados
    $response = $installments->calculate($amount, $maxInstallments, $ignoreScheduledDiscount);

    echo "<pre>";
    var_dump($response);
    echo "</pre>";

} catch (ValidationException $e) {
    echo "ErroTeste: " . $e->getMessage() . "\n";
    echo "

";
    var_dump($e->getErrors());
    echo "
"; } catch (ConnectionException $e) { echo "ErroTeste: " . $e->getMessage() . "\n"; echo "
";
    var_dump($e->getErrors());
    echo "
"; }

Cancelamento de transação

require_once '../lib/bcash-php-sdk/autoloader.php';

use Bcash\Service\Cancellation;
use Bcash\Exception\ValidationException;
use Bcash\Exception\ConnectionException;

$email = "email@loja.com.br";
$token = "SEU TOKEN";

$cancellation = new Cancellation($email, $token);

try {
    $transactionId = 186148; // Id da transacao bcash a ser cancelada
    $response = $cancellation->execute($transactionId);
    echo "

";
    var_dump($response);
    echo "
"; } catch (ValidationException $e) { echo "ErroTeste: " . $e->getMessage() . "\n"; echo "
";
    var_dump($e->getErrors());
    echo "
"; } catch (ConnectionException $e) { echo "ErroTeste: " . $e->getMessage() . "\n"; echo "
";
    var_dump($e->getErrors());
    echo "
"; }

=======, (*3)

Consulta de transação

require_once '../lib/bcash-php-sdk/autoloader.php';

use Bcash\Service\Consultation;
use Bcash\Exception\ValidationException;
use Bcash\Exception\ConnectionException;

$email = "email@loja.com.br";
$token = "SEU TOKEN";

$consultation = new Consultation($email, $token);

try {
    //Consulta pelo id da transação
    $transactionId = 999999; // id bcash da transacao a ser consultada
    $response = $consultation->searchByTransaction($transactionId);
    //OU
    //Consulta pelo id do pedido
    $orderId = "my-store-123456"; // id da sua loja enviado na criação da transação
    $response = $consultation->searchByOrder($orderid);

    echo "<pre>";
    var_dump($response);
    echo "</pre>";

} catch (ValidationException $e) {
    echo "ErroTeste: " . $e->getMessage() . "\n";
    echo "

";
    var_dump($e->getErrors());
    echo "
"; } catch (ConnectionException $e) { echo "ErroTeste: " . $e->getMessage() . "\n"; echo "
";
    var_dump($e->getErrors());
    echo "
"; }

Notificação (Atualizando status da transação na sua loja)

O Bcash realizarÔ as notificações na URL informada durante a criação da transação:, (*4)

$transactionRequest->setUrlNotification("https://www.minhaloja.com.br/notification.php");

O seguinte exemplo demonstra como deve ser realizado o recebimento da notificação de alteração de status na url informada., (*5)

require_once '../lib/bcash-php-sdk/autoloader.php';

use Bcash\Service\Notification;
use Bcash\Domain\NotificationContent;
use Bcash\Domain\NotificationStatusEnum;
use Bcash\Exception\ValidationException;
use Bcash\Exception\ConnectionException;

/* Dados do post enviado pelo Bcash */
$transactionId = $_POST['transacao_id'];
$orderId = $_POST['pedido'];
$statusId = $_POST['status_id'];
$status = $_POST['status'];

$notificationContent = new NotificationContent($transactionId, $orderId, $statusId);

$email = "email@loja.com.br";
$token = "SEU TOKEN";

$notification = new Notification($email, $token, $notificationContent);

try {
    /* valor dos produtos + frete + acrecimo - desconto */
    $transactionValue = 273.20;
    $result = $notification->verify($transactionValue);

} catch (ValidationException $e) {
    $log->write("ErroTeste: " . $e->getMessage());
    $log->write($e->getErrors());

} catch (ConnectionException $e) {
    $log->write("ErroTeste: " . $e->getMessage());
    $log->write($e->getErrors());
}

if ($result == true) {
    $log->write('Notificação legitima');

    //ATUALIZAR STATUS NA LOJA
    if ($statusId == NotificationStatusEnum::APPROVED) {
       // Liberar transação
    } else if ($statusId == NotificationStatusEnum::CANCELLED) {
      // Cancelar transação
    }

    /* Verificar outros status na classe Bcash\Domain\NotificationStatusEnum */

} else {
    $log->write('Notificação ilegitima');
}

Simulando a notificação

require_once '../lib/bcash-php-sdk/autoloader.php';

use Bcash\Test\NotificationSimulator;
use Bcash\Exception\ConnectionException;

$notificationUrl = "https://hostofstore.com/address/alert";
$transactionId = 987654321;  // id transacao do bcash
$orderId = "my-store-1234"; // id pedido da sua loja
$statusId = 3; // Aprovada

try {
    $result = NotificationSimulator::test ($notificationUrl, $transactionId, $orderId, $statusId);

    echo "<pre>";
    var_dump($result);
    echo "</pre>";

} catch (ConnectionException $e) {
    echo "ErroTeste: " . $e->getMessage() . "\n";
    echo "

";
    var_dump($e->getErrors());
    echo "
"; }

Usando o ambiente de testes


/* ... */ $payment->enableSandBox(true); $account->enableSandBox(true); $installments->enableSandBox(true); $cancellation->enableSandBox(true); $consultation->enableSandBox(true); $notification->enableSandBox(true); /* ... */

The Versions

29/11 2016

dev-master

9999999-dev

Fork of bcash/bcash-php-sdk

  Sources   Download

The Requires

  • php >=5.3.0

 

29/11 2016

1.1.6

1.1.6.0

Fork of bcash/bcash-php-sdk

  Sources   Download

The Requires

  • php >=5.3.0

 

29/11 2016

dev-develop

dev-develop

Fork of bcash/bcash-php-sdk

  Sources   Download

The Requires

  • php >=5.3.0

 

29/11 2016

1.1.5

1.1.5.0

Fork of bcash/bcash-php-sdk

  Sources   Download

The Requires

  • php >=5.3.0

 

26/08 2016

1.1.4

1.1.4.0

Integration to API Bcash/PayU

  Sources   Download

The Requires

  • php >=5.3.0

 

23/02 2016

1.1.3

1.1.3.0

Integration to API Bcash/PayU

  Sources   Download

The Requires

  • php >=5.3.0

 

18/11 2015

1.0.0

1.0.0.0

Integration to API Bcash/PayU

  Sources   Download

The Requires

  • php >=5.3.0

 

08/10 2015

dev-release/1.1.0

dev-release/1.1.0

Integration to API Bcash/PayU

  Sources   Download

The Requires

  • php >=5.3.0

 

08/10 2015

1.1.0

1.1.0.0

Integration to API Bcash/PayU

  Sources   Download

The Requires

  • php >=5.3.0