Giter VIP home page Giter VIP logo

csob / platebnibrana Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 1.0 1.5 MB

Č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.

Home Page: https://platbakartou.csob.cz/platebni-brana

License: GNU General Public License v3.0

applepay csob googlepay karta kreditka mallpay online-platba platba platebni-integrace

platebnibrana's People

Contributors

danmarcz avatar dmarek avatar hvitaskova avatar ozaoral avatar rlombart avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

kubululo

platebnibrana's Issues

Google Pay init - paymentData base64 encoding

Dobrý den,

Vycházíme z JS šablonu uvedené zde.

Nejsme si jistí, že správně provést base64 encoding paymentData, který vrací Google API, pro předání do fieldu payload v gateway endpointu googlepay/init. Pokud provedeme encoding celého paymentData objektu ve funkci processPayment takto:

const payload = window.btoa(unescape(encodeURIComponent(JSON.stringify(paymentData))))

tak API vrátí error 110: Invalid length of payload parameter.

Pokud zkusíme jen

const payload = window.btoa(JSON.stringify(paymentData))

tak havaruje už JS na The string to be encoded contains characters outside of the Latin1 range..

Pokud zaencodujeme pouze paymentData.paymentMethodData.tokenizationData.token, tak googlepay/init projde, ale následné volání googlepay/process vrací error 180: Operation not allowed, used different API version.

Můžete prosím poskytnout JS snippet pro správné encodování paymentData?

API 1.9 Google Pay - Invalid param colorDepth

Zdravím,
máme na produkci implementované API 1.9 včetně Google Pay a Apple Pay přímo na stránce obchodu. Platby přes tyto metody probíhají bez problému a v pořádku se zpracovávají.

Občas ale vyskočí chyba v API odpovědi:

{"resultCode": 110,"resultMessage": "Invalid param colorDepth"}

Hodnoty, které posíláme v požadavku jsou např. následující (vybral jsem dva případy různých zákazníků):

{
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:107.0) Gecko/20100101 Firefox/107.0",
      "acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
      "language": "en-US",
      "javascriptEnabled": "true",
      "colorDepth": "30",
      "screenHeight": "1050",
      "screenWidth": "1680",
      "timezone": "-60",
      "javaEnabled": "false",
      "challengeWindowSize": "05"
 }
{
      "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
      "acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
      "language": "sk-SK",
      "javascriptEnabled": "true",
      "colorDepth": "30",
      "screenHeight": "1440",
      "screenWidth": "2560",
      "timezone": "-60",
      "javaEnabled": "false",
      "challengeWindowSize": "05"
}

Mohu poprosit o info, proč je "colorDepth": "30" problémová hodnota a případně zda je možné i tak zákazníkům povolit platit?

Díky :)

Testování OneClick plateb na integračním prostředí

Dobrý den,

snažím se otestovat potvrzení platby v rámci jejího ověření, ale i když postupuju podle instrukcí na https://github.com/csob/platebnibrana/wiki/Testovac%C3%AD-karty - úvodní OneClick platba placena kartou 4000007000030004 s CVC 100, tak v případě vytvoření následné OneClick platby s jinou částkou než 100 a 200 při volání oneclick/process nedostávám zpět objekt actions s adresou pro otevření ověřovací stránky, ale pouze tyto údaje:

{
"payId":"0c30d8524d3f@HH",
"resultCode":0,
"resultMessage":"OK",
"dttm":"20220823093749",
"signature":"...",
"paymentStatus":2
}

Můžete prosím ověřit, proč mi není vrácena adresa pro potvrzení platby?

Děkuji (obchodník M1MIPS7116)

v1.9 payment/init mezera na konci jmena

pokud končí customer.name mezerou, vrátí payment/init chybu 400
v dokumentaci jsem zmínku o formátování jména nenalezl, jen požadavek na max. délku 45 znaků

{"resultCode":110,"resultMessage":"Invalid parameter merchantId A3507FwVD9"}

Dobrý deň,

pri volaní payment/init na testovacom prostredí dostáva odpoveď {"resultCode":110,"resultMessage":"Invalid parameter merchantId A3507FwVD9"}. Mohli by ste mi prosím pomôcť?

httpOptions:
{"host":"iapi.iplatebnibrana.csob.cz","port":443,"path":"/api/v1.9/payment/init","method":"POST","headers":{"Content-Length":758,"Content-Type":"application/json"},"allowedTryouts":3,"tryoutDelay":20000}

Payload:{"merchantId":"A3507FwVD9","orderNo":"2424170005","dttm":"20230920153640","payOperation":"oneclickPayment","payMethod":"card","totalAmount":100,"currency":"CZK","closePayment":false,"returnUrl":"https://test.a.rest.taxi.hopintaxi.com:6001/customer/cards/regResponseCSOB?lang=sk","returnMethod":"POST","cart":[{"name":"Svez.se","quantity":1,"amount":100}],"merchantData":"2424170005","language":"cs","signature":"Hot/7NVp8a5XEamIBYCErDzFPWV2HapEbXCRBPhKcJh0znYkg8qnb1+jPOflE4QipLyt7N56OGNaMT0lM0QmCnT9v+qWWBLF2IaYCCU6WObt61Du2GzAfMMUviHo9S0V3ZrnARDCY1wtCj5gvVEvhCWHPlD+14/f1lrps9WeJWtPYHSq+dxCTvGxhCkqwrHIYXQGEvbIqwulNZGSQ042qti4amd6Dmf25J8QhzaxCkc2BZx+AFMtsAWTXt2LbTZDEfPFWIpmriErrCA65ztU5wwpk0FAXcPiA5FOvFy2BzvZmRpKzCYg8sNsCulh7wRjHATdlte/JFeC0Qf5OPZ3dw=="}

Částka tokenizačni (úvodní) platby?

Dobrý den,

potřebujeme-li tokenizovat kartu (OneClick), dočetl jsem se, že pro úspěšný průběh je nutné založit iniciální transakci v částce minimálně 1 jednotky měny.

Nicméně, jak to řešit, pokud potřebujeme kartu pouze tokenizovat bez toho, aby se zákazníkovi platba v konečném důsledku strhla z účtu?

Protože například u CZK to takový problém není, jedná-li se o 1 Kč, což není moc. Ovšem máme-li bránu v EUR, 1 EURO je už mnohem větší částka... Standardně se dělají úvodní transakce 1 centové.

Je tedy možné úvodní transakci refundovat? Je možné už před zaúčtováním, nebo až po zaúčtování? Jak je to s poplatky (a fixními poplatky za transakce)?

Děkuji.

Google Pay - nefunkcne overovanie podpisu (poradie parametrov)

Ahojte,

viem ze tu nieco podobne bolo uz reportovane v inom issue #8 (comment) podla komenarov fixnute 19.7. ale zda sa ze tento problem stale pretrvava minimalne na integracnom prostredi s rovnakymi priznakmi, vsetky ine overenia podpisov funguju spravne az na toto.

Prijate data

array:5 [
  "resultCode" => 0
  "resultMessage" => "OK"
  "dttm" => "20230807200943"
  "signature" => "PODPIS"
  "initParams" => array:16 [
    "apiVersion" => 2
    "apiVersionMinor" => 0
    "paymentMethodType" => "CARD"
    "allowedCardNetworks" => array:2 [
      0 => "VISA"
      1 => "MASTERCARD"
    ]
    "allowedCardAuthMethods" => array:2 [
      0 => "PAN_ONLY"
      1 => "CRYPTOGRAM_3DS"
    ]
    "assuranceDetailsRequired" => false
    "billingAddressRequired" => false
    "billingAddressParametersFormat" => "FULL"
    "tokenizationSpecificationType" => "PAYMENT_GATEWAY"
    "gateway" => "csob"
    "gatewayMerchantId" => "MERCHANT_ID"
    "googlepayMerchantId" => "GOOGLE_MERCHANT_ID"
    "merchantName" => "WEB_URL"
    "environment" => "TEST"
    "totalPriceStatus" => "FINAL"
    "countryCode" => "CZ"
  ]
]

Testovany retazec:
"0|OK|20230807200943|2|0|CARD|VISA|MASTERCARD|PAN_ONLY|CRYPTOGRAM_3DS|false|false|FULL|PAYMENT_GATEWAY|csob|MERCHANT_ID|GOOGLE_MERCHANT_ID|WEB_URL|TEST|FINAL|CZ"

Mozno by bolo fajn pridat nieco podobne pre debugging na styl REQUEST_TEXT_TO_SIGN len opacne RESPONSE_TEXT_TO_SIGN aby sme vedeli overit ci spravne skladame retazec na overenie podpisu v pripade response.

Možnost debuggingu hodnoty RETEZEC_ZPRAVY pro POST a PUT metody

API v integrační prostředí vrací pro každý POST a PUT požadavek speciální HTTP response header REQUEST_TEXT_TO_SIGN. Obsahuje hodnotu RETEZEC_ZPRAVY sestavenou z parametrů přijatého požadavku (platební brána tuto hodnotu následně použije pro ověření podpisu požadavku). Pomocí této response header si může obchodník zkontrolovat, zda hodnota RETEZEC_ZPRAVY sestavená na straně eshopu odpovídá tomu, co sestaví platební brána.

Dakujem.

OneClick - status timeOut

Dobrý den,
máme na testovacím prostředí zprovozněné platby přes OneClick a potřebujeme ošetřit okrajový případ, který však může nastat.

