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

ckn*_*kng 5 javascript google-api android-pay google-pay

我正在尝试使用Google Pay API将Google Pay集成到我们的在线商店中,并且在本教程中,该代码段设置了付款金额和JavaScript对象中的货币代码,如下所示:

paymentDataRequest.transactionInfo = {
  totalPriceStatus: 'FINAL',
  totalPrice: '123.45',
  currencyCode: 'USD'
};
Run Code Online (Sandbox Code Playgroud)

这看起来非常不安全,因为任何人都可以篡改客户端上的值,然后最终单击“使用Google Pay进行购买”按钮。

当然,我还可以检查最终从付款网关发送回的值,然后将订单标记为欺诈,但如果可能的话,我也想尽早防止这种情况发生。

谢谢。

Jos*_*gia 1

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

您传递的交易信息loadPaymentData永远不会决定最终收取的金额。您从此调用中返回的是一种付款方式,该付款方式使用只有您的处理者拥有的密钥进行加密,因此,支付处理者(在服务器端)是唯一可以访问此信息的代理。发出费用的最终请求继续通过服务器和处理器之间的安全调用进行。

本质上,使用 Google Pay 检索付款信息以进行扣款与不使用 Google Pay 的方式相同,只是付款信息永远不会暴露在客户端(因为用户不需要输入该信息) ,因此,该过程在这方面具有额外的安全层。