SDK PHP para facilitar o uso da API de Assinaturas da Wirecard.
<?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');
composer require tmazza/wirecard-assinaturas-sdk-php
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.
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.
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
}
-
Planos
-
Assinantes
-
Assinaturas
-
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
- Preferências de notificação
- Criar Preferência de Notificação (webhook)
<?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
<?php
$plans = $wirecardApi->plans->all();
foreach($plans as $plan) {
echo $plan->name; // Plano Especial
}
<?php
$plan = $wirecardApi->plans->get('plan101');
echo $plan->name; // Plano Especial
<?php
$plan = $wirecardApi->plans->activate('plan101');
echo $plan->status; // ACTIVE
<?php
$plan = $wirecardApi->plans->inactivate('plan101');
echo $plan->status; // INACTIVE
<?php
$plan = $wirecardApi->plans->update([
'name' => 'Plano Especial Atualizado',
]);
echo $plan->name; // Plano Especial Atualizado
<?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
<?php
$customers = $wirecardApi->customers->all();
foreach($customers as $customer) {
echo $customer->code; // cliente01
}
<?php
$customer = $wirecardApi->customers->get('client01');
echo $customer->email; // [email protected]
<?php
$customer = $wirecardApi->customers->update([
'name' => 'Novo nome',
]);
echo $customer->name; // Novo nome
<?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
<?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
<?php
$subscriptions = $wirecardApi->subscriptions->all();
foreach($subscriptions as $subscription) {
echo $subscription->code; // assinatura01
}
<?php
$subscription = $wirecardApi->subscriptions->get('assinatura01');
echo $subscription->amount; // 9990