Popis situace:

  • odešlu request oneclick/init
    -- obržím OK response
  • odešlu request oneclick/process s payId dle oneclick/init
    -- obržím OK response
  • po dobu 15sec periodicky odesílám payment/status s daným PayId
    -- pokud se mi vrátí paymentStatus=(3, 5, 6)
    ---- tak vrátím uživateli info o tom že platba byla ODMÍTNUTA
    -- pokud se mi vrátí paymentStatus=(4, 7, 8),
    ---- tak vrátím uživateli info o tom že platba byla POTVRZENA
    -- pokud se mi vrátí status_response["actions"]["authenticate"]["browserChallenge"]["url"]
    ---- tak uživatele přesměruji na dodané URL pro dodatečnou verifikaci

Otázkou je co by mělo být standardní chování v případě, že nedostaneme od platební brány během 15sec ani jednu z těchto odpovědí? Případně jestli tento problém vůbec může v reálném provozu nastat.

  • platba je v tomto případě stále v procesu tj. paymentStatus==2

Děkuji

v1.9 payment/status OneClick a actions vs extensions

Zdravím,

zkouším na testovacím API provolávat endpointy nové verze API a v rámci zkoušení platy OneClick a provolávání endpointu payment/status jsem narazil na to, že se po provolání endpointu oneclick/process vrací položka extensions zanořená do položky actions.

Postup pří kterém na toto chování narážím...

  1. Založení OneClick platby na platební bráně, provolání oneclick/init a obdržení odpovědi OK
{
    "payId": "a5be9978a3ba@IB",
    "resultCode": 0,
    "resultMessage": "OK",
    "paymentStatus": 1,
    "dttm": "20230208115356",
    "signature": "av0V3O44/Ubx5XteC0NfAhBRAO+P1LQ81qPe2pS4CFvh4jopFpUyNamH/YvyhSNgWXD2CWeOJUZi/JUgfsjx6YnjBiNWaRWLFsIM3Jrw8N4PBLxb6pWZOOCDd6PLoi2xyBDOmlxLmiZlO0LmmunyCGOBBU/g2l9g2HcHrkRQtoyiKs9sG5VWKafjHXlfam1hiyY+oUtcva4RuNnkn8Vx/aB/OhfAms3sNUBEPzhsRszT1sSNK2536COLIVAqBDiaxRs+SydS7zSOLx1G4qAG1d/hUeMpAzFT/sVw0uqxrBRdy5hoC8OA5lspGtEpDVD/lftyawyIdgUdaZK+7DVWrQ==",
    "actions": {
        "fingerprint": {
            "browserInit": {
                "url": "https://iplatebnibrana.csob.cz/pay/mall.cz/aefd0c00-0b3d-4880-9f2b-5db68effe48e/3ds/method"
            }
        }
    }
}
  1. Zobrazení 1px iframe okna s URL pro fingerprint
  2. Provolání endpointu payment/status a obdržení odpovědi OK
{
    "payId": "a5be9978a3ba@IB",
    "resultCode": 0,
    "resultMessage": "OK",
    "dttm": "20230208115454",
    "signature": "FdY89fb3ltOFGWntB2wkgtyy1en5Y+i5zWDsz7OCWyCH1Uk44J8GhekuLxVoplf033RqkD7W2/LuCVxzl8OZqg12huvUr/pKmbJvNrA48IL8Om2RohB9Y2jubKwnRUzfjHNDm5vnbhiBfeLViGPc7RvANm6LAqTLCpyPstRvBlDJieV8koRR3EueLNEP6dLad2I+Z0DpJvIPvr5zLHA/qX2tP7fwAmStEmBsXwQAY0Tlhwa4xnBKYn7A1wM2uxJhfO29tEQttIreI5sM7jEyrC5eErChGlZUyOYIcRK+AmMEXFxTFzDYEgYNvD4KS3n7pab3xIkQTGhk0f4N9cPaKQ==",
    "paymentStatus": 1,
    "extensions": [
        {
            "dttm": "20230208115454",
            "signature": "TTzgmXe7yjrhMgN9Zh/tvBlrLgQ8mfFeGOWOpSeibE6aF+tDuHpuspdD1SUC1GGj6V1d9WbqgwR6xLCmrJJTh9pfpbT4hOdu4+0UGtSPk3nqno96v524+B8L9gof7U1Fioq64My43+6+APjWPtr6asWBf933B+3jNCv59HfL3+PPQOGmkUznA6TtLgNutFky6zSpuoSxSrV/mB7vVpGpOSoGhAoMP6bdxKLpK4wTTFvQq/x69sfO6YO94x2QjAgUKzhmhMWwCRurZ0jomDysWKk1+RPFZszCmLuxw3u4brz3u/zP3pgHNR6kEavHfzehTGU4wynXV9pJLLUsqH7M/g==",
            "extension": "trxDates",
            "createdDate": "2023-02-08T11:53:56.323Z"
        }
    ]
}
  1. Spuštění zpracování OneClick platby, provolání oneclick/process a obdržení odpovědi OK
{
    "payId": "a5be9978a3ba@IB",
    "resultCode": 0,
    "resultMessage": "OK",
    "dttm": "20230208115551",
    "signature": "miHzpBFl5WA7IaIl3bP9spI5XvfF/DISS0yomZ+CVi8Xg1JcNNH1NtMCFjElJ6JLtCB5xD87r77EPWT0KAI39F1iTVWUNg2lVbAV6sQCLTsW6dPhSd5b4SmEW4hU6DWz3o6Y/2tp51pJWr4U1K+gzJeIlq7+OpLMpjO7W/3cSpcoPxf2SbIIYUdQObi3L3z2LAdtjrchg8ue9qJh/zC8jeXGs/oejWy3kqIbTCSQzo7gXB5n5flgjB4wfhlLb19QF1cFbEPiNCSFvNKyzccjYTOVqw1HfyrjlYGtOMHRIbNtkJdt/cnfN21uhcac9ZoZ1gjliZ7h1lfgDgNf3N3omA==",
    "paymentStatus": 2
}
  1. Provolání endpointu payment/status a obdržení odpovědi Tady to nesedí???
{
    "payId": "a5be9978a3ba@IB",
    "resultCode": 0,
    "resultMessage": "OK",
    "dttm": "20230208115603",
    "signature": "nxoU4cxb6fQcMhJf5BQTKZM7wj5aNgQxKDY3knOVlRmYmW/FSm5pVECLZ59jIDgXRkqkPiSIQFb1XcebZgdtLkDHUWvCw2LiaNjbvlk7jnZ7VjjZoi9TaxQK7OOE0fIlOfRUb9YlnQkyn6zNERxxsnDsuAbjGQYj9aDC8bkVejH+QXwbumu6SEJAwrks6bDL3Bg9DtF3np5sPKImaCs1+mnNretb4qqYy2DDGziupI2Wo1MAECviTE9z6eHu8p7Ed3EdnlEknbctL2pygfQcvV2H5fFNf11Vf7UHuOO+Co7mlbGDEMFlfXa60zG8fGJ3awVg56TX75bYYYWmyBExww==",
    "paymentStatus": 2,
    "actions": {
        "authenticate": {
            "browserChallenge": {
                "url": "https://iplatebnibrana.csob.cz/pay/mall.cz/aefd0c00-0b3d-4880-9f2b-5db68effe48e/3ds/challenge",
                "method": "GET"
            }
        },
        "extensions": [
            {
                "dttm": "20230208115603",
                "signature": "QZ3/BfjwQihhE6duVyzVczQA+arDORztTXDnndMqdmP9+ony+R9OTfaImy+WW3pgXpkovRyTlidUQBNkBtZzEtzXGJWSRdZ0CX3CLzhe8jZdfe+VQ8U5KySkfqzWZO0ShGPRqtPfb1hD0NDb2Yz6cDUTbKq0JZc8Q/iPw1NL6SRod5mMy0v/BmTIIXDv8a0fBpUdC85GjAfNmDSucyEGk9ouFDs7J3WS3z941+gjzFBt/q5LYOkXk1YRNdH5tq451Q4UQUOSXxlbRx26FbiotB3hltUAvD0KRkwekWdsQxG8cVSpLIv81UjJgvAyQ/qthf3a/CqyKJy0B48APrgHbg==",
                "extension": "trxDates",
                "createdDate": "2023-02-08T11:53:56.323Z"
            }
        ]
    }
}
  1. Otevření URL v prohlížeči zákazníka pro provedení vlastního potvrzení platby
  2. Provolání endpointu payment/status a obdržení odpovědi OK
{
    "payId": "a5be9978a3ba@IB",
    "resultCode": 0,
    "resultMessage": "OK",
    "dttm": "20230208115644",
    "signature": "HTOAb6941gO8o3USErOWrYJTd+OYbsWv9D+cMuNNs0hgNnLuJyvcnjV7n435AWr5K0Y3ZzYxQdyhnn/1Kv63vKkwzP2ilG1032TupJxtxJKSq/HHwh0obi2OEqNXJO4iz5+z2SZZwfG9zUCtv+6PdZcZiBcyLen/FhP1thiK1NHLswKoW/cl7nIVCi57TubXFKGGMGzl33e2Ufrsi7sxRvipm78vhPQAW24Dd8XWPaj3Ao+xwLqEgUJBuz/19Xjx+xwaBNo4PA9T/Ha6+7n3d3mA1NyQr2YQo/GHRcFn+WKKyYiVWxUzGe1flzlH+YD2UepkOtdgOd6J8H82sL12zA==",
    "paymentStatus": 7,
    "authCode": "570613",
    "extensions": [
        {
            "dttm": "20230208115644",
            "signature": "E5hEOA6Y3dRGftxFxFL6YhYTW9g9hLO1R8cXsNBhIewddnUrTPrGPghZmZWFHMlb7JHg8BOjkWm6JLHZZTHeTSfbS61vQepjaq9gKTp5/FIQRIHlTbfRQXu+Jvi30KuV1Mpl2kT8OFK6S+5UVPhx4P5twI6us8lrFJGi5SLCp/FIkeh54iz8DWCI04JdJdioKHOSIRPguiMWNny0nPp0H2I/cOHCDY31mUe46AcUcscCtZ+x24gSLk3M4RAVgW5Q5K+kVioXzxsGKgs2c6r3aibMjHqXEjObmqXNeDXKoPI3qL4ecRyL35KhRnc0yKK4wEl97D0LlcZOrENh01e7Kw==",
            "extension": "trxDates",
            "createdDate": "2023-02-08T11:53:56.323Z",
            "authDate": "230208115636",
            "settlementDate": "20230208"
        }
    ]
}

