csob / platebnibrana

Česká dokumentace ČSOB platební brány a jejího eAPI pro platby platebními kartami, Apple Pay, Google Pay, mallpay a platebními tlačítky ČSOB.
https://platbakartou.csob.cz/platebni-brana
GNU General Public License v3.0
7 stars 1 forks source link

Chyba 404 Not Found #75

Closed Vojtaner closed 4 days ago

Vojtaner commented 5 days ago

Dobrý den, nevím, kde dělám chybu, ale nedaří se mi úspěšně validovat spojení přes echo. Používám Javascript. Ani jedna metoda nevrací tížený výsledek. Mám pocit, že něco mi uniká.

Mám integrační klíče, merchantId.

Mock data s aktuálním datumem:

    const echoPayload = {
      merchantId: "M1EPAY1547",
      dttm: date,
      signature: "zde mutuji klíčem",
    };

Řetězec pro podpis:

const echoRETEZEC_ZPRAVY = [echoPayload.merchantId, echoPayload.dttm].join(
      "|",
    );

Pokud o vygenerovaní klíče:

function generateSignature(message_string: crypto.BinaryLike) {
  const signer = crypto.createSign("RSA-SHA256");
  signer.update(message_string);
  signer.end();
  const signature = signer.sign(privateKey);
  return signature.toString("base64");
}

Pokus o poslání GET encoded:

   const resp = await fetch(
      `https://iapi.iplatebnibrana.csob.cz/echo/${btoa(echoPayload.merchantId)}/${btoa(echoPayload.dttm)}/${echoPayload.signature}/`,
    );

Vytisknuté hodnoty, s kterými pracuji v objektu (budoucí POST request):

  echoPayload: {
    merchantId: 'M1EPAY1547',
    dttm: '20241113170914',
    signature: 'mIgXnkjUnGp/6tmWLv118ig5b17/Z/ukmzmXQm408V3p/XKDI0ND5qrGclhqX/6P2TMfZa/9uFFri38BPi7Oz0IllOEgYYl8daWocqm7FstC/tdf5+r754VhcVBVgrnDMRr5gHHLbPFiEeYIhyLTZInV29pm1DVPfeIoGvp7bKDemDPJvM/Hbtc5UQlufrV3d4I1PnuhzGeXbVsUt4k/XRo2gyPIh2DvM/f3nCpL+Ow76GNdwcSqVjQgS9HhSAXoHyvbA8MEQqETfHVc1TQtjgf22HY18uHPJWY8lleKM/Yp1KgPpJ+fzYCu1l+7qACv+z0ahIxorPB80uI2JAJKmw=='
  }

Odměna za mou snahu (vrácená chyba):

Response {
    status: 404,
    statusText: 'Not Found',
    headers: Headers {
      date: 'Wed, 13 Nov 2024 16:09:14 GMT',
      'content-type': 'text/html;charset=utf-8',
      'content-length': '47',
      connection: 'keep-alive',
      'strict-transport-security': 'max-age=31536000',
      'x-content-type-options': 'nosniff',
      'x-xss-protection': '1; mode=block',
      'set-cookie': 'TS01ac4e03=0109e0ddfbb08f7c4d72012de6cbc6470b38fcfb9a3ce908982a33ff6af85d2193d0d65b413638a6db1d222b1a6d95b7f95492c171; Path=/; Domain=.iapi.iplatebnibrana.csob.cz; Secure; HttpOnly; '
    },
    body: ReadableStream { locked: false, state: 'readable', supportsBYOB: true },
    bodyUsed: false,
    ok: false,
    redirected: false,
    type: 'basic',
    url: 'https://iapi.iplatebnibrana.csob.cz/echo/TTFFUEFZMTU0Nw==/MjAyNDExMTMxNzA5MTQ=/mIgXnkjUnGp/6tmWLv118ig5b17/Z/ukmzmXQm408V3p/XKDI0ND5qrGclhqX/6P2TMfZa/9uFFri38BPi7Oz0IllOEgYYl8daWocqm7FstC/tdf5+r754VhcVBVgrnDMRr5gHHLbPFiEeYIhyLTZInV29pm1DVPfeIoGvp7bKDemDPJvM/Hbtc5UQlufrV3d4I1PnuhzGeXbVsUt4k/XRo2gyPIh2DvM/f3nCpL+Ow76GNdwcSqVjQgS9HhSAXoHyvbA8MEQqETfHVc1TQtjgf22HY18uHPJWY8lleKM/Yp1KgPpJ+fzYCu1l+7qACv+z0ahIxorPB80uI2JAJKmw==/'
jgrmelova commented 5 days ago

Dobrý den,

URL adresa pro metodu echo "https://iapi.iplatebnibrana.csob.cz/echo/..." není správně (chybí část /api/v1.9/). Správná URL adresa je "https://iapi.iplatebnibrana.csob.cz/api/v1.9/echo".

Zároveň, pokud se jedná o volání echo pomocí metody GET, musí být přenášené parametry URL enkódovány. Například: curl -v -X GET https://iapi.iplatebnibrana.csob.cz/api/v1.9/echo/M1MIPS0000/20220125131615/url-encoded-signature

Pro úplnosti přikládám i příklad volání pomocí metody POST: curl -v -X POST https://iapi.iplatebnibrana.csob.cz/api/v1.9/echo \ -H "Content-Type:application/json" \ -d '{ "merchantId":"M1MIPS0000", "dttm":"20220125133015", "signature":"base64-encoded-request-signature" }'

V případě doplňujících dotazů, jsem Vám k dispozici.

Hezký den.


Jana Grmelová IT administrátor

Vojtaner commented 4 days ago

Děkuji moc. Moc mi to pomohlo.