使用优惠券条纹 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的主要内容,如果未能解决你的问题,请参考以下文章