Problém tedy hlavně je v případě že se z endpointu payment/status vrátí položka actions ve tvaru...

    "actions": {
        "authenticate": {
            "browserChallenge": {
                "url": "https://iplatebnibrana.csob.cz/pay/mall.cz/aefd0c00-0b3d-4880-9f2b-5db68effe48e/3ds/challenge",
                "method": "GET"
            }
        },
        "extensions": [
            {
                "dttm": "20230208115603",
                "signature": "QZ3/BfjwQihhE6duVyzVczQA+arDORztTXDnndMqdmP9+ony+R9OTfaImy+WW3pgXpkovRyTlidUQBNkBtZzEtzXGJWSRdZ0CX3CLzhe8jZdfe+VQ8U5KySkfqzWZO0ShGPRqtPfb1hD0NDb2Yz6cDUTbKq0JZc8Q/iPw1NL6SRod5mMy0v/BmTIIXDv8a0fBpUdC85GjAfNmDSucyEGk9ouFDs7J3WS3z941+gjzFBt/q5LYOkXk1YRNdH5tq451Q4UQUOSXxlbRx26FbiotB3hltUAvD0KRkwekWdsQxG8cVSpLIv81UjJgvAyQ/qthf3a/CqyKJy0B48APrgHbg==",
                "extension": "trxDates",
                "createdDate": "2023-02-08T11:53:56.323Z"
            }
        ]
    }

...vzheldem k tom, že s daty dále pracujeme, tak nám nesedí typy, kdy položka actions by měla obsahovat pouze objekty fingerprint nebo authenticate viz https://github.com/csob/platebnibrana/wiki/Metody-pro-OneClick-platbu#actions-data-

Dotaz na parametry OneClick platby v API 1.9

Dobrý den, mám dva dotazy ohledně OneClick platby:

  1. Proč jsou v metodě oneclick/init povinné parametry returnUrl a returnMethod, když redirect může nastat pouze pokud je parametr clientInitiated nastaven na true?
  2. Je možné volat metodu oneclick/init s parametrem clientInitiated vždy nastaveným na false, tj. i když je zákazník přítomen?

Děkuji.

Nelze použít u transakce tlačítko Reverzal

Dobrý den, nedaří se nám aktivovat platební bránu. Nelze totiž udělat požadovaný reverzal, abychom splnili poslední krok v testu platební brány. Po kliknutí na tlačítko "Reverzal" se objeví hláška "Služba není momentálně k dispozici. Zkuste to prosím později.". Už tam svítí dva dny. Díky za pomoc.

oneclick/echo response v případě chybového status kódu

Dobrý den,

prosím o příklad odpovědi z oneclick/echo v případě, že je povolená extension maskClnRP, a že šabloně, resp. kartě vypršela expirace (status kódy 710, resp. 720).

Rád bych si ověřil, že i v těchto případech je součástí odpovědi maskované číslo karty.

Platba na míru

Dobrý den, pracuji na implementaci plateb na míru. Na testovací bráně se mi nedaří takovou platbu zadat, dostávám odpověď 110 - Invalid payOperation

request POST: 
URL: https://iapi.iplatebnibrana.csob.cz/api/v1.9/payment/init
data: {"merchantId":"A4163zE8IY","orderNo":"14","dttm":"20230801122219","payOperation":"customPayment","payMethod":"card","totalAmount":1000000,"currency":"CZK","closePayment":true,"returnUrl":"http://twisto.dev/","returnMethod":"POST","cart":[{"name":"Testovaci nakup","quantity":1,"amount":1000000}],"language":"cs","ttlSec":600,"customExpiry":"20160630120000","signature":"FWRYSVn/pNktTfwIrCbRC98oz5wQBe2abjCgZ59gUngpvip8S9yosmcuC3Hig2BQfIYcYUaQmmhjF30OYHTl7d3wC5Kv6dipYjOVs6PEg2TvjEi5H3bnO/EGL4uIXr3vcW77bRLO0C4/6CTpkEJbFE2RCFCbNDOLnlDSyG/4sLGdFzjfJTR774sqgguvjmExOr1PcxdAQwr8QqQPohlfoTm5mdMlhFHquXO9ywRbTljhCzqscrH2C1CD5ujU4uSNlLhc8roeiV5+ms+5lBejz+yh9DMYS8e5iyBVSg5MpzJPDOiQR3ER6E4T9LZsRlicP63jD+mXVlHBiQtCSq0FbA=="}

response: [200]
data: {"dttm":"20230801122219","payId":"","resultCode":110,"resultMessage":"Invalid payOperation","signature":"PH+fmGlqbJAaaget1aUDvCQKwHbrZ1SWoZasFzhjaiJ/jAWWn01TSEe6NvS6LuXQtrpSEfQ5J2LviOZUsZnhRtoBhopNNi3YNr33CPrfjacu9zD+pNp85ID/wnKeTEM+TkA8UeJJdFCI/f7/cO+pINQPfkfraCoPgkJUMCSP0cmubHEJH3F8NCzfXGxCJlk9tOCm+kpD/6W+GotY/sIASz/WMUDoRIBte8/zIfopE8MxlRiy7tNzTZERmt/WSmPBxQx6cgKqORe2wRspRwNmKIespWc+YG6jcV/DZ2iCyw9tCicdIwvLMQ3PLK81l8WqqanxADutGGlX3xNOxYP9gA=="}

Přitom platba s payOperation jako payment či oneclickPayment je inicializována správně (ostatní parametry beze změny), např.

request POST: 
URL: https://iapi.iplatebnibrana.csob.cz/api/v1.9/payment/init
data: {"merchantId":"A4163zE8IY","orderNo":"14","dttm":"20230801121541","payOperation":"payment","payMethod":"card","totalAmount":1000000,"currency":"CZK","closePayment":true,"returnUrl":"http://twisto.dev/","returnMethod":"POST","cart":[{"name":"Testovaci nakup","quantity":1,"amount":1000000}],"language":"cs","ttlSec":600,"customExpiry":"20160630120000","signature":"POraXKaaa8rZ3WvrfOzC942aB8IBxa35XYs0/FfG20Or+y8HdlLGQPYlhJYNsyb4xIUgS34WTR5ziZA7diwjVk860GMAxf/4AfmpXsO0WG79nJThZ6UCaKlg+HZTaVuO24X+1oz0bTVMs9onXde6swxkgpOauBAfrcLcF2PBe9HrYG82Yr4R6OgQrxF8gtd0EDuwFbxoUC2XpgdoCIbelUtBFXLnvRyaiXxFjG+HJm8DcvLarPdBEWa+tYBT2G06W4z8muzGKIxcSJ43vzGSbJ0DgeRBNsNchTfQNWiGFgjUQAOHjjN9eJIEksa6rzQDjiF15yaDzZtseC7D93zYwA=="}

response: [200]
data: {"dttm":"20230801121541","payId":"4a1c799c9409@IH","resultCode":0,"resultMessage":"OK","paymentStatus":1,"signature":"Dx1M9yssaEXLfFNFDf7+I2e31nY2SV3HX0mU399bUOb2diQARilw7OdkIQWBTMmyCfAl3qZxDqAjsnLGw/GCNRCz5fs6y/rYk3ggmlsRpdn5aOK3dJyDaBuLBhl1IHv2ERmnvTQBzd6wH9ib5iQveOPf2jltxtcQwLQn/YRQIWZ388RwmUQbFfDFscEGaKPU/SEO1yN7ZWlvd/wMDuzRydiiL4jSFw8DGUKFhjoNXcJaG1ttxMMRhuZmL3AS5YCluTA9szH3gXPdQqW5Pk5HAdhktSA021BaUCdNrsiFOwl+I35riCUmCYiXlLtsKR5CRO0cq0DtLIKQrheQmFUv9g=="}

Domnívám se, že platbu na míru vytvářím správně dle návodu pomocí hodnoty customPaymentv položce payOperation. Múžete prosím prověřit, zda testovací platební brána správně podporuje platby na míru, případně jakou chybu dělám při vytváření požadavku?

Předem děkuji. S pozdravem
O. Stefan

implementacni vs produkcni volani

