Skip to content

tmazza/wirecard-assinaturas-sdk-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sobre

SDK PHP para facilitar o uso da API de Assinaturas da Wirecard.

Uso

Exemplo

<?php
use tmazza\WirecardSubscriptions\WirecardApi;

$wirecardApi = new WirecardApi();


# Lista de planos
$plans = $wirecardApi->plans->all();

foreach($plans as $plan) {
    // $plan->code
}

# Criação de usuário
$wirecardApi->customers->create([ ... ]); 

# Criação de assinatura
$wirecardApi->subscriptions->create([ ... ]); 

# Consulta de assinatura
$wirecardApi->subscriptions->get('code');

Instalação

composer require tmazza/wirecard-assinaturas-sdk-php

Credenciais

Defina as variáveis de ambiente WIRECARD_SUBSCRIPTIONS_ENV, WIRECARD_SUBSCRIPTIONS_TOKEN e WIRECARD_SUBSCRIPTIONS_KEY, para especificar, respectivamente o ambiente o token e a chave da integração da Wirecard. O ambiente default utilizado será o de sandbox.

Alternativamente o ambiente e as credenciais podem ser definidas na criação da classe da API, passando os parâmetros conforme: new WirecardApi('sandbox', 'token', 'key'). Esses parâmetros terão precedência sob as variáveis de ambiente.


API

Todos os recursos possuem os métodos get(), all(), create() e update() além de métodos específicos configurando cada um dos parâmetros disponíveis na API.

Tratamento de erros

try {
  
  $wirecardApi = new WirecardApi();
  $wirecardApi->plans->create(['...']);

} catch (ValidationException $e) {

  // status 400 - reporte de erro da API Wirecard
  $e->errors(); 
  $e->alerts();
  $e->firstError();
  $e->firstAlert();

} catch (GuzzleHttp\Exception\ClientException $e) {
  
  // status 401 a 499  

} catch (GuzzleHttp\Exception\ServerException $e) {
  
  // status 500 a 599
  
} 

Recursos

ASSINATURAS

PAGAMENTOS

  • Faturas

    • Listar Todas as Faturas de Uma Assinatura
    • Consultar Detalhes de Uma Fatura
  • Pagamentos

    • Listar Todos os Pagamentos de Uma Fatura
    • Consultar Detalhes de Um Pagamento da Assinatura
  • Cupons

    • Criar Cupom
    • Associar um Cupom a Assinatura Existente
    • Associar um Cupom a uma Nova Assinatura
    • Consultar Cupom
    • Listar Todos os Cupons
    • Ativar e Inativar Cupons
    • delete Excluir Cupom de uma Assinatura
  • Retentativas

    • Retentativa de pagamento de uma fatura
    • Gerar um novo boleto para uma fatura
    • Criar Regras de Retentativas Automáticas

NOTIFICAÇÕES

  • Preferências de notificação
    • Criar Preferência de Notificação (webhook)

Planos

Criar plano

<?php
$plan = $wirecardApi->plans->create([
  "code" => "plan101",
  "name" => "Plano Especial",
  "description" => "Descrição",
  "amount" => 990,
  "setup_fee" => 500,
  "max_qty" => 1,
  "interval" => [
    "length" => 1,
    "unit" => "MONTH"
  ],
  "billing_cycles" => 12,
  "trial" => [
    "days" => 30,
    "enabled" => true,
    "hold_setup_fee" => true
  ],
  "payment_method" => "CREDIT_CARD"
]);

echo $plan->name; // Plano Especial

Listar Planos

<?php
$plans = $wirecardApi->plans->all();

foreach($plans as $plan) {
    echo $plan->name; // Plano Especial
}

Consultar Plano

<?php
$plan = $wirecardApi->plans->get('plan101');
echo $plan->name; // Plano Especial

Ativar Plano

<?php
$plan = $wirecardApi->plans->activate('plan101');
echo $plan->status; // ACTIVE

Desativar Plano

<?php
$plan = $wirecardApi->plans->inactivate('plan101');
echo $plan->status; // INACTIVE

Alterar Plano

<?php
$plan = $wirecardApi->plans->update([
    'name' => 'Plano Especial Atualizado',
]);
echo $plan->name; // Plano Especial Atualizado

