csob/platebnibrana

Google Pay init - paymentData base64 encoding

Closed this issue · 2 comments

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?

Dobrý den,

můžete mi, prosím, zaslat Merchant ID platební brány a přesný čas požadavku kdy Vám googlepay/process neprošel?

Údaje můžete případně zaslat na e-mail servis@monetplus.cz.

Děkuji

Jana Grmelová
IT administrátor

Vyřešeno prostřednictvím e-mailu. Místo požadavku googlepay/process došlo omylem k zaslání požadavku na applepay/process. Zároveň na základě podnětu došlo k upřesnění dokumentace u zasílaného payloadu.

Požadavek ukončuji.