2

表面的には、このセットアップは単純に見えますが、ステージング サーバーでテスト トランザクションを実行しようとすると、次のようになります。

Uncaught Error: You did not set a valid publishable key. Call Stripe.setPublishableKey() with your publishable key.

私はそうだと思うので、これに少し困惑しています。私が持っているテンプレートで:

<form action="" class="form" method="POST" data-stripe-key="{{ STRIPE_PUBLIC_KEY }}" data-replace-closest=".subscribe-form" >
            {% csrf_token %}
            {{ form.stripe_token }}
            {{ form.plan }}
            <button type="submit" class="btn"><span>Sign Up</span>
            </button>

</form> 

同じテンプレートのその下には、私の .js があります。

        <script type="text/javascript">
          Stripe.setPublishableKey('{{ my_pk }}');
        </script>
        <script src="https://checkout.stripe.com/v2/checkout.js"></script>
        <script>
            $(document).ready(function(){
                $('body').on("click", '.change-card, button[type=submit]', function(e) {
                    e.preventDefault();
                    var $form = $(this).closest("form"),
                        token = function(res) {                        
                            $form.find("input[name=stripe_token]").val(res.id);
                            $form.trigger("submit");
                        };

                    StripeCheckout.open({
                        key:         $form.data("stripe-key"),
                        currency:    "usd", 
                        name:        'Subscription plan',
                        panelLabel:  'Subscribe',
                        token:       token
                    });

                    return false;
                });
            });
        </script>

settings.py で私はちょうど持っています

STRIPE_PUBLIC_KEY = '{{ my_pk }}'
STRIPE_SECRET_KEY = '{{ my_sk }}'

heroku環境変数では、次のように設定されました

heroku config:add STRIPE_PUBLIC_KEY=my_pk STRIPE_SECRET_KEY=my_sk --remote staging

javascript で pk をハードコーディングしようとしましたが、STRIPE_PUBLIC_KEY として渡そうとしましたが、コンソールで「発行可能なキーを設定しませんでした」というメッセージが表示されます。これを引き起こしているHeroku環境について何かありますか? どこかに .js 構文エラーがありますか? ありがとう

4

0 に答える 0