Dobry den,
prosim o info, jestli je neco potrebne zmenit pri volani s produkcnim setupem. Testovaci volani funguje OK.
Po zmene setupu na produkcni (2x adresa, 2x klic) se v Response nenachazi Result a mame jenom hlasku :
An unexpected error occurred on a receive. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
image

Opakovane platby

Dobry den,
ndeari se mi vytvorit jsem si novou platby OneClick. Snazil jsem se nasledne vytvorit opakovanou platbu. Vraci se mi kod 404 Not Found. Nize zasilam cely HTTP pozadavek. Muzete se prosim podivat, v cem je chyba? Inicializacni platbu jsem vytvarel dnes rano.

Dekuji

* DATE 2024-01-22 08:26:11

*   Trying 193.245.38.172...
* TCP_NODELAY set
* Connected to api.platebnibrana.csob.cz (193.245.38.172) port 443 (#0)
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: jurisdictionC=CZ; businessCategory=Private Organization; serialNumber=000 01 350; C=CZ; L=Prague; O=Ceskoslovenska obchodni banka, a. s.; CN=platebnibrana.csob.cz
*  start date: Jul 17 00:00:00 2023 GMT
*  expire date: Jul 16 23:59:59 2024 GMT
*  subjectAltName: host "api.platebnibrana.csob.cz" matched cert's "api.platebnibrana.csob.cz"
*  issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert SHA2 Extended Validation Server CA
*  SSL certificate verify ok.
> POST /api/v1.9/oneclick/init/ HTTP/1.1
Host: api.platebnibrana.csob.cz
Content-Type: application/json
Accept: application/json;charset=UTF-8
Content-Length: 632

* upload completely sent off: 632 out of 632 bytes
< HTTP/1.1 200 OK
< Date: Mon, 22 Jan 2024 * Hostname api.platebnibrana.csob.cz was found in DNS cache
*   Trying 193.245.38.172...
* TCP_NODELAY set
* Connected to api.platebnibrana.csob.cz (193.245.38.172) port 443 (#0)
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: jurisdictionC=CZ; businessCategory=Private Organization; serialNumber=000 01 350; C=CZ; L=Prague; O=Ceskoslovenska obchodni banka, a. s.; CN=platebnibrana.csob.cz
*  start date: Jul 17 00:00:00 2023 GMT
*  expire date: Jul 16 23:59:59 2024 GMT
*  subjectAltName: host "api.platebnibrana.csob.cz" matched cert's "api.platebnibrana.csob.cz"
*  issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert SHA2 Extended Validation Server CA
*  SSL certificate verify ok.
> POST /api/v1.9/oneclick/start/ HTTP/1.1
Host: api.platebnibrana.csob.cz
Content-Type: application/json
Accept: application/json;charset=UTF-8
Content-Length: 441

* upload completely sent off: 441 out of 441 bytes
< HTTP/1.1 404 Not Found
< Date: Mon, 22 Jan 2024 07:26:11 GMT
< Content-Length: 0
< Connection: keep-alive
< Allow: POST,GET,PUT,OPTIONS,HEAD
< Cache-Control: no-cache, no-store, must-revalidate
< Pragma: no-cache
< Expires: 0
< Set-Cookie: SECRET=!/7qbGm6GW1bN8XX0DXgH9oKbumlwzwjc5vgCCGKpLQFnSH/5PUtvI0SeNeUIAtvHelkV3v4Kf9AAwUyovUCZTDOuvw1dAFnEaD36ao7X7A==; path=/; Httponly; Secure
< Strict-Transport-Security: 31536000
< X-Content-Type-Options: nosniff
< Content-Security-Policy: default-src 'self';
< X-XSS-Protection: 1; mode=block
< Set-Cookie: TS0169d752=016509e807cb3f8f8e0014a900fb3829426f622b8b3e2bb0696ec4009977ea81da4b82cd8bdd9cb93674353bf80bf6ea0e72808d53a3f80fb52498ad5d2533a1f7c14b71ca; Path=/; Secure; HTTPOnly
< 
* Connection #0 to host api.platebnibrana.csob.cz left intact

* REQUEST
{"merchantId":"M1MIPS1182","payId":"6427901e1dd0@JA","dttm":"20240122082611","signature":"lfiMnVuGHvIGP9GuEpuJoZcEdXBiNyMvtwvQiU7eFOjFG1HLsvqwEGNFsp58fHpoOYSQcR1x\/ku4FDT4hvQ84Zc4NSB6hpFYCe0J+iTycnDMV3tMTj\/7lvvatJS6pdaOC3cK\/XqcgajFJElwK4Qw6nMOkwbJyLYeCKRceZqssN9byi+lqdRjrY\/kdkUL4HyOB+hsu177gveJafTZKtsEE8N8GpVQcHzkDd0mK6c7AlakNyc1qbsq+zsUYOBGKu6sVuxRI62t4Q47iTwohH\/GfQTiYeZ9dtYib+7we+eOKpCn4c0OL5riJkyvfZnUSxwh6R3j5lx5UrG4IJ+K1y26Fw=="}

* RESPONSE

Špatná data v rozšíření trxDates

Rozšíření trxDates, které má vracet dodatečné datumy k platbě kartou, vrací čas v nesprávné časové zóně.

Příklad:

  • nákup uskutečněn via Google Pay na integračním prostředí 21. 6. 2023 ve 23:29 lokálního času (CEST)
  • CreatedDate ale obsahuje "2023-06-21T23:29:07.670Z", což znamená 2023-06-22T01:29:07.670 lokálního času
  • AuthDate také obsahuje "230621232922", což je stejný případ

Můžete to, prosím, opravit?

Dále by bylo vhodné srovnat formáty těchto datumů do konzistentní podoby, momentálně je každý ze 3 vracených (CreatedDate, AuthDate, SettlementDate) v jiném formátu.

V neposlední řadě nám ze status endpointu chodí i extension trxDetail, nikde jsem nenašel její popis. O co se jedná?

v1.9 oneclick/echo rozšíření, špatný formát expirace

Zdravím,

zkouším na testovacím API provolávat endpointy nové verze API a v rámci endpointu oneclick/echo jsem narazil na to, že se mi v poli extension, konkrétně pro rozšíření maskClnRP, v poli expiration vrací hodnota, která je špatně naformátovaná. Dle dokumentace https://github.com/csob/platebnibrana/wiki/Data-o-kartě-pro-OneClick-platbu by měl formát data expertce být MM/YY, ale přijde čtyřmístné číslo a ještě nějak jinak uspořádané.

Například pro OneClick šablonu cddd697b88be@IB chodí pro provolání endpointu oneclick/echo "expiration": "3412"...

{
    "origPayId": "cddd697b88be@IB",
    "resultCode": 0,
    "resultMessage": "OK",
    "dttm": "20230208114220",
    "signature": "MJ1Y4nb/rwHdJXSyVYP6GVVgY/upBfBPpOe8jk4VI/t381thmwR4p9+Mw8pWcsq7Cy8A9PEoc14BrCMfYtLxQ2Y+6IQDamSSZb6gyxwyBtkOPtLUCajVO4qaUUvIqSNsDLms2JANyh1/6SXMb4kU3r7TeGeas7eVPOTW+ftl1j8euBKUd4APHkkPgfVgB1MfTbbbIG5ChH90YTeIpUdAul2BOirtdEQR5zoj6ZSfRqZXcRmG/h/sxdsB23e+rMViBlnLbtr0f0jdrgYbquE7TWqDM7NWhMY0QFs97idCC/tK8ovi/Vz67Et8iXbkrhdP8NKLha+8QjRJa/A6SPyK5w==",
    "extensions": [
        {
            "dttm": "20230208114220",
            "signature": "atgohXpD17IbKaaiAqBTDDy+Rx++/sUYvuAa71f0qc+hUudxqCJ2TUcaoa8LzRSFpWeYKzRhlgiAKNqzC1uZecxl0IW2e8+AMRotvzPMvHa3WdkNrxdGlHLxPrjl5Efi7VAq5DOgq76M1rK9vsvOQp23n1uUJNVhWID5gQWv/huQrcOBt5yBAGadiOf/O5TkHefOmh+kFDqKhbvO8S5y/th/w0tQO5qCrgy+kROtREnScO/LOEoVoCMgeLtveaml9gLjkxEO/lMUgv2zrIX51bj66kw1gNBit5E1noqT+v609MGkA6KWEmOSasQowlJODgXF07XBUqtdSdceRjQKFg==",
            "extension": "maskClnRP",
            "maskedCln": "****0004",
            "longMaskedCln": "400000****0004",
            "expiration": "3412"
        }
    ]
}

Ale pokud pro tuto platbu zavolám endpoint payment/status tak expirace přijde v očekávaném formátu "expiration": "12/34"...

{
    "payId": "cddd697b88be@IB",
    "resultCode": 0,
    "resultMessage": "OK",
    "dttm": "20230208114159",
    "signature": "qfpr/iQnMxjiBpELpQh7xdrfe8ziyyT6ELoNeBUAkJX/Rrh3TNLUUFWOnQ84/mEUPHuyZStQCIjAk7F0H5bPNWlA7PuGOEw2W7HSRA9Mw9qnLZXbZMBwL/7pbKZyA7OIBF4JfM9xGZGvvp9KxUwGn6dYs0S/LFYV5lEFJf/8sJ1UE4XY8vat4qrTOkjO4BaWeiUvTLLRq39qHZU+Vgo3tNj2OTvWGpnKnkSJHG0+kvgEOthROn31QaehHIOYgM9caQ+Rfpylif/rUVIbKzkAPf0mA3frchvVsaTxUT7l/vVDthTD2K04Lv16jCFIA+92nDE0K+x3GrPbuapUAOfDRg==",
    "paymentStatus": 7,
    "authCode": "167916",
    "extensions": [
        {
            "dttm": "20230208114159",
            "signature": "mxzqs0PzaE0jQR4TInKgxRdktWJqCel3F0bbRdUKP594R4eiKpQucLXDt6YiAllQOE816jXNesRKj3+qgyh1InzMg2zGPkb9QC3ZXEZfH8291Kud6HXwZDNm26+inZMc+CElCgp7JVr1JC9eGZ1zdr/ECyEzswUg8yk3JJlTKGmd2Ft9M/DTHeGrkcwrjuLCR1MyMe/6v5Tt5HfpdN4ml3y+9vnwYZ91+2TPLn2WbMCosM202JwxS2UbMH7XZQvIALw6k+huJz+vrOOPIBPIzRZq73aIYMT+R6nf/SeacRgw+Pa4IrrXv8yoKp7l9h5pHzRplgimq8+YhoK8VTWdpQ==",
            "extension": "maskClnRP",
            "maskedCln": "****0004",
            "longMaskedCln": "400000****0004",
            "expiration": "12/34"
        },
        {
            "dttm": "20230208114159",
            "signature": "kuI47a9Ve5diJB4eLjPRIcn1NlphQTzCy/Muv/nxR32noerHZAEQswDaGLeuYu4yTPZsj1EGTSSL94kCIXpm+H2KOagO/fWZNQKK6vInvEJaZnX2zfH/tUUGEsyhSZ1b05VZypc0ubKUT4pCmA9h6404302nhpeiOPz4HNRipEXXaDPdQm6TMRljrChy6OyG7isiSWaRrj7kTFa9zJGISIjvot2rNJgBlFcP9dEJT3BYdirWLS2y/VTcWbzQdIH48hSKKSnSI5ABk2NhboM5TAj1f8cA1ISMUBmqt7pK6JtNTQDfxqHILuz/smqv1jjQLas63ktUK5E9SOkBmbtOQg==",
            "extension": "trxDates",
            "createdDate": "2023-02-08T11:30:39.467Z",
            "authDate": "230208113345",
            "settlementDate": "20230208"
        }
    ]
}

Duplicitní VS

Dobrý den,
měl bych pár dotazů ohledně VS v testovacím prostředí.
1.) Je možné nějakým způsobem odmazávat vzniklé transakce v posmerchant?
2.) Je možné nějak dovolit totožné VS pro jeden účet platební brány? Jedná se mi o to, že máme nastavenou pouze sekvenci čísel, kterou chceme využívat a určitě nastane situace, že se nám budou shodovat VS.

