【问题标题】:Stripe checkout.js with coupons使用优惠券条纹 checkout.js
【发布时间】:2023-04-05 03:46:02
【问题描述】:

我使用的是 Stripe 的 checkout.js,因为它很容易设置和使用。有没有办法添加优惠券?

<script src="https://checkout.stripe.com/v2/checkout.js"
    class="stripe-button"
    data-key="pk_test_czwzkTp2tactuLOEOqbMTRzG"
    data-amount="2000"
    data-name="Demo Site"
    data-description="2 widgets ($20.00)"
    data-image="/128x128.png">
</script>

【问题讨论】:

标签: stripe-payments


【解决方案1】:

Stripe Checkout 目前不支持优惠券。它没有在documentation 中列出,用于按钮或自定义集成。

人们可能想知道是否有一些秘密功能。但是,使用未记录的功能,尤其是涉及到您的支付处理器时,是一个坏主意。句号。


这是 Stack Overflow - 让我们继续挖掘!

启动 jsfiddle。将您的代码粘贴到 html 部分。打开开发者工具,以便查看网络请求。

有一个en.json,这是一个国际化的字符串文件。如果有优惠券的输入,应该有一个标签说“输入优惠券代码”或类似的东西。空无一人。 (当然,Stripe 有可能决定硬编码这个特定的字符串,但这似乎不太可能)。

https://checkout.stripe.com/v3/data/languages/en.json

您还可以看到 inner.js 用于为弹出窗口提供动力。将源码复制到一个js美化器中,你发现并没有提及。其实你可以看到解析选项的代码,和优惠券都没有关系。

"lib/optionParser": function(exports, require, module) {
    (function() {
        var BOOLEAN_OPTIONS, DEFAULTS, STRING_OPTIONS, URL_OPTIONS, extractValue, helpers, toBoolean, _;
        _ = require("vendor/lodash");
        helpers = require("lib/helpers");
        DEFAULTS = {
            currency: "usd",
            allowRememberMe: true
        };
        BOOLEAN_OPTIONS = ["billingAddress", "shippingAddress", "notrack", "nostyle", "allowRememberMe", "allowPhoneVerification", "zipCode", "trace", "alipayReusable", "bitcoin"];
        STRING_OPTIONS = ["key", "amount", "name", "description", "panelLabel", "currency", "email", "locale", "alipay"];
        URL_OPTIONS = ["url", "referrer", "image"];

您可以看到这里的每个选项如何与 custom integration 可用的选项一一对应,这些选项映射到按钮的选项(您只需要使用连字符而不是驼峰式)

此时,如果您想进一步说服自己,可以继续挖掘,但我会联系 Stripe 支持并提出功能请求。快乐挖掘!

【讨论】:

    【解决方案2】:

    Checkout 只创建令牌。在将令牌返回服务器并向客户收费后,将向客户应用优惠券。

    stripe.Customer.create(
      source=token,
      plan="basic_monthly",
      email="payinguser@example.com",
      coupon="coupon_ID"
    )
    

    【讨论】:

      【解决方案3】:

      在多年的路线图上为 Stripe 结帐/付款提供折扣代码后,Stripe 终于回应了我们的祈祷

      现在可以在 Stripe 结账时使用折扣码。

      请看这里:https://stripe.com/docs/payments/checkout/discounts

      您也可以在这里手动创建:https://dashboard.stripe.com/coupons/create

      对于可能是我们想要的面向客户的促销代码,请在此处查看:https://stripe.com/docs/billing/subscriptions/discounts/codes

      (从技术上讲,优惠券面向商家,促销代码面向客户)

      【讨论】:

      • 你永远不会在 ui 代码中显示应该在哪里包含折扣。
      • @Llama Stripe Checkout 是 Stripe 提供的一个“工具”,基本上重定向到 Stripe 自己的结账页面,它们不允许您使用代码更改 UI,一切都是后端端点、后端配置并更改 Stripe 仪表板上的值,如以下链接所示:stripe.com/docs/payments/checkout/discounts。当然,另一种选择是像 Stripe 的 react 库一样使用并制作自己的结帐 UI,并使用 Stripe 的支付 api 来处理,但提出问题的人只想要 Stripe Checkout
      • 因此折扣码实际上包含在后端端点中,如该链接所示:stripe.com/docs/payments/checkout/discounts#creating-coupons 我相信你不能真正从前端注入折扣码
      【解决方案4】:

      如果您想将优惠券代码传递到您的后端,您只需在表单中为其添加一个输入字段即可。但是,它不会从条带更改弹出表单中的金额,除非您想变得更复杂并调用其他 javascript 来检查输入的优惠券代码的参数并更改条带脚本参数。

      您可以在表单标签中包含您需要的任何输入,只要它们不被条带使用。

      <form action="/your-server-side-code" method="POST">
        Coupon Code: <input type="text" name="coupon_code">
        <br>
        <script src="https://checkout.stripe.com/v2/checkout.js" class="stripe-button" data-key="pk_test_czwzkTp2tactuLOEOqbMTRzG" data-amount="2000" data-name="Demo Site" data-description="2 widgets ($20.00)" data-image="/128x128.png">
        </script>
      </form>

      【讨论】:

      • 如何使用 v3
      猜你喜欢
      • 2013-08-04
      • 2023-01-17
      • 2016-05-27
      • 1970-01-01
      • 2018-08-02
      • 2022-07-22
      • 2020-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多