2013-08-01 8 views
23

Używam Stripe's checkout.js, ponieważ jest łatwy w konfiguracji i obsłudze. Czy istnieje sposób na dodanie kuponów?Stripe checkout.js z kuponami

<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

możliwe duplikat [Zastosować pasków kupon] (http://stackoverflow.com/questions/18023369/apply-stripe-coupon) – Tarek

Odpowiedz

12

Stripe Checkout obecnie nie obsługuje kuponów. Nie ma go na liście documentation ani dla przycisku, ani dla niestandardowej integracji.

Można się zastanawiać, czy istnieje jakiś tajny element. Jednak korzystanie z nieudokumentowanych funkcji, szczególnie jeśli chodzi o procesor płatności, jest złym pomysłem. Kropka.


To jest Stack Overflow - trzymajmy kopać!

Odpalić jsfiddle. Wklej swój kod do sekcji html. Otwórz narzędzia dla programistów, aby zobaczyć żądania sieciowe.

Istnieje plik en.json, który jest umiędzynarodowionym plikiem tekstowym. Jeśli istnieje wejście dla kuponów, powinna znajdować się etykieta z napisem "Wpisz kod kuponu" lub coś podobnego. Nie ma żadnego. (Oczywiście, istnieje możliwość, że Stripe zdecydował się na sztywny kod tego łańcucha, ale wydaje się to mało prawdopodobne).

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

Można również zobaczyć, że inner.js służy do zasilania popup. Skopiuj źródło do js beautifier i stwierdzisz, że nie ma żadnej wzmianki. W rzeczywistości możesz zobaczyć kod analizujący opcje i żaden z nich nie ma nic wspólnego z kuponami.

"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"]; 

Można zobaczyć, jak każda z opcji tutaj wyrównać jeden do jednego z opcji dostępnych dla custom integration, która mapa do opcji dla przycisku (wystarczy użyć myślników zamiast CamelCase)

W tym momencie możesz dalej kopać, jeśli chcesz przekonać siebie dalej, ale sięgnęłbym po wsparcie Stripe i wysłanie prośby o funkcję. Szczęśliwe kopanie!

7

Zamówienie tworzy tylko token. Kupon jest stosowany do klienta po zwróceniu tokena na serwer i obciążeniu klienta opłatą.

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

Jeśli chcesz przekazać kod kuponu do swojego zaplecza, możesz po prostu dodać do niego pole wprowadzania w formularzu. Nie zmieni to jednak kwoty w wyskakującym formularzu z paska, chyba że chcesz uzyskać wyrafinowane i wywołać dodatkowe javascript, aby sprawdzić parametry wprowadzonego kodu kuponu i zmienić parametry skryptu paska.

Możesz dołączyć dowolne wejścia w tagach formularza, o ile nie są one używane przez pasek.

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