Wygeneruj klienta Stripe dla Delphi

Stripe publikuje jedną z najbardziej kompletnych specyfikacji OpenAPI w publicznym internecie — ponad 500 endpointów obejmujących płatności, rozliczenia, tożsamość, terminal i Connect. Wprowadź ją do sgcOpenAPI, a dostaniesz silnie typowaną jednostkę Delphi, która odzwierciedla specyfikację, z już wypełnionymi klasami żądań i odpowiedzi, podłączonym uwierzytelnianiem i obsłużoną paginacją.

Stripe + sgcOpenAPI

Stripe dostarcza i utrzymuje oficjalną specyfikację OpenAPI 3. Parser i generator kodu sgcOpenAPI konwertują ją bezpośrednio na Pascala, który kompiluje się na Delphi 7 do RAD Studio 13.

Specyfikacja źródłowa

github.com/stripe/openapi

Auth

Bearer secret key + klucze idempotentności

Wygenerowana jednostka

sgcOpenAPI_Stripe

Platformy

Windows, macOS, Linux, iOS, Android

Wprowadź specyfikację do parsera

Pobierz najnowszy spec3.json z publicznego repozytorium Stripe i załaduj go za pomocą TsgcOpenAPIParser. Parser rozwiązuje wskaźniki $ref, słowa kluczowe kompozycji i wspólny model błędów, więc generator kodu widzi w pełni zdereferencjowany model API.

uses
  sgcOpenAPI_Parser, sgcOpenAPI_Generator;

var
  vParser: TsgcOpenAPIParser;
  vGen: TsgcOpenAPIGenerator;
begin
  vParser := TsgcOpenAPIParser.Create(nil);
  try
    vParser.LoadFromFile('C:\specs\stripe\spec3.json');
    Memo1.Lines.Add(Format('Loaded Stripe spec: %d paths, %d schemas',
      [vParser.Paths.Count, vParser.Schemas.Count]));

    vGen := TsgcOpenAPIGenerator.Create(nil);
    try
      vGen.Parser := vParser;
      vGen.OutputUnit := 'sgcOpenAPI_Stripe';
      vGen.OutputFolder := 'C:\Generated\Stripe';
      vGen.Generate;
    finally
      vGen.Free;
    end;
  finally
    vParser.Free;
  end;
end;

Generator zapisuje pojedynczą jednostkę Pascala o nazwie sgcOpenAPI_Stripe.pas z jedną silnie typowaną klasą na tag w specyfikacji — TsgcStripe_Charges, TsgcStripe_Customers, TsgcStripe_Subscriptions, TsgcStripe_PaymentIntents itp. — plus fasadę najwyższego poziomu TsgcStripe, która posiada wspólny klient HTTP i stan uwierzytelniania.

Utwórz obciążenie

Ustaw token bearer raz na fasadzie, potem wywołuj metody na typowanych podobiektach. Ciała żądań są wypełniane przez fluent properties; odpowiedzi przychodzą jako silnie typowane obiekty.

uses sgcOpenAPI_Stripe;

var
  vStripe: TsgcStripe;
  vCharge: TsgcStripeCharge;
begin
  vStripe := TsgcStripe.Create(nil);
  try
    vStripe.ApiKey := 'sk_test_4eC39HqLyjWDarjtT1zdp7dc';

    vCharge := vStripe.Charges.Create(
      Amount   := 2000,                  // cents
      Currency := 'usd',
      Source   := 'tok_visa',             // test token
      Description := 'Order 1234');
    try
      Memo1.Lines.Add('Charge id: ' + vCharge.Id);
      Memo1.Lines.Add('Status:    ' + vCharge.Status);
      Memo1.Lines.Add('Paid:      ' + BoolToStr(vCharge.Paid, True));
    finally
      vCharge.Free;
    end;
  finally
    vStripe.Free;
  end;
end;

Klienci i subskrypcje

Paginacja jest obsługiwana przez wygenerowane obiekty kursora. Klucze idempotentności są przekazywane przez opcjonalny parametr IdempotencyKey na każdej metodzie modyfikującej.

