Utilizzo Rails 4.2 e cerco di integrare Stripe Checkout (https://stripe.com/docs/checkout/guides/rails) nella mia app per rails e ho uno scenario che non ho visto delineato ovunque. Nota: ho provato l'integrazione di moduli personalizzati da un certo numero di risorse online, ma non ho potuto farlo funzionare così ho deciso di dare checkout.Cercando di inviare il modulo Rails solo dopo il pagamento con stripe di successo Pagamento
Nella mia app per rotaie, ho una tabella degli ordini e la cosa principale che sto cercando di realizzare è avere un modulo in cui l'utente può inviare le proprie informazioni personali (mancato pagamento) per effettuare un ordine. Quindi, l'integrazione di checkout stripe consentirà loro di pagare; tuttavia, una registrazione dell'ordine non verrà creata nel database senza che venga registrato un costo di stripe. Non sono stato in grado di farlo utilizzando l'apposito controller "oneri" suggerito dalla striscia e ho anche provato a incorporare il codice stripe nel mio controller degli ordini (vedi sotto).
Vorrei sottolineare che io HO stato in grado di ottenere il pulsante checkout per presentare al Stripe e le accuse sono elaborati, ma non hanno stato in grado di ottenere un record per essere creato nel mio database.
Ho cercato in lungo e in largo per una risposta a questa domanda (attualmente in attesa di risposta dal supporto stripe). Qualsiasi suggerimento sarebbe molto apprezzato!
orders_controller.rb
(questo è l'esempio in cui ho provato combinando il codice stripe dal controller oneri suggeriscono nel mio regolatore di ordini. Io non sono sicuro che ora che cosa fare dopo la carica viene elaborato per farlo inviare il modulo)
def create
@order = Order.new(order_params)
customer = Stripe::Customer.create(
:email => '[email protected]com',
:card => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => 5000,
:description => 'Rails Stripe customer',
:currency => 'usd'
)
rescue Stripe::CardError => e
flash[:error] = e.message
render 'new'
end
ordini/new.html.erb
(sto tralasciando il codice per tutti gli altri campi nel mio modulo, questo mostra solo il pulsante di invio del modulo e il pulsante di verifica dello stripe. Idealmente avrei potuto combinare le azioni in un unico tasto, o hanno solo il submit passare attraverso quando il pagamento elabora con successo attraverso la banda)
<%= form_for @order do |f| %>
// lots of form fields
<%= f.submit %>
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
data-description="A month's subscription"
data-amount="500"></script>
Grazie mille. Ha funzionato come un fascino! –