【发布时间】:2016-03-26 20:24:34
【问题描述】:
我在 Rails 应用程序(下面的第 1 部分)中有一个运行良好的 Stripe Checkout 按钮。我想自定义按钮样式,所以我按照指南 here 添加了自定义 Javascript 和按钮(第 2 部分)。
当这两个部分都包含在内时,第二个按钮(第 2 部分)效果很好。当我删除第 1 部分时,第二个按钮不会弹出 Checkout 对话框 - 相反,它只是提交没有 stripeToken 和 stripeEmail 的表单,从而导致错误。
有人能解释一下发生了什么以及如何解决这个问题吗?
<!-- Part 1 -->
<div class="hidden">
<script src="https://checkout.stripe.com/checkout.js"
class="stripe-button"
data-label="Subscribe"
data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
data-name="<%= @site.title %>"
data-description="Monthly Subscription"
data-amount="<%= @site.price %>"
data-email="<%= current_user.email %>"></script>
</div>
<!-- End Part 1 -->
<!-- Part 2 -->
<script src="https://checkout.stripe.com/checkout.js"></script>
<button class="btn btn-primary btn-large" id="subscription-button">Subscribe Now</button>
<script>
var handler = StripeCheckout.configure({
key: '<%= Rails.configuration.stripe[:publishable_key] %>',
image: '/img/documentation/checkout/marketplace.png',
locale: 'auto',
token: function(token) {
var tokenInput = $("<input type=hidden name=stripeToken />").val(response.id);
var emailInput = $("<input type=hidden name=stripeEmail />").val(response.email);
$("form").append(tokenInput).append(emailInput).submit();
}
});
$('#subscription-button').on('click', function(e) {
handler.open({
name: '<%= @site.title %>',
description: 'Monthly Subscription',
email: '<%= current_user.email %>'
amount: <%= @site.price %>
});
e.preventDefault();
});
// Close Checkout on page navigation
$(window).on('popstate', function() {
handler.close();
});
</script>
<!-- End Part 2 -->
【问题讨论】:
标签: javascript ruby-on-rails stripe-payments