[RUBY] Machen wir eine Shopping-Site mit Streifen! (Kauf)

Kleine Werbung

https://www.code-sell.net/ Wir haben einen Service erstellt, mit dem Sie Codes verkaufen können! Wenn Sie Code haben, den Sie nicht benötigen, verwenden Sie ihn bitte. Ich verwende übrigens den in diesem Artikel beschriebenen Streifen.

zunaechst

Hallo! Ist es diesmal einfach, Schienen und Streifen zu verwenden? Ich werde eine EC-Site erstellen. Vor einiger Zeit habe ich auch eine Code-Verkaufsseite mit Schienen und Streifen erstellt, aber ich hatte große Probleme, weil zu wenig Informationen über Streifen vorhanden waren. Um genau zu sein, es gibt viele Informationen selbst, aber es gibt nur wenige praktische Informationen, und es war so, als würde man den Code arrangieren und ein wenig wie das offizielle Dokument erklären. Dieses Mal werden wir die Seite tatsächlich erstellen.

Technologie zu verwenden / was zu machen

Dinge, die Sie Artikel wie Notiz kaufen können

rails ruby stripe

Was ist überhaupt Streifen?

Es ist ein Zahlungssystem. Im Vergleich zu payjp ist die Gebühr günstiger und es gibt eine Geldtransferfunktion.

Gesamtbild

https___stripe.com_img_docs_connect_overview.png

Kunde: Ein Käufer und Zahler. Grün in der Abbildung oben. Plattform: Eine EC-Site, die von nun an erstellt werden soll. Wo soll der Service erbracht werden? Verbundene Konten: Diejenigen, die Dienste über die Plattform bereitstellen und Einzahlungen / Verkäufer erhalten (auch als Kinderkonten bezeichnet). Pink in der Abbildung oben.

Konto Typ

Es gibt Standard- und benutzerdefinierte Arten von untergeordneten Konten (Verkäufern) in Streifen. Die Funktionen und die Registrierungsmethode sind unterschiedlich. Schauen wir uns das an.

Standard Entwicklungskosten (Arbeitsaufwand): Einfach Benutzerperspektive: Subtil Verantwortung, wenn etwas passiert: Verkäufer (Kinderkonto) Empfehlung: Mittel

Dies ist ein sehr einfach zu implementierender Typ. Wie ich später schreiben werde, werden die meisten Registrierungsformulare und Systeme von der Streifenseite verwaltet. Wir fügen einfach den Link in das Registrierungsformular ein und kopieren ihn und fügen ihn in den Controller ein. Wenn etwas passiert (negativer Saldo usw.), liegt es in der Verantwortung des Benutzers, nicht von uns. Diese Methode teilt dem Benutzer jedoch eindeutig mit, dass er Streifen verwendet. Das Registrierungsformular wird vollständig von stripe erstellt und der Verkäufer kann auf den Verwaltungsbildschirm (Dashboard) von Stripe zugreifen. Das Design kann auch nicht geändert werden.

Custom Entwicklungskosten (Arbeit): Schwierig Benutzerperspektive: Gut Verantwortung, wenn etwas passiert: Plattform (Entwickler) Empfehlung: Hoch

Dies ist ein schwierig zu implementierender Typ. Erstellen Sie Ihr eigenes Registrierungsformular, System zum Senden an Stripe und Dashboard. Es liegt in meiner Verantwortung, wenn etwas passiert. Von der Registrierung bis zum Verwaltungsbildschirm wird jedoch alles auf Ihrer eigenen Website erledigt. Natürlich ist das Design auch kostenlos.

Vorbereitung

Wie ich bereits erklärt habe, wollen wir uns vorerst die Details merken. Dieses Mal erstellen wir eine einmalige Kaufseite. Sie können auch regelmäßig bezahlen, aber das wurde in einem anderen Artikel getan ...

Registrieren Sie sich und erhalten Sie einen API-Schlüssel Neue Registrierung Bildschirm zum Abrufen des API-Schlüssels

Installieren Sie gem

gemfile


gem "stripe"
gem 'dotenv-rails'

Vergiss das Bündel nicht. Erstellen Sie dann eine Datei mit dem Namen .env direkt unter dem App-Ordner

PUBLISHABLE_KEY="pk_test_xxx"
SECRET_KEY="sk_test_xxx"
CLIENT_ID="ca_xxx"

Bitte beschreiben. CLIENT_ID ist Von hier abrufen

config/initializers/stripe.rb


Rails.configuration.stripe = {
  publishable_key: ENV["PUBLISHABLE_KEY"],
  secret_key: ENV["SECRET_KEY"],
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]

