Reputation: 21
I am working on building our server system to accept users to buy the product through Google Pay.
In our use case, our users will make a payment request (PaymentDataRequest object) to google pay server from mobile app to get the payment token(PaymentMethodTokenizationData object in the response) and mobile app will send it to our backend server and our server will forward this token to the payment gateway for further payment process.
API Reference: https://developers.google.com/pay/api/web/reference/object#PaymentMethodTokenizationData
Tokenization type is set to PAYMENT_GATEWAY
However, we have some security concerns about transmitting the PaymentMethodTokenizationData in our server system.
Since I cannot find any explanation about these questions in the official Google Pay API document, could someone please help me to clarify the following questions?
(1) Does google payment token (PaymentMethodTokenizationData object) represent ‘one tokenized credit card' or 'one-time transaction info'?
(2) Can the same payment token be reused to purchase the product for multiple times without requesting a new token?
(3) Is this payment token restricted to be used only for one specific transaction id? For example, if the token is leaked, is it possible that someone can use it to make another purchase?
(4) Can this payment token only be used by payment gateway to collect money? In other words, except for the payment gateway, there is no one can extract any payment information(credit number, transaction info...) from the token, so we don't need any further secure mechanism to transmit this token on the network.
Thanks
Upvotes: 2
Views: 722
Reputation: 6250
Apologies if this did not come across clearly reading the docs. You can learn more about these details in the API explanation video, or the payment data cryptography section in the docs. If you think there are more obvious areas where this information should be included, we'd love to hear your thoughts.
To your questions:
PaymentMethodTokenizationData
payload contains information about the payment method selected by the user to complete the transaction (eg.: a card).Hope it helps.
Upvotes: 3