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