我正在构建我们的服务器系统,以接受用户通过 Google Pay 购买产品。
在我们的用例中,我们的用户将从移动应用程序向 google pay 服务器发出付款请求(PaymentDataRequest 对象)以获取付款 token (响应中的 PaymentMethodTokenizationData 对象),然后移动应用程序会将其发送到我们的后端服务器和我们的服务器会将这个 token 转发到支付网关以进行进一步的支付过程。
API引用: https://developers.google.com/pay/api/web/reference/object#PaymentMethodTokenizationData
token 化类型设置为 PAYMENT_GATEWAY
但是,我们对在服务器系统中传输 PaymentMethodTokenizationData 存在一些安全问题。
由于我在 Google Pay API 官方文档中找不到有关这些问题的任何解释,请问有人可以帮我澄清以下问题吗?
(1) Google 付款 token (PaymentMethodTokenizationData 对象)是否代表“一张 token 化信用卡”或“一次性交易信息”?
(2) 是否可以重复使用同一个支付 token 多次购买产品而无需请求新 token ?
(3) 此支付 token 是否仅限用于一个特定的交易 ID?例如,如果代币泄露,是否有可能有人可以使用它进行再次购买?
(4) 该支付 token 只能用于支付网关收款吗? 换句话说,除了支付网关之外,没有人可以从 token 中提取任何支付信息(信用号、交易信息...),因此我们不需要任何进一步的安全机制来在网络上传输此 token .
谢谢
最佳答案
如果在阅读文档时没有清楚地看到这一点,我们深表歉意。您可以在 API explanation video 中了解有关这些详细信息的更多信息。 ,或 payment data cryptography section在文档中。如果您认为应该在更明显的领域包含此信息,我们很想听听您的想法。
对于您的问题:
PaymentMethodTokenizationData
负载包含有关用户为完成交易而选择的支付方式的信息(例如:卡)。- 按照 terms of service 的规定这些API返回的信息只能用于完成用户发起的一笔交易。
- (& 4) 从 Google Pay 获取的有效负载在您的支付处理机构的域之外无法使用。在离开 Google 服务器之前,有效负载会使用一对 key 进行非对称加密,只有您的处理器持有解密消息内容所需的私钥,或者如果您的业务处理付款,则您自己的服务器会持有该私钥。因此,如果加密的有效负载被泄露,它只不过是一个没有特定应用的随机字符序列。
- 除了确保将加密的负载转发到处理付款的服务器/系统并在交易完成后立即删除/清除这些 API 返回的任何数据之外,不需要任何其他安全机制。
希望有帮助。
关于payment-gateway - 关于在网络上传输 Google Pay 支付 token 的安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55396555/