Uncaught TypeError: Cannot read property 'submit' null für Streifen-Zahlung
Ich bin die Integration von stripe Zahlungen in meine app. Ich wechselte aus dem Streifen Standard "Bezahlen mit Karte" - Taste für eine ich angepasst. Nachdem Sie dies getan haben, wird der test-Modus erfolgreich erscheint und ich kann geben Sie die test-Anmeldeinformationen. Allerdings, wenn ich den test Einreichen-Zahlung, und es genehmigt wird, bleibt er einfach auf dem gleichen pin Seite eher als auf die Kosten-Seite, die ich für ihn erstellt.
Hinweis: die app würde den übergang nur feinen Streifen-Zahlung an den Gebühren erstellen.html-Code.erb Seite, bis ich ersetzt die Standard-stripe Schaltfläche Zahlung mit meine neue benutzerdefinierte Schaltfläche.
Auch, suchen Entwickler-tools, die ich tun, beachten Sie, dass es liest, wenn ich behaupte test Zahlung:
Uncaught TypeError: Cannot read property 'submit' of null
Ich denke, das bezieht sich auf meinen code unten, wo ich behaupte, dass die chargeForm.
Jemand dieses Problem, auftreten, bevor oder wissen kann ich dieses Problem beheben? Vielen Dank!
app/views/pins/_details.html-Code.erb
<%= form_tag charges_path, id: 'chargesForm' do %>
<script src="https://checkout.stripe.com/checkout.js"></script>
<%= hidden_field_tag 'stripeToken' %>
<%= hidden_field_tag 'stripeEmail' %>
<button id="btn-buy" type="button" class="btn btn-success btn-lg btn-block"><span class="glyphicon glyphicon-heart"></span> I want this!</button>
<script>
var handler = StripeCheckout.configure({
key: '<%= Rails.configuration.stripe[:publishable_key] %>',
token: function(token, arg) {
document.getElementById("stripeToken").value = token.id;
document.getElementById("stripeEmail").value = token.email;
document.getElementById("chargeForm").submit();
}
});
document.getElementById('btn-buy').addEventListener('click', function(e) {
handler.open({
name: 'OMG! <%= @pin.manufacturer %>',
description: '<%= @pin.description %>',
amount: 1000
});
e.preventDefault();
})
</script>
<% end %>
app/controllers/charges_controller.rb
class ChargesController < ApplicationController
def create
# Amount in cents
@amount = 500
customer = Stripe::Customer.create(
:email => params[:stripeEmail],
:card => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => @amount,
:description => 'Rails Stripe customer',
:currency => 'usd'
)
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to charges_path
end
end
app/views/Gebühren/erstellen.html-Code.erb
You bought some Awesome stuff!
app/config/routes.rb
Rails.application.routes.draw do
resources :pins
resources :charges
devise_for :users
root "pins#index"
get "about" => "pages#about" #creates about_path
get "contact" => "pages#contact" #creates contact_path
get "auction" => "pages#auction" #creates auction_path
get "terms" => "pages#terms" #creates terms_path
post 'send_mail', to: 'contact#send_mail'
get 'contact', to: 'contact#show'
scope 'pins', controller: :pins do
scope '/:id' do
post 'bid', to: :bid
end
end
scope 'admin', controller: :admin do
scope 'pins' do
get '/:pin_id', to: :pin
end
end
end
InformationsquelleAutor Codestudio - Cyrus Khajvandi | 2016-06-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihren Javascript-code liest
während Ihre form-name ist
chargesForm
InformationsquelleAutor koopajah