2013-08-01 88 views
23

我使用Stripe的checkout.js,因爲它很容易設置和使用。有沒有辦法添加優惠券?帶優惠券的條紋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> 
+0

的可能重複的[應用條紋優惠券(http://stackoverflow.com/questions/18023369/apply-stripe-coupon) – Tarek

回答

12

條紋結賬當前不支持優惠券。它不在documentation中列出,無論是按鈕還是自定義集成。

有人可能會想知道是否有一些祕密功能。但是,使用未公開的功能,尤其是涉及到您的付款處理器時,這是一個糟糕的主意。句號。


This being 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

在這一點上,如果你想進一步說服自己,你可以繼續挖掘,但我會接觸到條紋支持和提出功能請求。快樂挖!

7

結帳僅創建令牌。將令牌返回給服務器並向客戶收費後,將優惠券應用於客戶。

stripe.Customer.create(
    source=token, 
    plan="basic_monthly", 
    email="[email protected]", 
    coupon="coupon_ID" 
) 
1

如果您想要將優惠券代碼傳遞給您的後端,您可以在表單中爲其添加輸入字段。但是,它不會改變條紋彈出窗體中的金額,除非您希望更加複雜並調用其他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>