将Stripe Client Intent Secret传递给Javascript

问题描述

我需要将Stripe Client Intent机密传递给Javascript以执行一些代码。我现在正在这样显示。但这可能不是一种非常安全的信息传递方式。

<input type="hidden" id="intent_data_client_secret" value="{{ $intent_data_client_secret }}">

根据此处链接的Stripe文档:CHAR

客户密码可用于通过以下方式完成付款过程: PaymentIntent上指定的金额。它不应该被记录, 嵌入到网址中,或暴露给客户以外的任何人。使 确保在包含客户端的任何页面上启用了TLS 机密。

将安全令牌传递给javascript的更好方法有哪些?

解决方法

这实际上是一种很好的方法,您可以在example integration guide的“服务器端呈现”标签下看到一个示例。

模板

<button id="card-button" data-secret="{{ client_secret }}">
  Submit Payment
</button>

服务器代码

app.get('/checkout',async (req,res) => {
  const intent = // ... Fetch or create the PaymentIntent
  res.render('checkout',{ client_secret: intent.client_secret });
});

替代方法是同一指南中“单页应用程序”标签下的内容,向您自己的后端/ api发出客户端请求以检索“付款意图”或“结帐会话”的机密:

客户

var response = fetch('/secret').then(...)

服务器

app.get('/secret',res) => {
  const intent = // ... Fetch or create the PaymentIntent
  res.json({client_secret: intent.client_secret});
});

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...