[JAVA] [Rails] Présentation de PAY.JP

introduction

Je crée une application Web en utilisant Ruby on Rails dans le développement d'équipe.

La description et le code peuvent prêter à confusion car ils sont encore immatures. Nous mettrons à jour et réviserons les éléments et les changements qui n'ont pas pu être décrits.

Si vous êtes un débutant comme moi, vous avez tendance à perdre de vue ce que vous voulez rechercher maintenant lorsque vous effectuez une recherche répétée, donc je vais expliquer les termes techniques et les termes katakana à chaque fois.

Qu'est-ce que PAY.JP?

cf. https://paymentnavi.com/paymentnews/51558.html

Les informations de carte de crédit du client ne sont pas enregistrées dans la base de données côté application, mais sont enregistrées dans PAY.JP. En associant le client à la carte de crédit et en la traitant, cela devient une API qui vous permet d'effectuer un paiement sécurisé par carte de crédit.

Lors du développement de l'application du marché libre, nous avons implémenté la fonction d'achat de produits en utilisant ce PAY.JP pour effectuer des paiements avec une carte de crédit.

API: Abréviation de «Application Programming Interface», qui signifie «quelque chose qui peut être partagé par un programme spécialisé dans une fonction» ou «un mécanisme de partage de fonctions logicielles».

information sur la version

1. Création de compte PAY.JP

Créez un compte sur le site PAY.JP. (Préparation préalable)

2. Présentation de la gemme PAY.JP

Écrivez ce qui suit dans le Gemfile et exécutez ** bundle install **.

Gemfile


gem 'payjp'

3. Rendre possible la lecture de payjp.js

app/views/layouts/application.html.haml


%html
  %head
    %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
    %title payjptest
    
    -# payjp.Script décrit pour que js puisse être lu
    %script{src: "https://js.pay.jp/", type: "text/javascript"}
    
    = csrf_meta_tags
    = stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload'
    = javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
  %body
    = yield

4. `Définition des variables d'environnement``

ʻVariable d'environnement`: L'OS enregistre en permanence les valeurs de réglage afin qu'elles puissent être définies et référencées par l'utilisateur ou le programme à exécuter. Certains peuvent être explicitement créés ou modifiés par l'opération de l'utilisateur. Si vous n'êtes pas sûr, vous pouvez le comprendre en exécutant la commande ** printenv ** (vérifiez si les variables d'environnement sont définies) dans le terminal.

Puisqu'il n'est pas bon pour des raisons de sécurité d'attacher directement la clé privée ou la clé publique au code, Écrivez le code comme ceci et écrivez-le dans .bash_profile.   Payjp.api_key = ENV['PAYJP_PRIVATE_KEY']

.bash_profile: ** Une fois à la connexion ** Exécuté. Par exemple, il est chargé lorsque vous démarrez Terminal.app. Il est bon de définir les variables d'environnement quant à ce qu'il faut définir spécifiquement dans ce fichier.

.bashrc: ** Exécuté une fois au démarrage du shell **. Appuyer sur bash sur la ligne de commande chargera à nouveau .bashrc. (.Bash_profile n'est pas lu) Si vous souhaitez le définir à chaque fois que vous démarrez le shell, placez le paramètre dans ce fichier.

Tout d'abord, vérifiez l'existence de .bash_profile.

Terminal


$ ls -a

Ce n'était pas mon cas. Créez un fichier vide avec la commande ** touch **.

Terminal


$ touch ~/.bash_profile
$ touch ~/.bashrc

Confirmez que le fichier a été créé. (S'il n'est pas affiché, exécutez la commande suivante telle quelle)

Terminal


$ ls -a

//Exemple
.bash_profile	.gitignore	Gemfile		Rakefile	config
.bashrc		public		.ruby-version	Gemfile.lock	app		

Terminal


$ vim ~/.bash_profile

Décrit dans .bash_profile.

.bash_profile


//Tout d'abord, appuyez sur «i» pour entrer en mode insertion
export PAYJP_ACCESS_KEY='sk_test_*************'
export PAYJP_PUBLIC_KEY='pk_test_*************'
//touche esc=> :Dans l'ordre de wq.bash_Profil de sortie

Après avoir écrit les variables d'environnement à la fin, assurez-vous d'activer les paramètres avec la commande suivante.

Terminal


$ source ~/.bash_profile

en conclusion

C'est tout pour l'introduction de PAY.JP. Il existe différents articles sur la mise en œuvre de la fonction d'enregistrement de carte de crédit, veuillez donc vous référer à chacun d'eux.

Article de référence

[Implémenter une fonction d'achat à l'aide de Payjp in Rails] (https://qiita.com/suzy1031/items/7964829086eb929471a6) [Implémentation des fonctions d'enregistrement et de suppression de carte de crédit avec Payjp (Rails)] (https://qiita.com/takachan_coding/items/f7e70794b9ca03b559dd) [[Rails] Implémentation de la fonction de paiement avec payjp ① ~ Enregistrement de la carte de crédit ~] (https://qiita.com/dice9494/items/4aa04da1056d1f15919e) [Résumé de .bash_profile et .bashrc] (https://qiita.com/takutoki/items/021b804b9957fe65e093)

Recommended Posts

[Rails] Présentation de PAY.JP
Introduction de pay.jp
Introduction de milkode
[Rails 6] cocoon_ introduction
[Ruby on Rails] Introduction des données initiales
[Ruby on Rails] Jusqu'à l'introduction de RSpec
[Rails] conçoit une méthode d'introduction
Introduction de l'authentification des utilisateurs
Implémentation de la suppression d'ajax dans Rails
[Docker] Introduction de l'instruction de base de Docker
Utilisation du type booléen 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] Localisation japonaise des messages d'erreur
Introduction de javaFX dans Eclipse (2020-avril)
[Rails] Implémentation de la fonction d'importation CSV
[Rails] Implémentation asynchrone de la fonction similaire
[Rails] Répertorier les instances de plusieurs modèles
[Rails] Vérifiez le contenu de l'objet
[Rails] Implémentation de la fonction de prévisualisation d'image
Connaissance de base de Ruby on Rails
Présentation de l'application de révision de livres Rails RSpec
Explication de l'ordre des itinéraires ferroviaires
[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] Résumé de la configuration de routage compliquée
Vérifier l'état de migration des rails
[Rails] Implémentation de fonctions de catégorie plusieurs à plusieurs
[Rails] Différences et utilisation de each_with_index et each.with_index
De l'introduction à l'utilisation de byebug
[Rails] Types d'associations (un-à-plusieurs / plusieurs-à-plusieurs)
[Introduction aux rails] Comment utiliser le rendu
[Utilisation spécifique de before_action] Refactoring des rails
De la traction des rails image-docker au lancement
[Rails] Conservation temporaire des données par session
L'identité des paramètres de rails [: id]
Rails Ajout d'une fonction de connexion facile et facile
[rails] Liste des actions définies dans Controller
[Rails 6.0] À propos de la sauvegarde par lots de plusieurs enregistrements
[Session d'étude interne] Introduction du "Code lisible"
[Rails] Changer le nom de l'étiquette de f.label
Rails [Pour les débutants] Implémentation de la fonction de commentaire
Production d'applications personnelles 2 Introduction de la police WEB