質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Stripe

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2477閲覧

railsとstripeでフリマアプリを作りたいが販売者に送金するシステムができない

yamada_yuuki

総合スコア100

Stripe

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2020/09/10 14:17

編集2020/09/10 14:19

railsとstripeでカード決済システムを作ったのですが買ってから販売者に送金する機能の実装方法がわかりません。送金機能の参考サイトは見つけているのですがそのまま実装すると、Errorが出てしまいます。なにかわかる方は回答お願いします。

カード決済機能実装時の参考サイト

送金機能の参考サイト

error

1You have insufficient funds in your Stripe account. One likely reason you have insufficient funds is that your funds are automatically being paid out; try enabling manual payouts by going to https://dashboard.stripe.com/account/payouts.

手動支払いを有効にしてください。と言っているのですがそうするとまた別のErrorになります。参考サイトにはそもそもこんなことは書いてないのでこんなことはやらなくていいはずです。

class ChargesController < ApplicationController require "stripe" Stripe.api_key = ENV["SECRET_KEY"] 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: "商品ID:#{@post.id} 商品名:#{@post.title}", currency: "jpy", }) Stripe::Transfer.create( amount: @post.price, currency: 'jpy', destination: "acct_***" ) redirect_to "/posts/#{@post.id}", notice: "商品を購入しました!" rescue Stripe::CardError => e flash[:error] = e.message redirect_to new_charge_path end end
= form_tag charge_path(@post) do script.stripe-button data-amount="#{@post.price}" data-currency="jpy" data-description="クレジット決済" data-key="#{Rails.configuration.stripe[:publishable_key]}" data-locale="auto" data-name="#{@post.title}を購入" data-email="#{current_user.email}" data-label="購入する" data-allow-remember-me="false" src="https://checkout.stripe.com/checkout.js"

あとアカウントのテストデータを見ると

このアカウントの支払いと入金を有効にするには、アカウントの所有者から Stripe に追加情報をお知らせいただく必要があります。 情報が必要です 銀行口座またはデビットカード 商品の詳細 ビジネスの Web サイト 利用規約への同意 追加の不足データ 期日 今すぐ コード

とかいてあり入金も支払いも無効と書かれていました。これも原因がわからない状態です。

require 'stripe' Stripe.api_key = ENV['SECRET_KEY'] account = Stripe::Account.create({ type: 'standard', country: "JP", })

rails6
postgresSQL
slim

間違っている所だらけかもしれませんし半丸投げ気味になってしまいましたがご了承ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2020/09/10 14:50

> 参考サイトにはそもそもこんなことは書いてないのでこんなことはやらなくていいはずです。 今は2020年の9月、参考サイトは1年前の情報と2年半前の情報です。仕様が変わっていてもおかしくありません。 古い情報を参考にする事自体は悪だとは思いませんが、金を扱うシステムを作るのに困った時に公式情報(英語だろうが)を読まないのは危険です。
guest

回答1

0

ベストアンサー

回答

まずは公式APIリファレンスをは読んで理解しましょう。
特にお金を扱う場合、理解が及ばないままコピペで作ってしまうと問題が発生した時にどうにもならなくなります。

公式リファレンスを読めない/理解できないのであれば、そのAPIやサービスは使わない方が良いです。
日本語で技術サポートを受けられるサービスを使ったり、決済部分を丸投げできるプラットフォームを使いましょう。

備考

送金機能の参考サイトは見つけているのですがそのまま実装すると

であれば、参考サイトの記述が間違っているのか何か抜けているところがあるのでしょう。

手動支払いを有効にしてください。と言っているのですが

エラーはAPIリファレンス以上にきちんと読まないといけません。

You have insufficient funds in your Stripe account.

ですから、主な理由は残高が足りないです。

One likely reason you have insufficient funds is that your funds are automatically being paid out; try enabling manual payouts by going to https://dashboard.stripe.com/account/payouts.

その後の文章はあくまで例です。
良くある理由としては口座への自動振り替えが設定されているのでその場合は「手動支払いを有効にしてください」くらいの感じですね。

参考サイトにはそもそもこんなことは書いてないのでこんなことはやらなくていいはずです。
参考サイトが(少なくともyamada_yuukiさんの状況においては)正しく無いということです。
世の中には正しくない/前提条件が記載されていないコードがいくらでも掲載されています。

基本的にはAPIのリファレンスとエラーメッセージを頼りとして開発を進める必要があります。

間違っている所だらけかもしれませんし半丸投げ気味になってしまいましたがご了承ください。

いきなりアプリケーションに組み込むのではなく、まずは各APIを叩くだけのサンプルコードを自分で作ってみて、動作を確認されることをお勧めします。

投稿2020/09/10 15:41

編集2020/09/11 07:26
tanat

総合スコア18727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問