Bir Delphi Stripe İstemcisi Üretin

Stripe, herkese açık internetteki en eksiksiz OpenAPI spesifikasyonlarından birini yayınlar — ödemeleri, faturalandırmayı, kimliği, terminali ve Connect'i kapsayan 500'den fazla uç nokta. Bunu sgcOpenAPI'ye verin ve spesifikasyonu yansıtan, istek ve yanıt sınıfları zaten doldurulmuş, kimlik doğrulaması bağlanmış ve sayfalaması sizin için işlenmiş güçlü tipli bir Delphi birimi elde edin.

Stripe + sgcOpenAPI

Stripe, resmi bir OpenAPI 3 spesifikasyonu sunar ve sürdürür. sgcOpenAPI'nin ayrıştırıcısı ve kod üreticisi, bunu doğrudan Delphi 7'den RAD Studio 13'e kadar derlenen Pascal koduna dönüştürür.

Kaynak spesifikasyonu

github.com/stripe/openapi

Kimlik doğrulama

Bearer gizli anahtarı + idempotency anahtarları

Üretilen birim

sgcOpenAPI_Stripe

Platformlar

Windows, macOS, Linux, iOS, Android

Spesifikasyonu ayrıştırıcıya verin

En son spec3.json dosyasını Stripe'ın herkese açık deposundan indirin ve TsgcOpenAPIParser ile yükleyin. Ayrıştırıcı, $ref işaretçilerini, kompozisyon anahtar sözcüklerini ve paylaşılan hata modelini çözer, böylece kod üreticisi tamamen referansları çözülmüş bir API modeli görür.

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;

Üretici, spesifikasyondaki her etiket için bir güçlü tipli sınıf içeren sgcOpenAPI_Stripe.pas adlı tek bir Pascal birimi yazar — TsgcStripe_Charges, TsgcStripe_Customers, TsgcStripe_Subscriptions, TsgcStripe_PaymentIntents vb. — ayrıca paylaşılan HTTP istemcisine ve kimlik doğrulama durumuna sahip üst düzey bir TsgcStripe cephesi.

Bir charge oluşturun

Bearer belirtecini cephe üzerinde bir kez ayarlayın, ardından tipli alt nesneler üzerindeki metotları çağırın. İstek gövdeleri akıcı özellikler aracılığıyla doldurulur; yanıtlar güçlü tipli nesneler olarak geri döner.

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;

Customer'lar ve subscription'lar

Sayfalama, üretilen imleç nesneleri tarafından işlenir. Idempotency anahtarları, her değiştiren metottaki isteğe bağlı IdempotencyKey parametresi aracılığıyla iletilir.

// 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;

Üretilen birim size ne sağlar

Birim resmi spesifikasyondan üretildiği için, belgelenen her uç nokta ve belgelenen her alan, manuel bağlama işi olmadan kullanılabilir.

Ödemeler ve geri ödemeler

Charges, PaymentIntents, PaymentMethods, Refunds, Disputes, Sources, Tokens — tam klasik Charges API'si artı Strong Customer Authentication ile modern PaymentIntents akışı.

Faturalandırma ve abonelikler

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

Connect ve ödemeler

Accounts, AccountLinks, Transfers, Payouts, BalanceTransactions — bir Delphi arka ofisinden bir Stripe Connect platformu işletmek için gereken her şey.

Identity ve Terminal

Identity VerificationSession nesneleri ve Terminal Reader/Location nesnelerinin tümü, Stripe'ın KYC sonuçları için kullandığı çok biçimli last_verification_report şemaları dahil olmak üzere mevcuttur.

Webhook olayları

Ayırt edici data.object yüklerine sahip tam Event şeması dahildir. Gelen webhook gövdelerini, orijinal isteği göndermek için kullandığınız aynı tiplerle ayrıştırın.

Dosyalar ve raporlama

Files, FileLinks, Reporting — spesifikasyon bu uç noktaları multipart/form-data ile işaretlediği için çok parçalı yükleme yardımcıları otomatik olarak üretilir.

Dikkat edilmesi gereken iki şey

Spesifikasyon sürümü kayması

Stripe her ay yeni API sürümleri yayınlar. Spesifikasyon dosyasını hesabınızın kullandığı sürüme sabitleyin (her istekte Stripe-Version ayarlayın) ve yükselttiğinizde Delphi birimini yeniden üretin. Üretici belirleyicidir — aynı spesifikasyon, aynı çıktı.

Çok biçimli yanıtlar

Birkaç Stripe şeması (payment_method_details, source, balance_transaction.source) bir ayırt edici ile oneOf kullanır. Üretilen birim bir temel sınıf artı her varyant için bir alt sınıf üretir — Type özelliğine göre aşağı dönüştürün.

Blogdan

OpenAPI Delphi ayrıştırıcısı

Temel ayrıştırıcının, zorlu kompozisyon anahtar sözcükleri dahil olmak üzere gerçek dünya OpenAPI 3.x spesifikasyonlarını nasıl işlediği.

Yazıyı okuyun →

OpenAPI ayrıştırıcısı: şemaları paketleme

Çok dosyalı spesifikasyonlar ve harici $ref işaretçileriyle çalışma — Stripe alt spesifikasyonları bölündüğünde yararlıdır.

Yazıyı okuyun →

sgcOpenAPI 2026.6

sgcOpenAPI için en son sürüm notları — yeni üretici seçenekleri ve ayrıştırıcı iyileştirmeleri.

Yazıyı okuyun →

Stripe istemcinizi bugün üretin

sgcOpenAPI; ayrıştırıcı, kod üreticisi, OpenAPI sunucusu ve Google, Amazon, Microsoft ile Azure SDK paketleriyle birlikte gelir — tek ürün, üç kademe.