表面的には、このセットアップは単純に見えますが、ステージング サーバーでテスト トランザクションを実行しようとすると、次のようになります。
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 構文エラーがありますか? ありがとう