使用Google Pay JavaScript API时防止客户端篡改

使用Google Pay JavaScript API时防止客户端篡改,javascript,google-api,android-pay,google-pay,Javascript,Google Api,Android Pay,Google Pay,我正在尝试使用将Google Pay集成到我们的在线商店中,在教程中,有一段代码用于设置支付金额,以及JavaScript对象中的货币代码,如下所示: paymentDataRequest.transactionInfo = { totalPriceStatus: 'FINAL', totalPrice: '123.45', currencyCode: 'USD' }; 这看起来非常不安全,因为任何人都可以在最终点击“用谷歌支付购买”按钮之前篡改客户端的值 当然,我也可以检查最终从

我正在尝试使用将Google Pay集成到我们的在线商店中,在教程中,有一段代码用于设置支付金额,以及JavaScript对象中的货币代码,如下所示:

paymentDataRequest.transactionInfo = {
  totalPriceStatus: 'FINAL',
  totalPrice: '123.45',
  currencyCode: 'USD'
};
这看起来非常不安全,因为任何人都可以在最终点击“用谷歌支付购买”按钮之前篡改客户端的值

当然,我也可以检查最终从支付网关返回的值,然后将订单标记为欺诈,但如果可能的话,我也希望在流程中尽早防止这种情况发生

谢谢

我还可以检查最终从支付网关返回的值

这是唯一可行的办法

如果可能的话,我也希望尽可能早地防止这种情况发生

这是不可能的。客户属于访问者,最终完全在访问者的控制之下


您可以通过模糊处理使其更加困难,但这会使您的代码更难调试,并且不会阻止某人只查看最终的HTTP请求并在不使用代码的情况下重新创建它们。

写入设备的任何数据都会被读取。在技术意义上,当提到
secret
时,这一原则在面向用户的设备上更为突出,因为这些设备通常比充当服务器的机器更容易暴露给其他代理和个人

您传递给
loadPaymentData
的交易信息永远不会决定最终要收取的金额。您从这个调用中得到的是一个使用只有您的处理器拥有的密钥加密的支付方法,因此,支付处理器(在服务器端)是唯一可以访问此信息的代理。通过服务器和处理器之间的安全呼叫,继续发出支付费用的最终请求

本质上,使用Google Pay检索支付信息以支付费用相当于在没有Google Pay的情况下的支付方式,只是支付信息从未在客户端公开(因为用户不需要输入),因此,该过程在这方面具有额外的安全层