Assinantes

Criar Assinante

<?php

// Criar assinante
$customer = $wirecardApi->customers->create([
  "code" => "cliente01",
  "email" => "[email protected]",
  "fullname" => "Nome Sobrenome",
  "cpf" => "22222222222",
  "phone_area_code" => "11",
  "phone_number" => "934343434",
  "birthdate_day" => "26",
  "birthdate_month" => "04",
  "birthdate_year" => "1980",
  "address" => [
    "street" => "Rua Nome da Rua",
    "number" => "100",
    "complement" => "Casa",
    "district" => "Nome do Bairro",
    "city" => "São Paulo",
    "state" => "SP",
    "country" => "BRA",
    "zipcode" => "05015010"
  ]
]);

// Cadastrar o cartão do assinante
$wirecardApi->customers->setCard(
    $customer->code,
    [
      "holder_name" => "Nome Completo",
      "number" => "4111111111111111",
      "expiration_month" => "06",
      "expiration_year" => "22"
    ]
);

// new_vault pode ser habilitado enableNewVault()
$customer = $wirecardApi->customers
    ->enableNewVault()
    ->create([/*...*/])

// customer e billing_info criados juntos
$customer = $wirecardApi->customers->create([
  "code" => "cliente02",
  "email" => "[email protected]",
  "fullname" => "Nome Sobrenome",
  "cpf" => "22222222222",
  "phone_area_code" => "11",
  "phone_number" => "934343434",
  "birthdate_day" => "26",
  "birthdate_month" => "04",
  "birthdate_year" => "1980",
  "address" => [
    "street" => "Rua Nome da Rua",
    "number" => "100",
    "complement" => "Casa",
    "district" => "Nome do Bairro",
    "city" => "São Paulo",
    "state" => "SP",
    "country" => "BRA",
    "zipcode" => "05015010"
  ],
  "billing_info" => [
    "credit_card" => [
      "holder_name" => "Nome Completo",
      "number" => "4111111111111111",
      "expiration_month" => "06",
      "expiration_year" => "22"
    ]
  ]
]);

echo $customer->code; // cliente02

Listar Assinantes

<?php
$customers = $wirecardApi->customers->all();

foreach($customers as $customer) {
  echo $customer->code; // cliente01
}

Consultar Assinante

<?php
$customer = $wirecardApi->customers->get('client01');
echo $customer->email; // [email protected]

Alterar Assinante

<?php
$customer = $wirecardApi->customers->update([
  'name' => 'Novo nome',
]);
echo $customer->name; // Novo nome 

Atualizar Cartão do Assinante

<?php
$customer = $wirecardApi->customers->setCard([
  'holder_name' => 'Nome Completo',
  'number' => '4222222222222222',
  'expiration_month' => '06',
  'expiration_year' => '22'
]);
echo $customer->billing_info->credit_card->number; // 4222222222222222

Assinaturas

Criar Assinaturas

<?php
$subscription = $wirecardApi->subscriptions->create([
  'code' => 'assinatura01',
  'amount' => '9990',
  'payment_method' => 'CREDIT_CARD',
  'plan'  => [
    'code'  => 'plano01'
  ],
  'customer'  => [
   'code'  => 'cliente01'
  ]
]);
echo $subscription->code; // assinatura01

Parâmetro enableNewUser() disponível caso customer seja informado junto com a criação da assinatura.

<?php
$subscription = $wirecardApi->subscriptions->enableNewUser()->create([
  'code' => 'assinatura01',
  'amount' => '9990',
  'payment_method' => 'CREDIT_CARD',
  'plan'  => [
    'code'  => 'plano01'
  ],
  'customer'  => [
   'code'  => 'novoCLiente'
   // Informações de customer
  ]
]);
echo $subscription->code; // assinatura01

Listar Todas Assinaturas

<?php
$subscriptions = $wirecardApi->subscriptions->all();

foreach($subscriptions as $subscription) {
  echo $subscription->code; // assinatura01
}

Consultar Detalhes de Uma Assinatura

<?php
$subscription = $wirecardApi->subscriptions->get('assinatura01');
echo $subscription->amount; // 9990

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages