我正在尝试向我的付款平台添加两个按钮。但即使按下另一个按钮,条纹也会向我收取相同的金额。这是我的尝试,但它不起作用。我不确定出了什么问题。
def create
# Amount in cents - €1000.00
@amount = 100000
customer = Stripe::Customer.create(
:email => params[:stripeEmail],
:source => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => @amount,
:description => 'Thanks, on behalf of CMRF',
:currency => 'eur'
)
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to new_charge_path
end
<%= form_tag charges_path, id: 'chargeForm' do %>
<script src="https://checkout.stripe.com/checkout.js"></script>
<%= hidden_field_tag 'stripeToken' %>
<%= hidden_field_tag 'stripeEmail' %>
<button id="customButton" class="btn btn-large btn-primary">Sponsor a Hole</button>
<script>
var handler = StripeCheckout.configure({
key: '<%= ENV["PUBLISHABLE_KEY"] %>',
token: function(token, args) {
document.getElementById("stripeToken").value = token.id;
document.getElementById("stripeEmail").value = token.email;
document.getElementById("chargeForm").submit();
}
});
document.getElementById('customButton').addEventListener('click', function(e) {
// Open Checkout with further options
handler.open({
name: 'My Company',
description: 'Entry (€1000.00)',
currency: 'eur',
amount: 100000,
billingAddress: true,
});
e.preventDefault();
});
</script>
<% end %>
<%= form_tag charges_path, id: 'chargeForm1' do %>
<script src="https://checkout.stripe.com/checkout.js"></script>
<%= hidden_field_tag 'stripeToken' %>
<%= hidden_field_tag 'stripeEmail' %>
<button id="customButton1" class="btn btn-large btn-success">Enter A Team</button>
<script>
var handler = StripeCheckout.configure({
key: '<%= ENV["PUBLISHABLE_KEY"] %>',
// image: '/assets/my_logo.png',
token: function(token, args) {
document.getElementById("stripeToken").value = token.id;
document.getElementById("stripeEmail").value = token.email;
document.getElementById("chargeForm").submit();
}
});
document.getElementById('customButton1').addEventListener('click', function(e) {
// Open Checkout with further options
handler.open({
name: 'My Company',
description: 'Sponsor (€200.00)',
currency: 'eur',
amount: 20000,
billingAddress: true,
// shippingAddress: true
});
e.preventDefault();
});
</script>
<% end %>
Rails.application.routes.draw do
resources :charges
root 'pages#index'
get 'pages/about'
get 'pages/contact'
get 'pages/pay'
答案 0 :(得分:0)
您传递给Checkout的amount
和currency
参数(在handler.open(...)
的调用中)仅用于显示目的。
用于收费的实际金额和币种是您在后端代码发送的charge creation request的amount
和currency
参数中提供的金额和货币。
在这种情况下,将在charges_controller.rb
文件中创建费用,并且金额已修复。如果您想要收取不同的金额,您需要发送一些其他字段以及令牌,以便您的后端代码可以知道要收取的金额。
除非客户明确设定金额(例如,如果您接受捐款),否则您不应该依赖客户浏览器提供的金额,因为它很容易更改它。相反,您可能希望使用一些可在后端代码中使用的标识符来检索正确的数量。