web-dev-qa-db-ja.com

クーポン付きのストライプcheckout.js

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

Stripe Checkoutは現在、クーポンをサポートしていません。ボタンまたはカスタム統合のいずれについても、 ドキュメント にリストされていません。

秘密の機能があるのではないかと思うかもしれません。ただし、文書化されていない機能を使用することは、特に支払い処理業者に関しては悪い考えです。終止符。


これはStackOverflowです-掘り続けましょう!

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

ここでの各オプションが、ボタンのオプションにマップされる カスタム統合 で使用可能なオプションと1対1でどのように整列するかを確認できます(キャメルケースの代わりにハイフンを使用する必要があります)

この時点で、さらに自分を納得させたい場合は掘り下げ続けることができますが、私はStripe Supportに連絡して、機能をリクエストします。ハッピーディギング!

13
Liyan Chang

チェックアウトはトークンのみを作成します。クーポンは、トークンがサーバーに返され、顧客に請求された後に顧客に適用されます。

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

クーポンコードをバックエンドに渡したい場合は、フォーム内にクーポンコードの入力フィールドを追加するだけです。ただし、ポップアップフォームの金額をストライプから変更することはありません。ただし、洗練されたものになり、追加の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>
1
Robert Kluver