Děkuji

Nový ERP, nový eshop, původní brána

Dobrý den,

         dovoluji si Vás oslovit ve věci nasazení platební brány na nový IS a eshop. Již mám v řešení smlouvu s novými podmínkami na Vaši platební bránu, nyní mi jde o technickou stránku věci. Momentálně běží platební brána na webu jp-kontakt.cz na nějakých starších API od roku 2017 (které už ani nebudete dle informací podporovat). 

         Ke dni 1. 2. 2023 budeme zastavovat služby eshopu a přecházet tento den na eshop nový (stejná doména), kde potřebujeme nasadit platební bránu, kterou již vlastně nyní provozujeme (Merchant ID: M1MIPS1601), pouze nějakou starší verzi. 

         Prosím o informace, jakým způsobem bychom měli nejlépe postupovat. Bude k dispozici opět nějaké testovací a ostré prostředí (s novým ID)? Nebo je možné použít stávající certifikáty, které nadefinujeme v novém IS? Neradi bychom provedli postup nějak nestandardně. 

         Mnohokrát děkuji za odpověď a jsem s pozdravem 

Vlastimil Žána

customer.login - přihlášení přes FB/Google a 2FA

Dobrý den,

jaká je správná hodnota nového customer.login pokud se uživatel přihlásil přes Facebook nebo Google login?

jaká je správná hodnota pokud účet používá 2 faktorové přihlášení, tedy jméno+heslo+ověření SMS nebo OTP?

Problém s sandbox čsob - platba kartou

Dobrý den,
Máme verzi 1.8 api a nefunguje nám platba testovací kartou 4000007000010006 kterou beru z vašeho githubu. Platba neprojde. Vyskočí mi následující hláška:

csob_sandbox_err

merchantId="M1MIPS6007"
Transaction ID / PAYID je : a94ca234f901@HG

Můžete mi prosím poradit či prověřit proč to nejde? Potřebujeme nutně otestovat novou funkcionalitu po platbě.

Díky moc,
Ondřej Kadoun

Nefungují testovací karty

Dobrý den,
pracuji na přechodu na verzi 1.9.
Bohužel žádná z testovacích karet na testovací bráně není vyhodnocena pozitivně.
Nefungují ani, když přepnu provozní web s verzí 1.8 na testovací prostředí.
Vždy obdržím hlášení:
image

Stav platby

Nefunkční Google pay v mobilní aplikaci Pid Lítačka

Dobrý den,

obrátil se na nás zákazník s bugem.

Popis od zákazníka:

Google pay mám nastavený správně a v ostatních aplikacích funguje placení bez problému.
Bohužel v aplikaci Lítačka mi při pokusu o platbu vyskočí okénko Gpay, se správně vyplněným Google účtem a zahlásí chybu: U tohoto obchodníka nelze použít žádné platební metody.

Problém bude možná v tom, že v Google peněžence jsem měl 2 karty, jednu starou a jednu novou.
Aplikace lítačka mi stále nabízela jen tu starou. Tu novou viděla, ale nešla vybrat.
Zkusil jsem proto starou kartu z peněženky vymazat. Teď už Lítačka jen zobrazí chybovou hlášku.
Jen zopakuji, že google pay mi ve všech ostatních aplikacích funguje správně, novou kartou běžně platím. Lítačku jsem zkusil i přeinstalovat, ale bez úspěchu.

Zákazníka jsme se dotázali zda nemá nějaké omezení na internetové bankovnictví, popřípadě platbu kartou.

Odpověď:

v AirBank zakázat 3DS uživatel nemůže a ze strany banky by jej měl mít aktivní.
Poslal také screeny ze svého bankovnictví kde je vidět, že má nastaveno potvrzení platby v aplikaci, což by mělo být právě 3DS.

Komentář:

Tento typ bugu je pro nás velice ojedinělý a nevíme, jak s ním naložit. Mohl bych Vás poprosit o radu, jak toto lze řešit. V Lítačce máme tisíce plateb přes Google Pay a tam žádné problémy neregistrujeme. Platba probíhá ještě přes starší verzi, která má v sobě eApi 1.8.

Děkuji

v1.9 googlepay/echo špatný název parametru

Ahoj,

při requestu na googlepay/echo dostávám odpověď:

'resultCode' => 0
'resultMessage' => 'OK'
'dttm' => '20220707080942'
'initParams' => array...

Podle dokumentace by se ale parametr měl jmenovat checkoutParams ne initParams, ten je pro apple pay.

Payload v applepay/init

Dobrý den,
při vytváření požadavku na metodu applepay/init je v requestu atribut nazvaný payload. Tento atribut by měl obsahovat data přijatá od Applu v nezměněné podobě, pouze zakódována v BASE64.

Když ale přijmu data od Applu, zokóduji je a následně přidám do payloadu, dostávám chybu

{"payId":"ea4fbe5c75e3@HI","resultCode":110,"resultMessage":"Invalid payload","paymentStatus":6,"dttm":"20220922192739","signature":"cTtLpWJZLBwPamRLSe0ti8u+O1q1GcdAJd7DAtKXPsHm++VW3tp6wq1QosR/fHoqd22U10ldWYkOyjGOO4aDfCNbIHTs5NAA2kaumOr/l9JR8ALpxK6CkU7uO1ezmY4l9fhrpu2PETZeuLuKLKiuNQkKlVZWQGzlTMTDVqFS4YuJCxNzvaJsAEsZPtDiTgLjFLO7fAxzi2AGIhaml0lrOuZjh5SoD0guetOVSu+Cbu/wgVQ9XOF/rkodr/YDR/pQ6lh70R5uMA5B2tWdYMG4yPygaWNfhVDrZUk5/JtOIltG+MGePxzrirtRciEFYl7Bej7Wsp5swjy2Bsx9xcP4rQ=="}

Můj celý request payload vypadá následovně:

{"merchantId":"M1MIPS4481","orderNo":"329042","dttm":"20220922192738","clientIp":"94.113.70.69","totalAmount":65000,"currency":"CZK","closePayment":true,"payload":"eyJ2ZXJzaW9uIjoiRUNfdjEiLCJkYXRhIjoiTmZlS1N5TytxNVZuWlNiYXZsWGJnajE0NHNjWitnUmtGeVV6NFF4cVFnNUxNcnUwallEZHMrOVFJWW42a1ZKSTk5SURNSkhQRTBjSFR2UmVtcmtpT1JRbTVCcjR1VWNKUzNrMmdHb3dRR0R6QitNbm02RlVjSWNtTGxzVXg4S3VFVFN4VVBQTVh2ZGwva2RSQmJnaTlSU29WY3d3d1hHZmpuMG9hd082Y0VTLzFrclBtTmRUWnJUQWpSeUxiREFkRi9JTWg3UmdIVk9uNGtWb1kreElua1gzOFJLSThvTHRmNUl2TlJ2Z3lwTXg2dnNIUnRxVE5sdWNnNFZ3amhVMGVVeWwxNStaNHg3N2hXV09ubW0zc2VDZE9HMTBqbGcwN1Y2OFFPa0h5QmhJdnowV3MzRHNFK2dDWEpVTm1rUFBOZVN1MWRjcHgxRCtpcXVyRG4zVGNxaWxFYzJLZkRBSGJmbStYRno2cVVHdmhNOXMxa1ZlVG9SNUk5QktldHcxMGNoSGoveVBXczdRR2Y1NEZkUT0iLCJzaWduYXR1cmUiOiJNSUFHQ1NxR1NJYjNEUUVIQXFDQU1JQUNBUUV4RHpBTkJnbGdoa2dCWlFNRUFnRUZBRENBQmdrcWhraUc5dzBCQndFQUFLQ0FNSUlENHpDQ0E0aWdBd0lCQWdJSVREQkJTVkdkVkRZd0NnWUlLb1pJemowRUF3SXdlakV1TUN3R0ExVUVBd3dsUVhCd2JHVWdRWEJ3YkdsallYUnBiMjRnU1c1MFpXZHlZWFJwYjI0Z1EwRWdMU0JITXpFbU1DUUdBMVVFQ3d3ZFFYQndiR1VnUTJWeWRHbG1hV05oZEdsdmJpQkJkWFJvYjNKcGRIa3hFekFSQmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4Q3pBSkJnTlZCQVlUQWxWVE1CNFhEVEU1TURVeE9EQXhNekkxTjFvWERUSTBNRFV4TmpBeE16STFOMW93WHpFbE1DTUdBMVVFQXd3Y1pXTmpMWE50Y0MxaWNtOXJaWEl0YzJsbmJsOVZRelF0VUZKUFJERVVNQklHQTFVRUN3d0xhVTlUSUZONWMzUmxiWE14RXpBUkJnTlZCQW9NQ2tGd2NHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUV3aFYzN2V2V3g3SWhqMmpkY0pDaElZM0hzTDF2TENnOWhHQ1YyVXIwcFVFYmcwSU8yQkh6UUg2RE14OGNWTVAzNnpJZzFyclYxTy8wa29tSlBud1BFNk9DQWhFd2dnSU5NQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURWUjBqQkJnd0ZvQVVJL0pKeEUrVDVPOG41c1QyS0d3L29ydjlMa3N3UlFZSUt3WUJCUVVIQVFFRU9UQTNNRFVHQ0NzR0FRVUZCekFCaGlsb2RIUndPaTh2YjJOemNDNWhjSEJzWlM1amIyMHZiMk56Y0RBMExXRndjR3hsWVdsallUTXdNakNDQVIwR0ExVWRJQVNDQVJRd2dnRVFNSUlCREFZSktvWklodmRqWkFVQk1JSCtNSUhEQmdnckJnRUZCUWNDQWpDQnRneUJzMUpsYkdsaGJtTmxJRzl1SUhSb2FYTWdZMlZ5ZEdsbWFXTmhkR1VnWW5rZ1lXNTVJSEJoY25SNUlHRnpjM1Z0WlhNZ1lXTmpaWEIwWVc1alpTQnZaaUIwYUdVZ2RHaGxiaUJoY0hCc2FXTmhZbXhsSUhOMFlXNWtZWEprSUhSbGNtMXpJR0Z1WkNCamIyNWthWFJwYjI1eklHOW1JSFZ6WlN3Z1kyVnlkR2xtYVdOaGRHVWdjRzlzYVdONUlHRnVaQ0JqWlhKMGFXWnBZMkYwYVc5dUlIQnlZV04wYVdObElITjBZWFJsYldWdWRITXVNRFlHQ0NzR0FRVUZCd0lCRmlwb2RIUndPaTh2ZDNkM0xtRndjR3hsTG1OdmJTOWpaWEowYVdacFkyRjBaV0YxZEdodmNtbDBlUzh3TkFZRFZSMGZCQzB3S3pBcG9DZWdKWVlqYUhSMGNEb3ZMMk55YkM1aGNIQnNaUzVqYjIwdllYQndiR1ZoYVdOaE15NWpjbXd3SFFZRFZSME9CQllFRkpSWDIyL1ZkSUdHaVlsMkwzNVhoUWZubTFna01BNEdBMVVkRHdFQi93UUVBd0lIZ0RBUEJna3Foa2lHOTJOa0JoMEVBZ1VBTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDSVFDK0NWY2Y1eDRlYzF0VjVhK3N0TWN2NjBSZk1CaFNJc2NsRUFLMkhyMXZWUUloQU5HTE5RcGQxdDF1c1hSZ05iRWVzczZIejZQbXIyeTlnNENKRGNnczNhcGpNSUlDN2pDQ0FuV2dBd0lCQWdJSVNXMHZ2enFZMnBjd0NnWUlLb1pJemowRUF3SXdaekViTUJrR0ExVUVBd3dTUVhCd2JHVWdVbTl2ZENCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd0hoY05NVFF3TlRBMk1qTTBOak13V2hjTk1qa3dOVEEyTWpNME5qTXdXakI2TVM0d0xBWURWUVFERENWQmNIQnNaU0JCY0hCc2FXTmhkR2x2YmlCSmJuUmxaM0poZEdsdmJpQkRRU0F0SUVjek1TWXdKQVlEVlFRTERCMUJjSEJzWlNCRFpYSjBhV1pwWTJGMGFXOXVJRUYxZEdodmNtbDBlVEVUTUJFR0ExVUVDZ3dLUVhCd2JHVWdTVzVqTGpFTE1Ba0dBMVVFQmhNQ1ZWTXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVHdGeEdFR2Rka2hkVWFYaVdCQjNib2dLTHYzbnV1VGVDTi9FdVQ0VE5XMVdaYk5hNGkwSmQyRFNKT2U3b0kvWFlYem9qTGRydG1jTDdJNkNtRS8xUkZvNEgzTUlIME1FWUdDQ3NHQVFVRkJ3RUJCRG93T0RBMkJnZ3JCZ0VGQlFjd0FZWXFhSFIwY0RvdkwyOWpjM0F1WVhCd2JHVXVZMjl0TDI5amMzQXdOQzFoY0hCc1pYSnZiM1JqWVdjek1CMEdBMVVkRGdRV0JCUWo4a25FVDVQazd5Zm14UFlvYkQraXUvMHVTekFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQjhHQTFVZEl3UVlNQmFBRkx1dzNxRllNNGlhcElxWjNyNjk2Ni9heXlTck1EY0dBMVVkSHdRd01DNHdMS0Fxb0NpR0ptaDBkSEE2THk5amNtd3VZWEJ3YkdVdVkyOXRMMkZ3Y0d4bGNtOXZkR05oWnpNdVkzSnNNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVFCZ29xaGtpRzkyTmtCZ0lPQkFJRkFEQUtCZ2dxaGtqT1BRUURBZ05uQURCa0FqQTZ6M0tEVVJhWnNZYjdOY05XeW1LLzlCZnQyUTkxVGFLT3Z2R2NnVjVDdDRuNG1QZWJXWitZMVVFTmo1M3B3djRDTURJdDFVUWhzS01GZDJ4ZDh6ZzdrR2Y5RjN3c0lXMldUOFp5YVlJU2IxVDRlbjBibWN1YkNZa2hZUWFaRHdtU0hRQUFNWUlCaXpDQ0FZY0NBUUV3Z1lZd2VqRXVNQ3dHQTFVRUF3d2xRWEJ3YkdVZ1FYQndiR2xqWVhScGIyNGdTVzUwWldkeVlYUnBiMjRnUTBFZ0xTQkhNekVtTUNRR0ExVUVDd3dkUVhCd2JHVWdRMlZ5ZEdsbWFXTmhkR2x2YmlCQmRYUm9iM0pwZEhreEV6QVJCZ05WQkFvTUNrRndjR3hsSUVsdVl5NHhDekFKQmdOVkJBWVRBbFZUQWdoTU1FRkpVWjFVTmpBTkJnbGdoa2dCWlFNRUFnRUZBS0NCbFRBWUJna3Foa2lHOXcwQkNRTXhDd1lKS29aSWh2Y05BUWNCTUJ3R0NTcUdTSWIzRFFFSkJURVBGdzB5TWpBNU1qSXhOekkzTXpoYU1Db0dDU3FHU0liM0RRRUpOREVkTUJzd0RRWUpZSVpJQVdVREJBSUJCUUNoQ2dZSUtvWkl6ajBFQXdJd0x3WUpLb1pJaHZjTkFRa0VNU0lFSURiaG9Bbk9xL2VaNkdOL2lPMnBleTE5aWg2UHV1aTBWKzFOZlp1WGMva3NNQW9HQ0NxR1NNNDlCQU1DQkVZd1JBSWdKYy91QXFPTTNCKzFXb3JrREgxb1VkQ0lWMmltMnZscnB4bytMOUp0Uk53Q0lCS09IRVZDWTNoT3RFL0Ixbld2ZythRExuY1cyUzV3ckV4SzFXVm9aWDZaQUFBQUFBQUEiLCJoZWFkZXIiOnsiZXBoZW1lcmFsUHVibGljS2V5IjoiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFVkJnVnJoc2pGeHJxcE9GR1diQ3ZDNmhBS0xhdFRuMnZLUmFvU0JFZ2RXQ0d4dVlwK1dmbkhoNlQ4ckdicFVlVjI4VVc5bXIwbzBLNCtmNFVkUDNzckE9PSIsInB1YmxpY0tleUhhc2giOiJucDhtN1Q3RU83T2ttY29NWnMzRlpUMzVRVDVQZWpVL3FDSHRUbVhoY2s4PSIsInRyYW5zYWN0aW9uSWQiOiJkOTI1MzY0YjNjN2VmNjU5MTkyYWRiZGEzMDVhOTZiNDAxZjUyMTYwNTM5YmRiYzBlYjAyZDdjYjZhMmU0ODU4In19","returnUrl":"https:\/\/www.myreturn-page.com","returnMethod":"POST","sdkUsed":false,"signature":"eBxPE1JkbH...","extensions":[]}