// Create a customer + attach a subscription
var
  vCustomer: TsgcStripeCustomer;
  vSub: TsgcStripeSubscription;
  vItems: TsgcStripeSubscriptionItemList;
begin
  vCustomer := vStripe.Customers.Create(
    Email := 'jane@example.com',
    PaymentMethod := 'pm_card_visa');

  vItems := TsgcStripeSubscriptionItemList.Create;
  vItems.Add(Price := 'price_1JxYzZAbCdEfGhIj');

  vSub := vStripe.Subscriptions.Create(
    Customer := vCustomer.Id,
    Items := vItems,
    IdempotencyKey := TGUID.NewGuid.ToString);

  // Page through invoices for this customer
  for vInvoice in vStripe.Invoices.List(Customer := vCustomer.Id) do
    Memo1.Lines.Add(Format('%s — %d %s',
      [vInvoice.Id, vInvoice.AmountDue, vInvoice.Currency]));
end;

Co daje Ci wygenerowana jednostka

Ponieważ jednostka jest generowana z oficjalnej specyfikacji, każdy udokumentowany endpoint i każde udokumentowane pole są dostępne bez ręcznej pracy wiązania.

Płatności i zwroty

Charges, PaymentIntents, PaymentMethods, Refunds, Disputes, Sources, Tokens — pełne klasyczne API Charges plus nowoczesny przepływ PaymentIntents z Strong Customer Authentication.

Rozliczenia i subskrypcje

Customers, Invoices, InvoiceItems, Subscriptions, SubscriptionItems, Prices, Products, Coupons, PromotionCodes, TaxRates.

Connect i wypłaty

Accounts, AccountLinks, Transfers, Payouts, BalanceTransactions — wszystko, czego potrzeba do obsługi platformy Stripe Connect z back-office Delphi.

Identity i Terminal

Obiekty Identity VerificationSession oraz obiekty Terminal Reader/Location są wszystkie obecne, w tym polimorficzne schematy last_verification_report, których Stripe używa dla wyników KYC.

Zdarzenia webhook

Pełny schemat Event z dyskryminowanymi ładunkami data.object jest zawarty. Parsuj przychodzące ciała webhook tymi samymi typami, których używasz do wysłania oryginalnego żądania.

Pliki i raportowanie

Files, FileLinks, Reporting — pomocniki multipart upload są emitowane automatycznie, ponieważ specyfikacja oznacza te endpointy jako multipart/form-data.

Dwie rzeczy, na które należy uważać

Dryf wersji specyfikacji

Stripe wydaje nowe wersje API co miesiąc. Przypnij plik specyfikacji do wersji używanej przez Twoje konto (ustaw Stripe-Version na każdym żądaniu) i regeneruj jednostkę Delphi przy aktualizacji. Generator jest deterministyczny — ta sama specyfikacja, ten sam wynik.

Odpowiedzi polimorficzne

Kilka schematów Stripe (payment_method_details, source, balance_transaction.source) używa oneOf z dyskryminatorem. Wygenerowana jednostka emituje klasę bazową plus jednego potomka na wariant — rzutuj w dół na podstawie właściwości Type.

Z bloga

Parser OpenAPI Delphi

Jak bazowy parser obsługuje rzeczywiste specyfikacje OpenAPI 3.x, w tym podchwytliwe słowa kluczowe kompozycji.

Czytaj wpis →

Parser OpenAPI: bundle schematów

Praca ze specyfikacjami z wieloma plikami i zewnętrznymi wskaźnikami $ref — przydatne, gdy podspecyfikacje Stripe są podzielone.

Czytaj wpis →

sgcOpenAPI 2026.6

Najnowsze notatki wydania dla sgcOpenAPI — nowe opcje generatora i ulepszenia parsera.

Czytaj wpis →

Wygeneruj swojego klienta Stripe już dziś

sgcOpenAPI jest dostarczany z parserem, generatorem kodu, serwerem OpenAPI i pakietami SDK Google, Amazon, Microsoft i Azure — jeden produkt, trzy poziomy.