Skip to content

Releases: shopware/app-php-sdk

5.1.0

21 Apr 09:18
b506ae4

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 5.0.3...5.1.0

5.0.3

01 Apr 09:06
76b48df

Choose a tag to compare

What's Changed

Full Changelog: 5.0.2...5.0.3

5.0.2

24 Mar 07:13
9e540a5

Choose a tag to compare

What's Changed

Full Changelog: 5.0.1...5.0.2

5.0.1

16 Feb 12:50
98665b2

Choose a tag to compare

What's Changed

Full Changelog: 5.0.0...5.0.1

5.0.0

04 Feb 15:31
bf6884f

Choose a tag to compare

Highlights

  • Introduce the dual signature verification mechanism to enhance security during shop secret rotations.
  • Public API updates in registration verification and shop model that require consumer changes.

Breaking change

  • RequestVerifier public API updated to accept raw secrets and adds authenticateRegistrationRequestWithShopSignature.
  • ResponseSigner::getRegistrationSignature now expects proof parameters array.
  • ShopInterface expanded with required getters/setters for pending/previous secrets, rotation time, and registration confirmation.
  • AppConfiguration constructor adds enforceDoubleSignature (default false); enforceDoubleSignature() is deprecated.

Upgrade Notes

Public API changes

AppConfiguration

  • New constructor parameter: bool $enforceDoubleSignature = false
  • enforceDoubleSignature() is also deprecated (scheduled removal in v6.0.0). Should become always enforced.

RequestVerifier

  • authenticateRegistrationRequest(RequestInterface, AppConfiguration)
    authenticateRegistrationRequest(RequestInterface, string $appSecret)
  • New: authenticateRegistrationRequestWithShopSignature(RequestInterface, string $shopSecret)
  • authenticatePostRequest(RequestInterface, ShopInterface)
    authenticatePostRequest(RequestInterface, string $secret, string $headerName = 'shopware-shop-signature')
  • authenticateGetRequest(RequestInterface, ShopInterface)
    authenticateGetRequest(RequestInterface, string $secret)
  • authenticateStorefrontRequest(RequestInterface, ShopInterface)
    authenticateStorefrontRequest(RequestInterface, string $shopId, string $secret)

ResponseSigner

  • getRegistrationSignature(AppConfiguration, ShopInterface)
    getRegistrationSignature(AppConfiguration, array $proofParameters) with keys shop-id, shop-url

ShopInterface (new required methods)

  • getPendingShopUrl, setPendingShopUrl
  • getPendingShopSecret, setPendingShopSecret
  • getPreviousShopSecret, setPreviousShopSecret
  • setShopSecret
  • getSecretsRotatedAt, setSecretsRotatedAt
  • isRegistrationConfirmed, setRegistrationConfirmed
  • hasVerifiedWithDoubleSignature, setVerifiedWithDoubleSignature (deprecated)

Recommendations

  • Replace direct usage of RequestVerifier with DualSignatureRequestVerifier to enable in-flight support during secret rotation windows.

Required code changes

  1. Update your ShopInterface implementation
  • Add the new fields and methods listed above.
  1. Update any storage/persistence you own
  • Persist the new fields your ShopInterface now exposes.
  • Example: add columns for pending_shop_secret, pending_shop_url, previous_shop_secret, secrets_rotated_at, registration_confirmed, and has_verified_with_double_signature to your shop table.
  1. Update calls to RequestVerifier
$verifier = new RequestVerifier();

$verifier->authenticateRegistrationRequest($request, $appSecret);
$verifier->authenticateRegistrationRequestWithShopSignature($request, $shopSecret);
$verifier->authenticatePostRequest($request, $shopSecret);
$verifier->authenticateGetRequest($request, $shopSecret);
$verifier->authenticateStorefrontRequest($request, $shopId, $shopSecret);
  1. Update ResponseSigner::getRegistrationSignature usage
$proof = $responseSigner->getRegistrationSignature(
    $appConfig,
    ['shop-id' => $shopId, 'shop-url' => $shopUrl]
);

4.1.5

14 Jan 11:54
be54610

Choose a tag to compare

What's Changed

Full Changelog: 4.1.4...4.1.5

4.1.4

31 Oct 07:54
1b42ba0

Choose a tag to compare

What's Changed

Full Changelog: 4.1.3...4.1.4

4.1.3

06 Oct 14:00
469e870

Choose a tag to compare

What's Changed

  • fix: missing transaction validation data and status redirect response by Michel (@cyl3x) in #48

Full Changelog: 4.1.2...4.1.3

4.1.2

26 Sep 15:09
645f29a

Choose a tag to compare

4.1.1

28 Jul 13:40
50d8e0d

Choose a tag to compare

What's Changed

Full Changelog: 4.1.0...4.1.1