使用优惠券条纹 checkout.js

Posted

技术标签:

【中文标题】使用优惠券条纹 checkout.js【英文标题】:Stripe checkout.js with coupons 【发布时间】:2013-08-01 18:21:43 【问题描述】:

我使用的是 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>

【问题讨论】:

Apply Stripe Coupon的可能重复 【参考方案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

以上是关于使用优惠券条纹 checkout.js的主要内容,如果未能解决你的问题,请参考以下文章

不需要信用卡的条纹优惠券?

条纹:预览即将发票以更新订阅

条纹结帐键盘隐藏付款按钮

阿里云优惠券怎么使用,阿里云优惠券使用方法

淘宝使用店铺优惠券购买了东西,如果申请了退款,退款之后店铺优惠券会退回留作下次使用吗?

京东买东西用了优惠券,退款的话,优惠券退吗