Přejít na hlavní obsah

Příklad životního cyklu platby

Jeden skript spojuje vytvoření platby, stav, seznam refundací a instrumenty — vhodné k rychlé kontrole sandbox přihlašovacích údajů end-to-end.
Skript ukazuje typický tok: vytvoření platby, dotaz na stav, seznam refundací a platební instrumenty. Zkopírujte do projektu s nainstalovaným gopay-sdk a sandbox proměnnými prostředí.

Skript

import { Currency, type PaymentResponse, createGoPayClient } from 'gopay-sdk';

async function createDemoPayment(): Promise<PaymentResponse> {
  const client = createGoPayClient({
    goid: 8123456789,
    clientId: process.env.GOPAY_CLIENT_ID ?? 'YOUR_CLIENT_ID',
    clientSecret: process.env.GOPAY_CLIENT_SECRET ?? 'YOUR_CLIENT_SECRET',
    gatewayUrl: process.env.GOPAY_GATEWAY_URL ?? 'https://gw.sandbox.gopay.com/api',
  });

  const payment = await client.createPayment({
    amount: 19900,
    currency: Currency.CZK,
    order_number: `LIFECYCLE-${Date.now()}`,
    order_description: 'Lifecycle demo payment',
    payer: {
      contact: {
        email: 'john.doe@example.com',
      },
    },
    callback: {
      return_url: 'https://example.com/return',
      notification_url: 'https://example.com/notify',
    },
  });

  if (!payment.id) {
    throw new Error('Vytvoření platby nevrátilo ID platby.');
  }

  console.log('1) Platba vytvořena:', payment.id, payment.state);

  const status = await client.getPayment(payment.id);
  console.log('2) Stav po dotazu:', status.state, status.sub_state);

  const refunds = await client.getPaymentRefunds(payment.id);
  console.log('3) Počet záznamů refundací:', refunds.length);

  const instruments = await client.getPaymentInstruments(8123456789, Currency.CZK);
  console.log('4) Dostupné instrumenty:', instruments.enabledPaymentInstruments.length);

  const allInstruments = await client.getPaymentInstrumentsAll(8123456789);
  const instrumentCount = Array.isArray(allInstruments.enabledPaymentInstruments)
    ? allInstruments.enabledPaymentInstruments.length
    : Object.keys(allInstruments.enabledPaymentInstruments).length;
  console.log('5) Všechny instrumenty (záznamy):', instrumentCount);

  return payment;
}

createDemoPayment().catch((error) => {
  console.error('Lifecycle příklad selhal:', error);
  process.exit(1);
});

Spuštění

Stejné proměnné prostředí jako v Základním použití. Spusťte vaším TypeScript / Node řetězcem.