Skip to content

Releases: nokimaro/liontech-php-sdk

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 25 May 10:57
01f51f2

What's Changed

  • chore(deps): bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #15
  • chore: switch default URLs to fusionpayments.io (v1.2.0) by @nokimaro in #16

Full Changelog: v1.1.4...v1.2.0

v1.1.4

Choose a tag to compare

@nokimaro nokimaro released this 07 Apr 12:31
593de6b

Fixed

  • Webhook signature verification now uses correct RSA PKCS1v1.5 padding instead of PSS — fixes signature validation failures against LionTech production webhooks (#14)

What's Changed

  • Update CODE_OF_CONDUCT.md by @nokimaro in #12
  • docs: fill in CHANGELOG for v1.0.1 through v1.1.3 by @nokimaro in #13
  • fix: use PKCS1v1.5 padding for webhook signature verification by @nokimaro in #14

Full Changelog: v1.1.3...v1.1.4

v1.1.3

Choose a tag to compare

@nokimaro nokimaro released this 05 Apr 04:06
cd479ed

Documentation

  • Updated README webhook section with typed WebhookPayload usage example
  • Updated examples/04_webhook_verification.php with isSuccessful() / isDeclined() / error handling

What's Changed

  • docs: add webhook payload parsing example to README and examples by @nokimaro in #11

Full Changelog: v1.1.2...v1.1.3

v1.1.2

Choose a tag to compare

@nokimaro nokimaro released this 05 Apr 04:01
d1a5fe3

New Features

  • Added WebhookPayload DTO for parsing incoming webhook notifications via WebhookPayload::fromJson($json)
  • Added WebhookError DTO with hasError() helper
  • Added WebhookEventType enum

Usage

$webhook = WebhookPayload::fromJson(file_get_contents('php://input'));

if ($webhook->payment->isSuccessful()) {
    // fulfil the order
}

if ($webhook->error?->hasError()) {
    // log $webhook->error->description
}

What's Changed

  • feat: add WebhookPayload DTO for parsing incoming webhook notifications by @nokimaro in #10

Full Changelog: v1.1.1...v1.1.2

v1.1.1

Choose a tag to compare

@nokimaro nokimaro released this 05 Apr 03:43
e0bed68

Bug Fixes

  • Fixed SBP paymentData.object serialization — was sending [] (array), now correctly sends {} (empty object) as required by the API
  • Exception messages now include error.details[].description values for richer diagnostics (e.g. Invalid input parameters. Payment method is not enabled for this merchant site.)

Breaking Changes

  • SbpData class removed — replace PaymentData::sbp(new SbpData(...)) with PaymentData::sbp() (no arguments)

What's Changed

  • docs: add Laravel integration reference and API compliance report by @nokimaro in #7
  • Update LICENSE.md by @nokimaro in #8
  • fix: SBP empty object serialization and richer exception messages by @nokimaro in #9

Full Changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@nokimaro nokimaro released this 05 Apr 01:41
a742095

What's Changed

Bug Fixes

  • CreateOrderRequest: description is now a required constructor parameter. The API was returning HTTP 400 when this field was absent, despite the OpenAPI spec marking it as optional.

  • CreateRefundRequest: webhookUrl is now a required constructor parameter. The API requires this field — previously the SDK silently omitted it when null, causing silent 400 errors at runtime.

  • ApiExceptionMapper: Fixed error extraction to unwrap the API response envelope {type, object, error} before reading error details. Previously error messages were lost on non-2xx responses.

  • Transport: Fixed GET requests to apply authentication headers (were missing).

  • Client / EncryptionKeyClient: Moved encryption key retrieval to a dedicated EncryptionKeyClient using the correct endpoint. The previous implementation used SignatureClient with the wrong endpoint.

Internal

  • Added Json::decodeObject() helper for envelope-wrapped single-object responses.
  • Updated all unit tests to reflect corrected constructors and response fixtures.

Breaking Changes

  • CreateOrderRequest::__construct() — description is now the 2nd positional argument and is required (no default). Code using named arguments is unaffected if description was already passed; code omitting it will get a compile-time error.
  • CreateRefundRequest::__construct() — webhookUrl is now the 3rd positional argument and is required (no default).

Migration

// Before
new CreateOrderRequest(amount: $amount);
new CreateRefundRequest(amount: $amount, paymentId: $id);

// After
new CreateOrderRequest(amount: $amount, description: 'Your description');
new CreateRefundRequest(amount: $amount, paymentId: $id, webhookUrl: 'https://example.com/webhook');

What's Changed

  • fix: enforce empirically required fields and fix API integration issues by @nokimaro in #6

Full Changelog: v1.0.1...v1.1.0

v1.0.1

Choose a tag to compare

@nokimaro nokimaro released this 04 Apr 22:08
aaf4d11

What's Changed

Bug Fixes

  • Fix response mappers to align with OpenAPI spec (#5)
    • Add ResponseStatus value object — status field now exposes value, changedAt, and description instead of discarding the latter two
    • Fix PaymentResponse::$paymentMethod type: was PaymentData|null (request VO), now ?string per spec
    • Fix PayoutResponse::$paymentMethod type: was array|null (silently returned null for string values), now ?string per spec

Full Changelog: v1.0.0...v1.0.1

What's Changed

  • chore(deps-dev): update symplify/easy-coding-standard requirement from ^12.3 to ^12.3 || ^13.0 by @dependabot[bot] in #1
  • chore(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #2
  • chore: remove unused php-http/multipart-stream-builder dependency by @nokimaro in #3
  • docs: fix constructor examples, license year, and review policy by @nokimaro in #4
  • fix: align response mappers with OpenAPI spec by @nokimaro in #5

New Contributors

Full Changelog: v1.0.0...v1.0.1

1.0.0

Choose a tag to compare

@nokimaro nokimaro released this 04 Apr 05:11