Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
d593074
chore: ignorar docs/implementacoes no controle de versão
ramonsenadev Aug 14, 2026
07d5828
feat(stripe): adicionar gateway Stripe com operações de Customer
ramonsenadev Aug 14, 2026
ee3a43f
feat(stripe): cobrar fatura com cartão token-only
ramonsenadev Aug 15, 2026
2073cd9
feat(stripe): criar, cancelar e acompanhar fatura pix
ramonsenadev Aug 15, 2026
f883149
feat(stripe): estornar e duplicar faturas
ramonsenadev Aug 15, 2026
8834ded
docs(stripe): documentar o gateway Stripe e completar a Facade
ramonsenadev Aug 15, 2026
8f742f4
feat(stripe): rejeitar fatura com Pix Automático até a integração exi…
ramonsenadev Aug 15, 2026
94b8485
fix(stripe): não ler propriedade ausente de StripeObject em fatura pix
ramonsenadev Sep 1, 2026
b33d181
feat(subscription): assinatura recorrente e plano na Iugu
ramonsenadev Sep 1, 2026
4b6dc62
build: sobe o mínimo de PHP para 8.3 e atualiza dependências e CI
ramonsenadev Sep 2, 2026
633753b
fix(status): separa disputa e chargeback de pago e estornado nos dois…
ramonsenadev Sep 2, 2026
da5d013
fix(iugu): traduz intervalo anual para 12 meses na criação e no parse…
ramonsenadev Sep 2, 2026
c9cbdf1
feat(refund): rejeita estorno de boleto e estorno parcial de Pix ante…
ramonsenadev Sep 2, 2026
af993cf
fix(exceptions): separa autenticação de indisponibilidade, classifica…
ramonsenadev Sep 2, 2026
87728af
docs: corrige mensagens de suporte do Stripe, cria alias gatewayOptio…
ramonsenadev Sep 2, 2026
4fa58f6
test: fecha pendências de sandbox da revisão de DX e ativa asserções …
ramonsenadev Sep 2, 2026
104f24e
feat(enums): substitui constantes de status, método de pagamento e in…
ramonsenadev Sep 2, 2026
8dc21a1
feat(capabilities): declara capabilities por driver e unifica operaçã…
ramonsenadev Sep 2, 2026
1fe6bb4
feat(exceptions): completa a hierarquia com CardDeclined, RateLimit, …
ramonsenadev Sep 2, 2026
0a3d863
feat(refund): introduz o model Refund, histórico de estornos na fatur…
ramonsenadev Sep 2, 2026
ecc3cdf
feat(idempotency): expõe chave de idempotência na API pública, envia …
ramonsenadev Sep 2, 2026
2bcf869
feat(stripe): parse de Invoice com origem PaymentIntent ou Invoice co…
ramonsenadev Sep 2, 2026
fb8947a
feat(subscription): introduz SubscriptionStatus com helpers e corrige…
ramonsenadev Sep 2, 2026
62594f3
feat(invoice,subscription): honra paymentMethod na escrita, separa du…
ramonsenadev Sep 2, 2026
d24cf89
docs(subscription): registra que o trial na Iugu nasce sem fatura com…
ramonsenadev Sep 2, 2026
8bfebaf
feat(subscription): nomeia a política de pró-rata, garante linhas na …
ramonsenadev Sep 2, 2026
fb72b44
refactor(exceptions,capabilities): tipa regras locais, isola RefundNo…
ramonsenadev Sep 2, 2026
bf53557
feat(stripe): salva cartão por SetupIntent e expõe requiresAction par…
ramonsenadev Sep 2, 2026
8e1dfe0
feat(stripe): implementa plano e assinatura sobre Product, Price e Su…
ramonsenadev Sep 5, 2026
17b84a0
feat(subscription): cupom com validade e cancelamento ao fim do ciclo…
ramonsenadev Sep 5, 2026
abc1bd6
feat(stripe): implementa boleto em venda avulsa e assinatura
ramonsenadev Sep 5, 2026
33796e4
feat(stripe): implementa Pix Automático via mandate com integração co…
ramonsenadev Sep 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,15 @@ on:

jobs:
phpunit-tests:
name: PHP ${{ matrix.php }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
# Os jobs rodam um de cada vez: a suíte Integration bate na sandbox da Iugu,
# que tem rate limit por conta, e mais de um job em paralelo estouraria esse limite.
max-parallel: 1
matrix:
php: ['8.3', '8.4']
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down Expand Up @@ -40,23 +48,25 @@ jobs:
with:
context: .
load: true
tags: multi-payment:latest
# Define o diretório de cache do composer dentro do build
tags: multi-payment:${{ matrix.php }}
build-args: |
PHP_VERSION=${{ matrix.php }}
COMPOSER_CACHE_DIR=/tmp/composer-cache
cache-from: type=gha
cache-to: type=gha,mode=max
cache-from: type=gha,scope=php-${{ matrix.php }}
cache-to: type=gha,mode=max,scope=php-${{ matrix.php }}

- name: Execute tests via PHPUnit
env:
APP_ENV: testing
MULTIPAYMENT_DEFAULT: iugu
IUGU_ID: ${{ secrets.IUGU_ID }}
IUGU_APIKEY: ${{ secrets.IUGU_APIKEY }}
STRIPE_APIKEY: ${{ secrets.STRIPE_APIKEY }}
run: |
docker run --rm \
--env APP_ENV \
--env MULTIPAYMENT_DEFAULT \
--env IUGU_ID \
--env IUGU_APIKEY \
multi-payment:latest composer test
--env STRIPE_APIKEY \
multi-payment:${{ matrix.php }} composer test
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
vendor/
.idea/
.vscode/
/docs/implementacoes/
/.phpunit.result.cache
/.phpunit.cache/
phpunit.xml
6 changes: 4 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
FROM php:8.3.0-cli
# Versão do PHP da imagem; a CI sobrescreve via build-arg para cada entrada da matriz.
ARG PHP_VERSION=8.3
FROM php:${PHP_VERSION}-cli

RUN apt-get update && \
apt-get install -y --no-install-recommends \
Expand Down Expand Up @@ -27,4 +29,4 @@ RUN mkdir -p /var/www/.composer && chown -R www-data:www-data /var/www/.composer

USER www-data

CMD ["composer", "test"]
CMD ["composer", "test"]
1,853 changes: 1,763 additions & 90 deletions README.md

Large diffs are not rendered by default.

20 changes: 13 additions & 7 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,13 @@
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"test": [
"Composer\\Config::disableProcessTimeout",
"phpunit"
]
],
"capabilities:table": "php scripts/capabilities-table.php"
},
"repositories": [
{
Expand All @@ -42,13 +44,17 @@
}
],
"require": {
"php": "^8.0|^8.1|^8.2|^8.3",
"illuminate/config": "^8.0|^9.0|^10.0|^11.0|^12.0",
"illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0",
"iugu/iugu": "dev-master"
"php": "^8.3",
"illuminate/config": "^10.0|^11.0|^12.0",
"illuminate/console": "^10.0|^11.0|^12.0",
"illuminate/support": "^10.0|^11.0|^12.0",
"illuminate/cache": "^10.0|^11.0|^12.0",
"illuminate/contracts": "^10.0|^11.0|^12.0",
"iugu/iugu": "1.1.0",
"stripe/stripe-php": "^21.3"
},
"require-dev": {
"phpunit/phpunit": "^9.5",
"orchestra/testbench": "~8.0"
"phpunit/phpunit": "^12.0",
"orchestra/testbench": "^10.0"
}
}
Loading
Loading