【问题标题】:Passing Stripe Client Intent Secret to Javascript将 Stripe Client Intent Secret 传递给 Javascript
【发布时间】:2020-08-24 13:28:17
【问题描述】:

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

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

根据此处链接的 Stripe 文档:https://stripe.com/docs/payments/payment-intents#:~:text=The%20client%20secret%20can%20be,that%20includes%20the%20client%20secret

客户端密码可用于完成支付过程 PaymentIntent 上指定的金额。它不应该被记录, 嵌入在 URL 中,或暴露给客户以外的任何人。制作 确保您在包含客户端的任何页面上启用了 TLS 秘密。

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

【问题讨论】:

    标签: javascript html stripe-payments


    【解决方案1】:

    这实际上是一个很好的方法,您可以在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', async (req, res) => {
      const intent = // ... Fetch or create the PaymentIntent
      res.json({client_secret: intent.client_secret});
    });
    

    【讨论】:

    • 谢谢,有道理
    猜你喜欢
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 2018-01-06
    相关资源
    最近更新 更多