csob/platebnibrana

Google Pay - nefunkcne overovanie podpisu (poradie parametrov)

KamikX opened this issue · 6 comments

KamikX commented

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.

mjanek commented

Dobrýden,
Váš požadavekbyl zaevidován a předán k řešení. O dalším průběhu Vás budeinformovat odpovědný servisní technik.
Miroslav Janek

KamikX commented

@mjanek Dobry den, mame nejaky update k tomuto problemu? overovanie mi nefunguje ani pri endpointe googlepay/init, myslim ze to moze sposobovat poradie parametrov vo vyskladanom retazci, napriklad pri klasickom payment/init je uvedene ze vrati nasledovne kde je payId na prvom mieste, realne to ale vrati

{
    "dttm": "20230811123558",
    "signature": "DATA",
    "payId": "fd991dc4eda4@IH",
    "resultCode": 0,
    "resultMessage": "OK",
    "paymentStatus": 1
}

ak ma niekto potom postavenu logiku vyskladania retazca na podpis automaticky ze prejde zaradom cele pole a podpolia (s vynimkami na niektore kluce) vznikne retazec ktory neprejde nesedi to voci tomu co je pozadovane podla dokumentacie

Dakujem.

Dobrý den,

požadavek byl předán na vývojové oddělení k detailnímu prověření.

Prověření je na programátora z kapacitních důvodů zaplánované na začátek příštího týdne.
O výsledku prověření Vás budeme následně informovat.

Děkujeme za pochopení.

Jana Grmelová

KamikX commented

Dobrý den,

požadavek byl předán na vývojové oddělení k detailnímu prověření.

Prověření je na programátora z kapacitních důvodů zaplánované na začátek příštího týdne. O výsledku prověření Vás budeme následně informovat.

Děkujeme za pochopení.

Jana Grmelová

Dobry den,

nejaky update?

Dobrý den,

u metody echo je pořadí v podpisu následující:

echo:

  • dttm
  • resultcode
  • resultMessage

initParams:

  • apiVersion
  • apiVersionMinor
  • paymentMethodType
  • [allowedCardNetworks]
  • [allowedCardAuthMethods]
  • assuranceDetailsRequired
  • billingAddressRequired
  • billingAddressParametersFormat
  • tokenizationSpecificationType
  • gateway
  • gatewayMerchantId
  • googlepayMerchantId
  • merchantName
  • environment
  • totalPriceStatus
  • countryCode

Pro metodu init:

  • payId
  • dttm
  • resultCode
  • resultMessage
  • paymentStatus
  • statusDetail

actions (browserChallenge):

  • url
  • method

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

Jana Grmelová

KamikX commented

@jgrmelova Dakujem za doplnujuce informacie, chyba bola teda na mojej strane, zle poradie parametrov / zly retazec na overenie.
Bude poradie parametrov voci dokumentacii v buducnosti zosuladene?

Dakujem