def index
@order = Order.new
end
def create
@order = Order.new(price: order_params[:price])
#@Preis zu bestellen="1000"Preis gibt ein
if @order.valid?
#Bedingungen zum Speichern(Nicht leer)Wenn Sie löschen, werden Zahlung und Daten gespeichert
pay_item#Eine Zahlung tätigen
@order.save#Daten speichern
return redirect_to root_path
else
render 'index'
end
end
private
def order_params
params.permit(:price, :token)#Spalten, die die Datenspeicherung ermöglichen
end
def pay_item
Payjp.api_key = ENV["PAYJP_SECRET_KEY"] # PAY.JP test privater Schlüssel
Payjp::Charge.create(
amount: order_params[:price], #Produktpreis
card: order_params[:token], #Kartenmarker
currency:'jpy' #Währungstyp(Japanische YEN)
)
end
end
-Token (Karteninformationen) wird nicht in der Auftragstabelle gespeichert. Verwenden Sie für @order also price: order_params [: price] Die vom Benutzer eingegebenen Preis-Preis-Informationen werden ersetzt.
・ Die Zahlung erfolgt über pay_item Preis: 1000 mit @ order.save, Preisinformationen in Tabelle speichern
class Order < ApplicationRecord
validates :price, presence: true
end
・ Was ist Validierung? Bedingungen zum Speichern von Daten in einer Tabelle
・ Diesmal, wenn Sie mit leerem Preis-Eingabefeld senden Ich versuche die Daten nicht zu speichern.
・ Da Token (Kreditkarteninformationen) nicht in der Tabelle gespeichert ist, wird die Validierung durchgeführt Beschreiben Sie nicht die Lagerbedingungen.
Recommended Posts