Konfigurace
Nikdy necommitujte clientSecret ani ostré přihlašovací údaje. V každém prostředí používejte proměnné prostředí nebo správce tajemství.
Klienta SDK vytvoříte pomocí createGoPayClient.
import { Language, TokenScope, createGoPayClient } from 'gopay-sdk';
const client = createGoPayClient({
goid: 8123456789,
clientId: process.env.GOPAY_CLIENT_ID!,
clientSecret: process.env.GOPAY_CLIENT_SECRET!,
gatewayUrl: 'https://gw.sandbox.gopay.com/api',
scope: TokenScope.ALL,
language: Language.EN,
timeoutMs: 30_000,
customUserAgent: 'my-service/1.0.0',
tokenRefreshMarginSeconds: 30,
});
Pole konfigurace
goid: number | string
ID účtu obchodníka GoPay. Hodnoty se normalizují na number.
clientId: string
OAuth2 identifikátor klienta z GoPay.
clientSecret: string
OAuth2 tajný klíč z GoPay.
gatewayUrl: string
Základní URL brány GoPay API.
Běžné hodnoty:
- Sandbox:
https://gw.sandbox.gopay.com/api
- Produkce:
https://gate.gopay.cz/api
SDK hodnotu normalizuje a zajistí koncové /api.
scope?: TokenScope
OAuth rozsah pro požadavky na access token.
TokenScope.ALL (payment-all) — výchozí
TokenScope.CREATE_PAYMENT (payment-create)
language?: Language
Výchozí jazyk SDK v hlavičkách a u výchozích hodnot plateb.
Výchozí: Language.EN.
timeoutMs?: number
HTTP timeout jednotlivého požadavku v milisekundách.
Výchozí: 30000.
customUserAgent?: string
Vlastní hlavička User-Agent.
Výchozí: gopay-sdk-ts/1.0.0.
tokenRefreshMarginSeconds?: number
Jak brzy před skutečnou expirací obnovit token.
Výchozí: 30.
Druhý argument: volby
Vlastní TokenCache sdílí tokeny mezi workery, vlastní HttpTransport pro proxy, tracing nebo jiný HTTP stack než fetch — viz Rozšiřitelnost.
import { createGoPayClient, type HttpTransport, type TokenCache } from 'gopay-sdk';
const tokenCache: TokenCache = {
get: (key) => undefined,
set: (key, value) => {},
delete: (key) => {},
};
const transport: HttpTransport = {
execute: async (request) => fetch(request.url, request),
};
const client = createGoPayClient(config, {
tokenCache,
transport,
});
Validace
SDK vyhodí GoPayConfigError při:
- chybějícím
clientId nebo clientSecret
- nečíselném
goid
- prázdné nebo neplatné
gatewayUrl
timeoutMs <= 0
tokenRefreshMarginSeconds < 0