Přičemž v payloadu je zakódovaný následující JSON, který nám předal Apple

{"version":"EC_v1","data":"NfeKSyO+q5VnZSbavlXbgj144scZ+gRkFyUz4QxqQg5LMru0jYDds+9QIYn6kVJI99IDMJHPE0cHTvRemrkiORQm5Br4uUcJS3k2gGowQGDzB+Mnm6FUcIcmLlsUx8KuETSxUPPMXvdl/kdRBbgi9RSoVcwwwXGfjn0oawO6cES/1krPmNdTZrTAjRyLbDAdF/IMh7RgHVOn4kVoY+xInkX38RKI8oLtf5IvNRvgypMx6vsHRtqTNlucg4VwjhU0eUyl15+Z4x77hWWOnmm3seCdOG10jlg07V68QOkHyBhIvz0Ws3DsE+gCXJUNmkPPNeSu1dcpx1D+iqurDn3TcqilEc2KfDAHbfm+XFz6qUGvhM9s1kVeToR5I9BKetw10chHj/yPWs7QGf54FdQ=","signature":"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","header":{"ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVBgVrhsjFxrqpOFGWbCvC6hAKLatTn2vKRaoSBEgdWCGxuYp+WfnHh6T8rGbpUeV28UW9mr0o0K4+f4UdP3srA==","publicKeyHash":"np8m7T7EO7OkmcoMZs3FZT35QT5PejU/qCHtTmXhck8=","transactionId":"d925364b3c7ef659192adbda305a96b401f52160539bdbc0eb02d7cb6a2e4858"}}

Možná něco přehlížím, ale netuším, co jiného předat v atributu payload, abych se dostal dál.

Díky za radu!

EDIT:
V api 1.8 data předaná v atributu payload fungovala správně. Payload byl předáván v requestu metody applepay/start. Nyní stejná data vkládáme do applepay/init.

Žádost o stažení "3ds-method-notification" na iOS

Dobrý den,

na ibráně jsme narazili na podivnou žádost o stažení souboru při ověřování fingerprintu na iOS/iPadOS zařízeních. Děje se to u apple pay, oneclick a dokonce to vyskakuje i při zadávání čísla karty přímo na ibráně.

file

Na Androidu ani Windows k ničemu takovému nedochází.

MID M1E3CB0860 ale na tom to asi závislé nebude.

Potřebovali bychom primárně vědět jestli je to problém jen testovacího prostředí, nebo se to děje i v produkci...

v1.9 oneclick/process vždy vrací "Wrong signature"

Zdravím,

zkouším na testovacím API provolávat endpointy nové verze API a v rámci endpointu oneclick/process jsem narazil na to, že se mi pokaždé vrací odpověď...

{
    "resultCode": 110,
    "resultMessage": "Wrong signature"
}

Zkoušel jsem vše několikrát překontrolovat, ale už nevím kde by mohla být chyba. Podepisování požadavků provádím stejně jako v případě v1.8 a dokonce i provolání všech ostatních endpointů nové verze, až na tento jediný, funguje bez problémů.

Podle "resultCode": 110, bych čekal, že bude chyba v názvu nebo hodnotě nějakého parametru, ale ostatní parametry by měly být správně. Tak musí být nějaká špatnost při generování samotného podpisu.

Například pro požadavek...

{
  "merchantId": "M1MIPS1679",
  "payId": "a815d83f0f24@HG",
  "dttm": "20220703113906",
  "fingerprint": {
    "browser": {
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15",
      "acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
      "language": "en-GB",
      "javascriptEnabled": true,
      "colorDepth": 24,
      "screenHeight": 2160,
      "screenWidth": 3840,
      "timezone": -120,
      "javaEnabled": false,
      "challengeWindowSize": "05"
    }
  },
  "signature": "base64-encoded-response-signature"
}

Vygeneruji RETEZEC_ZPRAVY ve tvaru:

'M1MIPS1679|a815d83f0f24@HG|20220703113906|Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15|text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8|en-GB|true|24|2160|3840|-120|false|05'

Na první pohled se mi to zdá správně. Nebo jsme něco přehlédl?

Platební brána - více bankovních účtů

Dobrý den,
zkoumám možnosti nabízených platebních bran. Je možné Vaši platební bránu napojit na více bankovních účtů? Nebo je platební brána vždy fixně vázána na konkrétní účet?

Jde mi o situaci, že klient požaduje, aby platba za produkt X byla připsána na účet A a platba za produkt Y na účet B.

V takovém případě by bylo u Vás nutné sjednat více platebních bran?

Děkuji za odpověď,
DK

Vyžadování 3DS pro konkrétní platby

Zdravím, měl bych asi spíš dotaz na funkcionalitu. Od klienta jsme dostali požadavek na zjištění, zdali by šlo u některých plateb vyžadovat 3DS ověření ze strany obchodu?

Jde primárně o farudy v případě, kdy například dochází k nákupu elektronických licencí pomocí odcizené platební karty.

Klient by tak chtěl vědět, jestli je možné, třeba právě pro nákupy digitálních produktů, 3DS po platební bráně vyžadovat?

Vím, že pomocí dodatečných dat o nákupu jde například specifikovat způsob a rychlost doručení, jestli se jedná o elektronické nebo fyzické produkty, ale nevím jestli se na základě toho dá vyžadovat důkladnější ověření platby, nebo si toto řeší platební brána sama bez možnosti tuto skutečnost nějak ovlivnit.

Předem děkuji za odpověď, Sýkora.

Mac Safari Auto-fill: Safari nenabízí vyplnění CVC kódu

Opět jdu s feedbackem pro automatické vyplňování, tentokrát na desktop verzi Safari v Mac OS.

Vždy chci využít uložené údaje o kartě:

Screenshot 2024-01-10 at 15 28 58

Vložení údajů funguje pro číslo karty + platnost karty, nicméně pole CVC kód nenabízí vložení uloženého kódu. Hádám, že jej Safari nebere jako další pole pro informace o kartě:

Screenshot 2024-01-10 at 15 29 05

(screenshot ukazuje chybějící systémovou ikonu karty v CVC poli i přes to, že kurzor je umístěn v CVC poli)

Poznámka pod čarou: můj workaround je vložit si CVC kód do pole "číslo karty" a tento kód si zkopírovat, následně vložit ono číslo karty, poté v dalším poli vložit platnost karty, a v dalším poli (CVC pole) vložit zkopírovaný kód.

Nejasnosti ve funkci applepay/process.

Dobrý den,

pracuji na implementaci Apple Pay na náš eshop a mám nějaké nejasnosti ve funkci applepay/process.

Konkrétně přesně nevím, co mám dělat s „actions.fingerprint.browserInit“, které dostanu po zavolání apple/init.

V dokumentaci se píše „je obchodník povinen na straně e-shopu vytvořit 1px iframe a otevřít v něm příslušnou url. V prohlížeči zákazníka se tak načte stránka platební brány, která obsahuje příslušný kód pro provedení otisku.“

Nějak nemohu přijít na to, o jaký kód se jedná.

V následném odeslání applepay/process se žádný kód nevyskytuje.

Mohu poprosit o pomoc?

Děkuji

401 Unauthorized - {"resultCode":110,"resultMessage":"Wrong signature"}

Dobrý den, podobný problém zde již viděl, ale nepodařilo se nalézt řešení.

Při inicializaci platby "payment/init" se objeví tato chyba.

Merchant ID: M1EPAY0821

Testovací prostředí.

