0
我在計算如何隨條帶事務一起發送信息以填充每個購買的「description」字段時遇到了一些問題。基本上,我希望這包括付款表單所在的購買頁面中的信息。每個購買頁面上都有一個值,顯示用戶參與的學校(<%= @ pin.school%>)。我希望能夠將相同的價值拉入每個付款說明中,以便我知道用戶參與了哪個學校。我覺得我有我自己和我的應用程序混淆了在我的表單頁面和我的收費控制器之間使用哪種方法實現處理表單提交併將它們發送到Stripe的方法。Stripe支付的自定義說明
「罪名」 控制器:
class ChargesController < ApplicationController
def new
end
def create
Stripe.api_key = "sk_test_ESb8aYrhEOcrNXr3940KehVM"
# Amount in cents
@amount = 500
@school = @pin.school
charge = Stripe::Charge.create(
:amount => @amount,
:currency => "usd",
:card => params[:stripeToken],
:description => @school
)
end
end
付款頁面:
<head>
<script type="text/javascript" src="https://js.stripe.com/v1/"></script>
<script type="text/javascript">
// this identifies your website in the createToken call below
Stripe.setPublishableKey('pk_test_j8hulWlnmbug4H14Q0emQixf');
function stripeResponseHandler(status, response) {
if (response.error) {
// Show the errors on the form
$('.payment-errors').text(response.error.message);
$('.submit-button').prop('disabled', false);
} else {
var $form = $('#payment-form');
// token contains id, last4, and card type
var token = response.id;
var email = $("#email").val();
// Insert the token into the form so it gets submitted to the server
$form.append($('<input type="hidden" name="stripeToken" />').val(token));
// and submit
$form.get(0).submit();
}
}
$(function() {
$('#payment-form').submit(function(event) {
// Disable the submit button to prevent repeated clicks
$('.submit-button').prop('disabled', true);
var email = $("#email").val();
Stripe.createToken({
name: $('.card-name').val(),
number: $('.card-number').val(),
cvc: $('.card-cvc').val(),
exp_month: $('.card-expiry-month').val(),
exp_year: $('.card-expiry-year').val()
}, stripeResponseHandler);
// Prevent the form from submitting with the default action
return false;
});
});
</script>
</head>
<div class="row">
<div class="span10 offset1">
<div class="well">
Level 1
<div class="row">
<div class="span4">
<p>
Level 2
</p>
<p>
<%= image_tag @pin.image %>
</p>
<p>
<% if current_user == @pin.user %>
<%= link_to 'Edit', edit_pin_path(@pin) %> |
<% end %>
<%= link_to 'Back', pins_path %>
</p>
</div>
<div class="span4">Level 3
<h1>
<%= @pin.user.name %>
</h1>
<p>
<b>School:</b>
<%= @pin.school %>
</p>
<p>
<b>My Story:</b>
<%= @pin.description %>
</p>
<p>
<b>Starting Balance:</b>
<%= @pin.loan_orig %>
</p>
<p>
<b>Current Balance:</b>
<%= @pin.loan_cur %>
</p>
<p>
<b>Progress:</b>
</p>
<div class="progress progress-success progress-striped">
<div class="bar" style="width: 40%"></div>
</div>
<p>
<b>Share this profile:</b>
<%= request.url %>
</p>
<!--Start Stripe Form -->
</div>
<div class="row">
<div class="span10 offset1">
<span class="payment-errors"></span>
<form action="/charges" method="POST" id="payment-form"class="form-stacked">
<p class="form-label">Email Address:</p>
<input class="text" id="email" spellcheck="false"></input>
<div class="form-row" "pull-left">
<label>
<span>Name</span>
<input type="text" size="20" autocomplete="off" class="card-name"/>
</label>
</div>
<div class="form-row" "pull-left">
<label>
<span>Card Number</span>
<input type="text" size="20" autocomplete="off" class="card-number"/>
</label>
</div>
<div class="form-row" "pull-left">
<label>
<span>Security Code (CVC)</span>
<input type="text" size="4" autocomplete="off" class="card-cvc"/>
</label>
</div>
<div class="form-row" "pull-right">
<label>Expiry Date</label>
<select class="card-expiry-month">
<option selected="selected" value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
</div>
<div class="form-row" "pull-right">
<select class="card-expiry-year">
<option selected="selected" value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
<option value="2023">2023</option>
<option value="2024">2024</option>
<option value="2025">2025</option>
<option value="2026">2026</option>
<option value="2027">2027</option>
<option value="2028">2028</option>
<option value="2029">2029</option>
<option value="2030">2030</option>
<option value="2031">2031</option>
<option value="2032">2032</option>
<option value="2033">2033</option>
<option value="2034">2034</option>
<option value="2035">2035</option>
<option value="2036">2036</option>
<option value="2037">2037</option>
<option value="2038">2038</option>
</select>
</div>
<button type="submit" class="btn btn-success">Submit Payment</button>
</form>
<!--End Stripe Form -->
</div>
</div>
</div>
</div>
</div>
如果這樣的作品,你是完全冷靜。 – 2017-07-11 18:53:18