API Reference – Vinti4Net PHP SDK¶
Este documento descreve a API do SDK PHP para integração com o sistema de pagamentos Vinti4/SISP (Cabo Verde).
1️⃣ Classe Vinti4Net¶
Descrição: Facade principal do SDK que unifica operações de pagamentos e reembolsos, simplificando o envio de transações ao SISP.
use Erilshk\Sisp\Vinti4Net;
$vinti = new Vinti4Net($posID, $posAuthCode, $endpoint);
Métodos principais¶
| Método | Parâmetros | Retorno | Descrição | ||
|---|---|---|---|---|---|
setRequestParams(array $params) |
merchantRef, merchantSession, languageMessages, entityCode, referenceNumber, billing, currency, acctID, acctInfo, addrMatch, billAddrCountry, billAddrCity, billAddrLine1, billAddrPostCode, email, clearingPeriod |
self |
Configura parâmetros opcionais para a próxima transação. | ||
setMerchant(string $reference, ?string $session = null) |
Referência do merchant e sessão | self |
Define referência e sessão do merchant. | ||
preparePurchase(float | string $amount, array | Billing $billing, string $currency = 'CVE') |
Valor, dados de faturação, moeda | self |
Prepara pagamento de compra 3DS. | ||
prepareServicePayment(float | string $amount, int $entity, string $number) |
Valor, entidade, referência | self |
Prepara pagamento de serviço. | ||
prepareRecharge(float | string $amount, int $entity, string $number) |
Valor, entidade, número | self |
Prepara pagamento de recarga. | ||
prepareRefund(float | string $amount, string $transactionID, string $clearingPeriod) |
Valor, ID da transação, clearing period | self |
Prepara um reembolso. | ||
createPaymentForm(string $responseUrl, string $lang = 'pt') |
URL de retorno, idioma | string |
Gera formulário HTML auto-submissão. | ||
processResponse(array $postData) |
Dados recebidos do SISP | Vinti4Response |
Processa a resposta do Payment ou Refund. | ||
getRequest(): array |
— | array |
Retorna os dados preparados da requisição (debug). |
Exemplo de uso – Compra 3DS¶
$billing = \Erilshk\Sisp\Billing::create([
'email' => 'cliente@exemplo.com',
'country' => '132',
'city' => 'Praia',
'address' => 'Av. Cidade da Praia, 45',
'postalCode' => '7600'
]);
$vinti->setMerchant('REF12345')
->preparePurchase(100.50, $billing)
->createPaymentForm('https://meusite.com/retorno');
2️⃣ Classe Billing¶
Descrição: Representa informações de faturação para compras 3DS, incluindo endereço, contatos e informações de conta do cliente.
use Erilshk\Sisp\Billing;
// Criar billing de forma fluente
$billing = Billing::make()
->email('cliente@exemplo.com')
->country('132')
->city('Praia')
->address('Av. Cidade da Praia, 45')
->postalCode('7600')
->mobilePhone('238', '99123456')
->acctID('12345');
Métodos¶
| Método | Descrição |
|---|---|
make() |
Cria instância vazia para fluent setter. |
create(array $data) |
Cria array pronto para requisição a partir de dados do cliente. |
fill(array $data) |
Preenche dados existentes no objeto Billing. |
toArray() |
Retorna array pronto para envio. |
3️⃣ Classe Vinti4Response¶
Descrição: Normaliza a resposta do SISP, expondo status, mensagem amigável, dados, DCC, debug e detalhes adicionais.
use Erilshk\Sisp\Vinti4Response;
/** Exemplo de processamento */
$response = $vinti->processResponse($_POST);
if ($response->isSuccess()) {
echo "Transação aprovada: " . $response->getAmount() . " " . $response->getCurrency();
} elseif ($response->isCancelled()) {
echo "Cancelada pelo usuário.";
} elseif ($response->hasInvalidFingerprint()) {
echo "Fingerprint inválido!";
} else {
echo "Erro: " . $response->GetAdditionalErrorMessage();
}
Propriedades¶
| Propriedade | Tipo | Descrição |
|---|---|---|
status |
string | Status: SUCCESS, ERROR, CANCELLED, INVALID_FINGERPRINT. |
message |
string | Mensagem amigável do status. |
success |
bool | true se a transação foi bem-sucedida. |
data |
array | Dados brutos do SISP. |
dcc |
array | Informações de DCC (enabled, amount, currency, markup, rate). |
debug |
array | Informações de depuração (para fingerprint inválido). |
detail |
?string | Detalhes adicionais de erro. |
DCC (Dynamic Currency Conversion)¶
- Aplicável somente em compra 3DS.
- Estrutura:
[
'enabled' => true|false,
'amount' => 100.50,
'currency' => 'USD',
'markup' => 5,
'rate' => 1.2,
'error' => null
]
Para mais exemplos e detalhes de cada parâmetro, consulte Billing e respostas.