Przejdź do treści

TailoredApps.Shared.Payments.Provider.Adyen

NuGet License: MIT

Integracja z Adyen Checkout API. Obsługuje płatności kartą, BLIK (PLN) i inne metody dostępne w Adyen, z pełną obsługą webhooków i weryfikacją HMAC.


Instalacja

dotnet add package TailoredApps.Shared.Payments.Provider.Adyen

Rejestracja w DI

using TailoredApps.Shared.Payments.Provider.Adyen;

builder.Services
    .AddPayments()
    .RegisterAdyenProvider();

Konfiguracja appsettings.json

{
  "Payments": {
    "Providers": {
      "Adyen": {
        "ApiKey": "AQEyhmf...",
        "MerchantAccount": "MyCompanyECOM",
        "ClientKey": "test_...",
        "ReturnUrl": "https://myapp.com/payment/return",
        "NotificationHmacKey": "446a32...hex...",
        "Environment": "test"
      }
    }
  }
}
Opcja Opis
ApiKey Klucz API Adyen (header X-API-Key)
MerchantAccount Identyfikator konta merchant
ClientKey Klucz klienta Drop-in/Components (opcjonalny)
ReturnUrl URL powrotu po płatności
NotificationHmacKey Klucz HMAC (hex) do weryfikacji webhooków
Environment "test" lub "live"
CheckoutUrl Nadpisuje domyślny URL API (opcjonalne)

Obsługiwane kanały płatności

Waluta Kanały
PLN card (Visa, Mastercard), blik
EUR card, sepa
Inne card

Webhook

Adyen wysyła powiadomienia na endpoint HTTP. Weryfikacja odbywa się przez HMAC SHA-256 na podstawie NotificationHmacKey.

[HttpPost("webhooks/adyen")]
public async Task<IActionResult> AdyenWebhook([FromBody] JsonElement body)
{
    var result = await _payments.HandleWebhookAsync("Adyen", new PaymentWebhookRequest
    {
        Body = body.GetRawText(),
        Headers = Request.Headers.ToDictionary(h => h.Key, h => h.Value.ToString())
    });
    return result == PaymentWebhookResult.Success ? Ok("[accepted]") : BadRequest();
}

🤖 AI Agent Prompt

## Adyen Provider — Instrukcja dla agenta AI

Provider key: "Adyen"

Sekcja konfiguracji: "Payments:Providers:Adyen"

Wymagane pola: ApiKey, MerchantAccount, ReturnUrl

Webhook: HMAC-SHA256, klucz NotificationHmacKey

Rejestracja: builder.Services.AddPayments().RegisterAdyenProvider();

Środowisko testowe: Environment = "test" (checkout-test.adyen.com)