Egyedi megoldások
Ha most kezdenél el valamit implementálni
Legegyszerűbb, ha írsz nekünk egy emailt. Ha nagyon önálló vagy, akkor a customer helyes beállítását javasoljuk, szükség van a vásárló címadataira, az szokott lenni a legnagyobb nehézség.
Már használok valamit
Ha a valami nem tölti ki jól a stripeos customert, de megvannak a vásárló címadatai, akkor a metaadatok beállítása elég sok szabad teret enged. A legegyszerűbb itt is, ha írsz nekünk egy emailt.
Backend példakód
const metadata: RequiredMetadata = {
    buyer_name: "Teszt Elek",
    country: "Hungary",
    zip: "1234",
    city: "TestCity",
    address: "Test street, 12, A/5",
    email: "test@test.test",
    identifier: "szamla-42",
    vat: "27",
    comment: "whatwhatwhat",
    is_unit_price_gross: "true",
    label: "label",
    quantity: "5",
    unit: "db",
    unit_price: "500",
  };

  const paymentIntent = await stripe
    .paymentIntents
    .create({
      amount: calculateOrderAmount(items),
      currency: "huf",
      automatic_payment_methods: {
        enabled: true,
      },
      metadata,
  });
Metaadat típusdefiníció
interface RequiredMetadata {
  buyer_name: string;
  country?: string;
  zip: string;
  city: string;
  address: string;
  email?: string;
  tax_number?: string;
  identifier?: string;
  vat: string;
  is_unit_price_gross: "true" | "false";
  unit_price: string;
  label: string;
  unit: string;
  comment: string;
  quantity: string;
}
Ha velünk szeretnél integrálódni

Invoice Status endpoint

Ez az endpoint segít lekérdezni egy számla állapotát. A hívás visszatérésében megkapjuk a számla állapotát, melyből az issueStatus és az issueText mezők segítségével meg tudjuk állapítani, hogy a számla ki lett-e állítva, és ha nem, akkor miért nem. A többi mező szintén segíthet, ha problémába ütközünk.

Download Invoice endpoint

Ez az endpoint segít letolteni a számlát. Konkretan a szamla pdf-el tér vissza.

Használat:

async function downloadInvoice(publicKey, stripeId) {
    const url = '/api/public/downloadInvoice';

    try {
        const response = await fetch(url, {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ publicKey, stripeId })
        });

        if (!response.ok) {
            const errorData = await response.json();
            throw new Error(errorData.message || 'Failed to download invoice');
        }

        const blob = await response.blob();
        const blobUrl = window.URL.createObjectURL(blob);
        const a = document.createElement('a');
        a.href = blobUrl;
        a.download = 'invoice.pdf';
        document.body.appendChild(a);
        a.click();
        document.body.removeChild(a);
        window.URL.revokeObjectURL(blobUrl);
    } catch (error) {
        console.error('Error downloading invoice:', error);
        alert('Error downloading invoice: ' + error.message);
    }
}
Emergence-engineering
2022 All rights reserved