Recherche…


Introduction

Ce document prétend vous présenter, avec un exemple complet, comment vous pouvez implémenter différentes méthodes de paiement avec Ruby on Rails.

Dans l'exemple, nous couvrirons Stripe et Braintree, deux plateformes de paiement très connues.

Remarques

Documentation.

Bande

Braintree

Comment intégrer avec Stripe

Ajoutez la gemme Stripe à notre Gemfile

gem 'stripe'

Ajoutez les fichiers initializers/stripe.rb . Ce fichier contient les clés nécessaires pour vous connecter à votre compte de bande.

require 'require_all'

Rails.configuration.stripe = {
    :publishable_key => ENV['STRIPE_PUBLISHABLE_KEY'],
    :secret_key      => ENV['STRIPE_SECRET_KEY']
}

Stripe.api_key = Rails.configuration.stripe[:secret_key]

Comment créer un nouveau client à Stripe

Stripe::Customer.create({email: email, source: payment_token})

Ce code crée un nouveau client sur Stripe avec une adresse e-mail et une source données.

payment_token est le jeton donné du côté du client qui contient un mode de paiement tel qu'une carte de crédit ou un compte bancaire. Plus d'infos: Stripe.js côté client

Comment récupérer un plan de Stripe

Stripe::Plan.retrieve(stripe_plan_id)

Ce code récupère un plan de Stripe par son identifiant.

Comment créer un abonnement

Lorsque nous avons un client et un plan, nous pouvons créer un nouvel abonnement sur Stripe.

Stripe::Subscription.create(customer: customer.id, plan: plan.id)

Il créera un nouvel abonnement et facturera notre utilisateur. Il est important de savoir ce qui se passe réellement sur Stripe lorsque nous inscrivons un utilisateur à un plan, vous trouverez plus d'informations ici: Cycle de vie de l'abonnement Stripe .

Comment facturer un utilisateur avec un paiement unique

Parfois, nous voulons facturer à nos utilisateurs une seule fois, car nous ferons le prochain.

Stripe::Charge.create(amount:   amount, customer: customer, currency: currency)

Dans ce cas, nous facturons notre utilisateur une fois pour un montant donné.

Erreurs courantes:

  • Le montant doit être envoyé sous forme d'entier, ce qui signifie que 2000 sera 20 unités de devise. Vérifiez cet exemple

  • Vous ne pouvez pas facturer un utilisateur dans deux devises. Si l'utilisateur a été facturé en EUR à tout moment dans le passé, vous ne pouvez pas facturer l'utilisateur en USD.

  • Vous ne pouvez pas facturer l'utilisateur sans source (méthode de paiement).



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow