def index
@order = Order.new
end
def create
@order = Order.new(price: order_params[:price])
#@prix à commander="1000"Le prix entre
if @order.valid?
#Conditions d'épargne(Pas vide)Si vous effacez, le paiement et les données seront enregistrés
pay_item#Effectuer un paiement
@order.save#Enregistrer des données
return redirect_to root_path
else
render 'index'
end
end
private
def order_params
params.permit(:price, :token)#Colonnes permettant le stockage des données
end
def pay_item
Payjp.api_key = ENV["PAYJP_SECRET_KEY"] # PAY.Clé privée de test JP
Payjp::Charge.create(
amount: order_params[:price], #Prix du produit
card: order_params[:token], #Jeton de carte
currency:'jpy' #Type de devise(yen japonais)
)
end
end
-Le jeton (informations sur la carte) n'est pas enregistré dans la table de commande. Donc, pour @order, utilisez price: order_params [: price] Les informations de prix de prix saisies par l'utilisateur sont remplacées.
・ Le paiement est effectué par pay_item Prix: 1000 avec @ order.save, enregistrez les informations de prix dans le tableau
class Order < ApplicationRecord
validates :price, presence: true
end
・ Qu'est-ce que la validation? Conditions d'enregistrement des données dans un tableau
・ Cette fois, si vous envoyez avec le champ de saisie de prix vide J'essaye de ne pas sauvegarder les données.
・ Puisque le jeton (informations de carte de crédit) n'est pas enregistré dans le tableau, validation Ne décrivez pas les conditions de stockage.
Recommended Posts