Erstellen Sie eine Anwendung

Da es von Anfang an schwierig ist, es zu machen, werde ich es zum Gerüst machen. Wie ich zu Beginn geschrieben habe, werde ich dieses Mal einen Service erstellen, mit dem Sie Artikel wie Notizen kaufen können. Eigentlich ist es besser, eine Funktion zum Hochladen von Bildern zu haben, aber diesmal liegt der Fokus auf Streifen, sodass die Funktion der App minimiert wird.

rails g scaffold post title:string content:text price:integer

Inhalt ... Inhalt, Produkt Preis ... Preis

rails db:migrate

Ich denke du hast ein Gerüst.

Kauffunktion

Die Kauffunktion ist überraschend einfach. Machen wir es vorerst zuerst.

routes.rb


post "posts/:id/charge", to: "charge#create", as: "charge"

views

↓ erb Version

erb:show.html.erb


<%= form_tag charge_path(@post) do %>
  <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
    data-key="#{ENV["PUBLISHABLE_KEY"]}"
    data-amount="<%= @post.price %>"
    data-currency="jpy"
    data-description="Kreditabwicklung"
    data-name=<%= "#{@post.title}Kaufen" %>
    data-email=<%= "#{current_user.email}" %>
    data-label="Kaufen"
    data-image="https://stripe.com/img/documentation/checkout/marketplace.png "
    data-locale="auto"
    data-allow-remember-me="false">
  </script>
<% end %>

↓ schlanke Version

slim:show.html.slim


= form_tag charge_path(@post) do
  script.stripe-button data-amount="#{@post.price}\
  " data-currency="jpy" data-description="Kreditabwicklung\
  " data-key="#{ENV["PUBLISHABLE_KEY"]}" data-locale="auto" data-name="#{@post.title}Kaufen\
  " data-email="#{current_user.email}" data-label="Kaufen\
  " data-allow-remember-me="false" src="https://checkout.stripe.com/checkout.js"

Wenn Sie Ansichten schreiben charges_controller.rb Bitte machen Sie einen Controller namens.

charges_controller.rb


class ChargesController < ApplicationController
  def create
    @post = Post.find(params[:id])
    customer = Stripe::Customer.create({
      email: params[:stripeEmail],
      source: params[:stripeToken],
    })
    charge = Stripe::Charge.create({
      customer: customer.id,
      amount: @post.price,
      description: "Produkt ID:#{@post.id}Produktname:#{@post.title}",
      currency: "jpy",
    })
  rescue Stripe::CardError => e
    flash[:error] = e.message
    redirect_to new_charge_path
  end
end

Um es kurz zu erklären, wird der Kunde in der 4. Zeile erstellt. Gebühr erstellt Zahlungsinformationen. Kunde bleibt wie es ist Menge legt den Preis des Produkts fest Stellen Sie die Produktinformationen in der Beschreibung ein (unabhängig vom Inhalt). Stellen Sie die Währung ein, die nach Währung behandelt werden soll (USD, JPY usw.).

Ich denke, Sie können es jetzt kaufen. Die Kartennummer beim Testen 4242 4242 4242 4242 ist. cvc kann alles sein. Das Ablaufdatum der Karte kann jederzeit in der Zukunft liegen. Es gibt mehrere andere. Testkartenliste

Am Ende

Das ist alles für diese Zeit. Das nächste Mal werde ich devise vorstellen, meine Seite erstellen und erklären, wie ein Standardkonto oder ein benutzerdefiniertes Konto erstellt wird. Es ist schwer, also kann es ein ziemliches Ziel sein.

Klicken Sie hier für mehr! ↓ ↓ https://qiita.com/UTOG/items/4d87595890cbfbed2e9f

Recommended Posts

Machen wir eine Shopping-Site mit Streifen! (Kauf)
Machen Sie einen Diamanten mit Java
Machen wir eine Weihnachtskarte mit Verarbeitung!
[Java] Erstellen wir eine DB-Zugriffsbibliothek!
Erstellen wir eine REST-API mit WildFly Swarm.
Erstellen Sie eine EC-Site mit Streifen! (Konto-Erstellung)
Lassen Sie uns eine Suchfunktion mit Rails (Ransack) machen
Lassen Sie uns einen Leistungsschalter für den Backend-Service mit Actuator of Spring Boot (Teil 1) herstellen.
Machen wir einen LINE Bot mit Ruby + Sinatra - Teil 2
Lass uns einen Roboter bauen! "Eine einfache Demo von Java AWT Robot"
Machen wir einen LINE Bot mit Ruby + Sinatra - Teil 1
[Einführung in die Android App-Entwicklung] Machen wir einen Zähler