[RUBY] [rails] gem'payjp'implementation procedure

  1. Installez gem'payjp '

2. Créer et décrire le contrôleur de commande

  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

3 Décrire les informations de validation dans le modèle

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

[rails] gem'payjp'implementation procedure
[Rails] Commentaire mémo de procédure d'implémentation
Échafaudage de procédure d'implémentation de fonction CRUD de base
Implémentation de la recherche par hashtag Rails
Implémentation du compte à rebours Rails6
Implémentation de Rails Action Text
[Rails 6.0] Procédure d'implémentation "Easy login" requise pour le portfolio
Procédure de déploiement de Rails Heroku
Rails, procédure d'installation RSpec
Implémentation de la suppression d'ajax dans Rails
Implémentation de la fonction de recherche floue Rails
[Rails] Implémentation de la fonction de catégorie
[Rails] Implémentation de la fonction tutoriel
[Rails] Implémentation d'une fonction similaire
[Rails] Implémentation de la suppression logique utilisateur
[Rails] Implémentation de la fonction d'importation CSV
[Rails] Implémentation asynchrone de la fonction similaire
[rails] Implémentation de l'écran de connexion dans la devise
[Rails] Implémentation de la fonction de prévisualisation d'image
[Procédure d'implémentation] Créer une fonction d'authentification utilisateur à l'aide de sorcellerie dans Rails
[Rails] À propos de la mise en œuvre de la fonction similaire
[Rails] Implémentation de la fonction de retrait utilisateur
[Rails] Implémentation de la fonction d'exportation CSV
Rails sur la procédure de construction de l'environnement Docker
[Rails] Implémentation de fonctions de catégorie plusieurs à plusieurs
[Rails] Implémentation de la fonction de catégorie d'ascendance gemme
[Ruby on Rails] Implémentation de la fonction de commentaire
[EC2 / Vue / Rails] Procédure de déploiement EC2 pour Vue + Rails
[Rails] Je vais expliquer la procédure d'implémentation de la fonction follow en utilisant form_with.
[Ruby on Rails] Suivez l'implémentation de la fonction: bidirectionnelle
Rails [Pour les débutants] Implémentation de la fonction de commentaire
[Ruby on rails] Implémentation d'une fonction similaire
[Rails] Mise en œuvre de la validation qui maintient l'unicité
[Rails / Heroku] Procédure de résolution d'erreur après push
[Rails / appareil] Implémentation de la fonction d'édition des informations de compte / Procédure de changement de destination de la redirection
[Rails] Procédure de mise en œuvre lorsque des fonctions publiques / privées sont ajoutées à la fonction de publication