fxcosta / braspag-php-sdk

与 Braspag 支付 API 集成用的 SDK

1.10.1 2019-11-14 18:48 UTC

This package is auto-updated.

Last update: 2024-09-15 05:34:18 UTC


README

与 Braspag API 集成用的 SDK。

GitHub release PHP from Packagist Coding Standards Packagist Travis (.org) branch GitHub code size in bytes

资源

此 SDK 包含了支付分摊(Marketplace)模型和直接支付。

测试过的资源

注释

如果需要任何类型的用户重定向,开发人员应使用 SDK 生成支付,并使用 Braspag 返回的链接提供用户重定向。

一些功能尚未测试,因此尚未在 资源 中标记。

想要帮忙吗?创建一个分支并发送带有测试和成功构建的 pull request。

依赖关系

  • PHP >= 7.1

安装 SDK

如果尚未安装 Composer,请遵循 getcomposer.org 上的说明。

如果已经有一个 composer.json 文件,只需在终端中直接运行

composer require "logicssoftware/braspag-php-sdk"

使用示例

卡片令牌化

如果不想保存卡片的敏感数据,并避免实现 PCI 合规性,您可以生成一个用于后续交易的卡片令牌。

<?php
require 'vendor/autoload.php';

use Braspag\API\Braspag;
use Braspag\API\CreditCard;
use Braspag\API\Environment;
use Braspag\Authenticator;

// Cria uma instância do cartão para enviar à Cielo
$card = new CreditCard();
$card->setCustomerName('John Rambo');
$card->setCardNumber('0000000000000001');
$card->setHolder('John Rambo');
$card->setExpirationDate('09/2020');
$card->setBrand('Master');

// Configure os tokens de autenticação (adquiridos junto à Braspag)
$auth = new Authenticator('CLIENT_SECRET', 'MERCHANT_ID', 'MERCHANT_KEY');

// Solicita a tokenização do card
$card = Braspag::shared($auth, Environment::sandbox())->tokenizeCard($card);

// Get the card token
$cardToken = $card->getCardToken();

支付分摊 - (Marketplace)

如果想执行分摊交易的支付

<?php
require 'vendor/autoload.php';

use Braspag\API\Braspag;
use Braspag\API\Cart;
use Braspag\API\CreditCard;
use Braspag\API\Customer;
use Braspag\API\Environment;
use Braspag\API\FraudAnalysis;
use Braspag\API\Product;
use Braspag\API\Sale;
use Braspag\API\SplitPayment;
use Braspag\Authenticator;
use Braspag\API\Payment;

$auth = new Authenticator('CLIENT_SECRET', 'MERCHANT_ID', 'MERCHANT_KEY');
$auth->authenticate(Environment::sandbox());

// Crie uma instância de Sale informando o ID do pedido na loja
$sale = new Sale('123');

// Crie uma instância de Customer informando os dados do cliente
$customer = (new Customer('Teste Accept'))
    ->setEmail('teste@teste.com.br')
    ->setIdentity('11111111111')
    ->setIdentityType('CPF')
;

$sale->setCustomer($customer);

// Define os Produtos
$products[] = (new Product())
    ->setName('Produto Teste')
    ->setSku('123')
    ->setQuantity(1)
    ->setUnitPrice(15700)
;

$cart = new Cart($products);

/**
 * Informa os dados para análise anti-fraude (obrigatório non caso de Marketplace): 
 * fingerPrintId, valor, Cart e MerchantDefinedFields - esse último precisa ter ao menos o item 1 e 4 da tabela:
 * @see https://braspag.github.io//manual/antifraude#tabela-31-merchantdefineddata-(cybersource)
 */
$fraudAnalysis = new FraudAnalysis(
    "123456654322",
    15700,
    $cart,
    ['1' => 'Guest', '4' => 'Web']
);

// Defina as regras de split dos subordinados
$splitPayments = [
    new SplitPayment('SUBORDINATE_MERCHANT_ID', 15700, 3, 10)
];

// Crie uma instância de Payment informando o valor do pagamento sem separador de decimais
$payment = $sale->payment(15700, 1, $splitPayments);

// Informa os dados de análise de fraude
$payment->setFraudAnalysis($fraudAnalysis);

// Você pode definir a captura automatica, ou fazê-la depois
$payment->setCapture(true);

// Crie uma instância de Credit Card utilizando os dados de teste
// esses dados estão disponíveis no manual de integração
$payment->creditCard("123", CreditCard::VISA)
    ->setExpirationDate("12/2019")
    ->setCardNumber("0000000000000001")
    ->setHolder("Teste Accept")
;

// Configure o SDK com seu merchant e o ambiente apropriado para criar a venda
$braspag = Braspag::shared($auth, Environment::sandbox());

$sale = $braspag->createSale($sale);

// Com a venda criada na Braspag, já temos o ID do pagamento, TID e demais
// dados retornados pela Braspag
$payment = $sale->getPayment();

// Com o Payment você pode verificar o status 
if ($payment->getStatus() == Payment::STATUS_AUTHORIZED) {
    // Usar o Payment ID, TID, etc
    $paymentId = $payment->getPaymentId();
}

支付查询

如果想查找一笔销售以获取 Braspag 上的直接支付数据

<?php
require 'vendor/autoload.php';

use Braspag\API\Braspag;
use Braspag\API\Environment;
use Braspag\Authenticator;

// Configure os tokens de autenticação (adquiridos junto à Braspag)
$auth = new Authenticator('CLIENT_SECRET', 'MERCHANT_ID', 'MERCHANT_KEY');

// Consulta a venda informando o PaymentId
$sale = Braspag::shared($auth, Environment::sandbox())->getSale(123304883);
$payment = $sale->getPayment();

取消支付

如果想取消一笔支付的全部金额

<?php
require 'vendor/autoload.php';

use Braspag\API\Braspag;
use Braspag\API\Payment;
use Braspag\API\Environment;
use Braspag\Authenticator;

// Configure os tokens de autenticação (adquiridos junto à Braspag)
$auth = new Authenticator('CLIENT_SECRET', 'MERCHANT_ID', 'MERCHANT_KEY');

// Solicita o cancelamento do pagamento informando o PaymentId
$payment = Braspag::shared($auth, Environment::sandbox())->cancelSale(123304883);

// Verifica se tudo ocorreu bem
$success = $payment->getStatus() == Payment::STATUS_VOIDED;

支持的产品和标志及其常量

手册

有关 Braspag API 集成的更多信息,请参阅以下手册: 支付分摊 | 支付者

Cielo SDK 启发。