Request:
{ #merchantId: "M1EPAY0821" +orderNo: "457" #totalAmount: 43591 +origPayId: null +currency: "CZK" +closePayment: true +returnUrl: "http://localhost:8010/api/csob/return" +returnMethod: "POST" #cart: array:1 [ 0 => array:4 [ "name" => "Produkty" "quantity" => 1 "amount" => 43591 "description" => "" ] ] +description: "..." #merchantData: null +customerId: "" +language: "cs" #dttm: "20230918122224" +payOperation: "payment" +payMethod: "card" #foreignId: null +ttlSec: 1800 +logoVersion: null +colorSchemeVersion: null #customer: null #order: null #customExpiry: null -fieldsInOrder: array:19 [ 0 => "merchantId" 1 => "*origPayId" 2 => "orderNo" 3 => "dttm" 4 => "payOperation" 5 => "payMethod" 6 => "totalAmount" 7 => "currency" 8 => "closePayment" 9 => "returnUrl" 10 => "returnMethod" 11 => "cart" 12 => "*customer" 13 => "*order" 14 => "description" 15 => "merchantData" 16 => "customerId" 17 => "language" 18 => "ttlSec" ] -auxFieldsInOrder: array:3 [ 0 => "logoVersion" 1 => "colorSchemeVersion" 2 => "customExpiry" ] }

Testovací karty výsledek ověření dle placené částky přestal fungovat OneClick

Dobrý den,
integruji novou verzi platební brány 1.9 a ještě minulý týden mi fungovalo, že jsem si výsledek ověření platby mohl ověřit podle částky 100 - úspěšné, 200- neúspěšné, jiná částka výzva k zadání OTP kódu.
Dnes mě to při jakékoliv částce i 100 i 200 vyzívá k zadání OTP kódu a potom projdou i ta za 200?
Kde se stala chyba?
Díky

Automaticke vyplnovani na iPhonu

Mohli byste prosim odladit branu pro plnou kompatibilitu s automatickym vyplnovanim karet na iPhonu (auto-fill)?

Jsem zakaznik a uprimne se vzdycky zhrozim, kdyz uvidim CSOB branu, pritom staci jen zlehka odladit kod.

Problem totiz je, ze brana nedovoli iPhonu vlozit platnost karty a posledni cislovka vzdy ve formulari chybi a musim ji dopsat rucne. Tzn. v iPhonu vidim, ze chce vyplnit 07/24, ale do formulare se propise pouze 07/2 proto, ze (asi) skript nedovoli vic znaku.

DecodeRSAPrivateKey vyhazuje CryptographicException : 'Bad Data.'

Dobrý den,
.NET implementace CsobGatewayClientExample vyhazuje CryptographicException : 'Bad Data.'.

Crypto.cs -> DecodeRSAPrivateKey -> RSA.ImportParameters(RSAparams);
System.Security.Cryptography.CryptographicException: 'Bad Data.'

Vygeneroval jsem 3 private keys, dva vyhazuji {"resultCode":110,"resultMessage":"Wrong signature"} a třetí crypto error.
Da se s tim neco dělat?

Dekuji moc
rsa_A4302pxyVp

Prague LAB

Dobrý deň prajem

včera bola spoločnosti Prague LAB, s.r.o., IČ: 177 307 24 doručená mailová správa, že jej bola aktivovaná služba prijímania kariet na jej webovej stránke www.praguelab.international.

Náš IT technik sa snažil implementovať platobnú bránu na webstránku, avšak podľa jeho vyjadrenia je potrebné potvrdiť testovanie vo vašej "testovacej verzii" POS MERCHANT. Do prostredia testovacej verzie sa však nevieme dostať, keďže nefunguje ani heslo, ktoré nám bolo pomocou SMS, a ani heslo, ktoré bolo nami zmenené pri prihlásení do "ostrej" verzie POS MERCHANT. Do ostrej verzie sme sa bezproblémov dostali.

Zároveň nie je ani možné zmeniť heslo v testovacej verzii cez funkciu "zapomenuté heslo" keďže systém píše, užívateľ, resp. kontaktný email nebol v systéme nájdený.

Chcem vás preto poprosiť u urýchlené kontaktovanie našej spoločnosti, keďže sme už včera v danej veci zasielali mail na adresu [email protected], resp. dnes sme sa snažili od cca. 10.45 hod dovolať na linku 0495 800 166, avšak nám tam napriek 10 telefonátom nikto nedvíha.

S pozdravom

Filip Osvald - v.z. Prague LAB, s.r.o.

+421 905 646 291

GooglePay - Missing parameter fingerprint.browser

Dobrý den.
Pokud simuluji GooglePay nákup bez nutnosti provedení otisku prohlížeče (totalAmount = 300, 400, 500), tak u googlePay/init nedostanu v odpovědi objekt actions (to je podle dokumentace v pořádku).
Poté ale tedy zavolám googlePay/process, kde objekt (položku) fingerprint vůbec nepředám (null). V odpovědi dostanu resultCode 110, a resulMessage: "Missing parameter fingerprint.browser"

Jedná se v testu o payId: 822b2bb6d504@IF

v1.9 googlepay/init, applepay/init

Dobrý den,

pří testování endpointu googlepay/init dostávám odpověď 110 Invalid payload. Na endpoint odesílám obsah google parametru paymentMethodData -> tokenizationData -> token, který obsahuje json data:

{"signature":"MEUCICStJKPt0lbuD...","intermediateSigningKey":{"signed … u003d\"}"}

zákódované do base64. Na api verzi 1.8, kterou máme implementovanou, vše funguje.

Obdobný problém mám u applepay/init, kde rovněž dostávám 110 Invalid payload. Zde v payload parametru posílám

{
    "data": "TUl\/Q4r...",
    "signature": "MIAGCSqG...",
    "header": {
        "publicKeyHash": "q2N1CiDY...",
        "ephemeralPublicKey": "MFkwEw...",
        "transactionId": "a6e0472c8b57..."
    },
    "version": "EC_v1"
}

zakódované do base64.

Podíváte se na to.
Děkuji a s pozdravem.

Api po přechodu na verzi 1.9 vrací chybu - 401 Unauthorized - {"resultCode":110,"resultMessage":"Wrong signature"}

Dobrý den,
klientovi převádíme api platební brány z verze 1.7 na 1.9 a při testování mi api hlásí chybu "Wrong signature". I přesto, že jsem změnil algoritmus pro podpis z SHA1 na SHA256. Klient má merchantId - M1E3CB1089. Zkusil jsem pro jistotu i testovací prostředí (iapi.iplatebnibrana.csob.cz/api/v1.9/payment/init) s nově vygenerovaným merchantId - A3067fTvYa, ale i zde mi api hlásí stejnou chybu.
Nevěděli by jste prosím, čím by to mohlo být? Zkoušel jsem použít i použití SHA256 z Vaších příkladů, ale se stejným výsledkem.

Děkuji moc

Limit na provedení operace

Při testování na platební bráně jsem narazil při pokusu o vytvoření platby s (nerealisticky) velkou částkou na odpověď s resultCode 120 a resultMessage "Merchant trx limit exceeded".

Na základě toho se nabízí otázky:

  • Jaká je maximální povolená částka pro zadání platby (kromě CZK mě zajímají také EUR a USD)?
  • Je limit stejný pro klasické platby i platby na míru?
  • Jedná se o univerzální limit nebo je individuální pro každého zákazníka a je dohodnut při sjednání smlouvy?

V dokumentaci jsem odpovědi nenašel, ale nemohu vyloučit, že jsem něco přehlédl.

Předem díky a přeju hezký den.

Problém s oneclick/init bez přítomnosti zákazníka (clientInitiated = false)

Dobrý den,

v případě testování oneclick/init bez přítomnosti zákazníka (clientInitiated = false), mi v odpovědi přijde místo objektu OneclickInitResponse html kód s textem "The requested URL was rejected. Please consult with your administrator. Your support ID is: 2732842130127883404". Předchozí volání oneclick/echo ("origPayId":"c751f7c02bdd@HH","merchantId":"M1MIPS7116","dttm":"20220902073914") proběhne v pořádku. Můžete mě prosím navést, kde by mohla být chyba, v dokumentaci jsem takový případ nenašel.

Děkuji

Monet+ plugin 1.5 vs API 1.9

Dobrý den,
na platební bráně ve wordpressu implementovanou skrz woocommerce s pluginem csob/ monet verze 1.5 potřebuji udělat upgrade na API 1.9. Můžete prosím poradit/poslat návod jak to v daném prostředí provést?
Takto vypadá záznam v seznamu pluginů dorpressu:

Payment gateway plugin for Woo Commerce e-shopDeactivate | e-commerce plugin for CSOB Payment Gateway (https://platebnibrana.csob.cz) implemented as extension of Woo Commerce e-shopVersion 1.5 | By MONET+, a.s. | Visit plugin site

Payment gateway plugin for Woo Commerce e-shop

e-commerce plugin for CSOB Payment Gateway (https://platebnibrana.csob.cz) implemented as extension of Woo Commerce e-shop

Version 1.5 | By MONET+, a.s. | Visit plugin site

Vždyť nemohu být jediný, kdo používá woocomerce ve wordpressu pro platby eshopu. Nějaké řešení to doufám bude mít. Jen doufám, že ne takové, abych musel najmout firmu, která mi bude měsíc programovat úplně nový web, protože to ve wordpressu už nějak nejde....
Děkuji.
N.

v1.9 endpoint data

Zdravím,

na testovacím prostředí mám drobný nesoulad s tím co je v dokumentaci a co chodí z API. Po odeslání požadavku na endpoint oneclick/init se vrátí odpověď s následující strukturou...

{
    "payId": "43e65b2f79b3@HG",
    "resultCode": 0,
    "resultMessage": "OK",
    "paymentStatus": 1,
    "dttm": "20220706102407",
    "signature": "base64-encoded-request-signature",
    "actions": {
        "fingerprint": {
            "browserInit": {
                "url": "https://iplatebnibrana.csob.cz/pay/mall.cz/b8296189-a8b6-4e48-a210-6170e5a3db79/3ds/method",
                "method": "GET",
                "params": {}
            }
        }
    }
}

Ale podle dokumentace by měl být v objektu browserInit místo parametru params být parametr vars viz https://github.com/csob/platebnibrana/wiki/Metody-pro-OneClick-platbu#endpoint

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.