csob / paymentgateway

English documentation of the ČSOB Payment Gateway that offers an API for credit card payments, Apple Pay, Google Pay, mallpay and ČSOB Payment Button.
https://platbakartou.csob.cz/platebni-brana
GNU General Public License v3.0
121 stars 68 forks source link

MallPay - totalPrice.amount not divisible by quantity #611

Closed janlanger closed 2 years ago

janlanger commented 2 years ago

Dobý den,

v poslední době se u MP setkáváme občas s chybou 110 - totalPrice.amount not divisible by quantity - viz příklad. Celková cena 497,00 opravdu není beze zbytku dělitelná 3 kusy, je to způsobeno aplikováním slevy 100 Kč. Od začátku co máme MP implementovaný uvádíme u položek cenu po slevě, na tento problém jsme ale narazili až nyní. Došlo k nějaké změně a mohlo by dojít ke změně zpět? Dokumentace u typu "DISCOUNT" uvádí "použijte, pokud uvádíte slevu jako samostatnou položku na faktuře", což neděláme, tedy by náš postup měl být možný.

payId: 503e7d38a486@GL

request:

{
   "merchantId":"M1E3CB0860",
   "orderNo":"7074703938",
   "customer":{...},
   "order":{
      "totalPrice":{
         "amount":49700,
         "currency":"CZK"
      },
      "totalVat":[
         {
            "amount":0,
            "currency":"CZK",
            "vatRate":0
         }
      ],
      "addresses":[
         {
            ...
         }
      ],
      "items":[
         {
            "code":"49322924",
            "name":"www.slevomat.cz\/akce\/1837090",
            "totalPrice":{
               "amount":49700,
               "currency":"CZK"
            },
            "totalVat":{
               "amount":0,
               "currency":"CZK",
               "vatRate":0
            },
            "type":"GIFT_CARD",
            "quantity":3,
            "variant":"Stoln\u00ed kalend\u00e1\u0159 (\u010dtrn\u00e1ctidenn\u00ed)",
            "producer":"Ing. Tom\u00e1\u0161 Mikulenka",
            "productUrl":"https:\/\/www.slevomat.cz\/akce\/1837090-stolni-a-nastenne-kalendare-z-vasich-fotek"
         }
      ]
   },
   "agreeTC":false,
   "clientIp":"...",
   "returnUrl":"https:\/\/www.slevomat.cz\/objednavka\/receive-gateway-response\/...",
   "returnMethod":"GET",
   "ttlSec":3600,
   "dttm":"20211206115819",
   "signature":"..."
}
jstuchlik-mnt commented 2 years ago

Dobrý den,

požadavek byl předán na servis.

S pozdravem

-- Jan Stuchlík IT Support Specialist

dkomarek2 commented 2 years ago

Dobrý den,

konzultoval jsem to s kolegy a ta kontrola na dělitelnost je tam opravdu aplikovaná.

Vy máte dvě možnosti:

  1. Aplikovat slevu na každou položku a tu slevu nastavit tak aby výsledek byl dělitelný. Tzn. např. pokud vaše výchozí cena byla 199Kč a prodáte 3ks a chcete dát slevu 100Kč tak to upravíte tak, že dáte slevu 99Kč ale rozpočítáte ji ke každé položce, tedy z každé položky odečtete 33Kč. Tedy výsledek by byl 166Kč x 3ks = 498Kč. Tedy v requestu by byla cena 498 CZK a 3ks.
  2. Pokud by vám z nějakého důvodu takové řešení nevyhovovalo, pak můžete podat návrh na úpravu funkcionality na banku a ta by posoudila zda to schvání.

S pozdravem,

Daniel Komárek IT application specialist

jgrmelova commented 2 years ago

Dobrý den,

na požadavek neevidujeme žádné doplňující dotazy. Tento požadavek tedy uzavírám.

V případě potřeby je možné vytvořit požadavek nový nebo tento požadavek znovu otevřít.

Hezký den.

-- Jana Grmelová