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

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

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

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

Ruby on Rails

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

Q&A

0回答

86閲覧

Stripeを使った決済機能の諸々の処理についての質問【Ruby on Rails】

Java_student

総合スコア83

Stripe

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

Ruby on Rails

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

0グッド

1クリップ

投稿2024/11/03 08:55

編集2024/11/04 18:36

実現したいこと

Stripeを使った決済機能を作成しているのですが、カード情報を打ち込むと保存されるのは出来たのですが、顧客欄の顧客をクリックすると名将未定の顧客と表示されるので、Stripe Checkoutで名前を打ち込むフォーム欄を表示させる方法を教えて頂きたいです。
また削除機能を付けたのですが、エラーでundefined method `delete'になるのですがカード登録している際に表示するようにしている解約ボタンが消えるので、登録しているカードがちゃんと削除されているようにも見えたのですがStripe側の顧客一覧には残っているので、これはそう言う仕様なのか、それとも削除できていないのかを知りたいです。

前提

Stripeを使ったサブスク機能は下記のサイトを参考にしました。
RailsアプリにStripeを用いたサブスクリプション決済を導入する(詳しく解説)

現状、登録後は下記の表示になります。(テスト環境です)
イメージ説明

発生している問題・エラーメッセージ

undefined method `delete'

該当のソースコード

teams_controllers

1class TeamsController < ApplicationController 2 3 4 def new 5 @user = current_user 6 @team = Team.find_by(user_id: @user.id) 7 end 8 9 def create 10 @team = Team.new(user_id: current_user.id) 11 customer = Stripe::Customer.create({ 12 source: params[:stripeToken] 13 }) 14 subscription = Stripe::Subscription.create({ 15 customer: customer.id, 16 plan: "price_" 17 }) 18 @team.plan_id = "price" 19 @team.customer_id = customer.id 20 @team.stripe_subscription_id = subscription.id 21 @team.active_until = Time.zone.at(subscription.current_period_end) 22 if @team.save 23 flash[:success] = "成功しました" 24 redirect_to root_url 25 else 26 render 'new' 27 end 28 end 29 30 def destroy 31 @team = Team.find_by(user_id: current_user.id) 32 @deleting_stripe_subscription = Stripe::Subscription.retrieve(@team.stripe_subscription_id) 33 if current_user.unsubscribe 34 @deleting_stripe_subscription.delete 35 flash[:notice] = "解約に成功しました" 36 redirect_to root_url 37 else 38 render 'new' 39 end 40 end 41end

views/teams/new.html.erb

1<%= form_tag teams_path do %> 2 <article> 3 <% if flash[:error].present? %> 4 <div id="error_explanation"> 5 <p><%= flash[:error] %></p> 6 </div> 7 <% end %> 8 9 <label class="amount"> 10 <span>料金: 500円</span> 11 </label> 12 </article> 13 14 <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" 15 data-key = "pk_test" 16 data-description="月額支払い" 17 data-name="月額料金支払い" 18 data-amount="500" 19 data-locale="ja" 20 data-currency="JPY" 21 data-label="支払い"> 22 </script> 23<% end %> 24<% if @team %> 25 <%= link_to "解約する",@team, method: :delete, data: { confirm: "解約しますがいいですか?"}%> 26 <p>登録日が月末付近の場合ご注意ください</p> 27<% end %>

試したこと

名前を登録するところはscriptタグ内の記述で設定できるのかなと思うのですが、調べてもうまく見つからないので、別で作成する必要があるのでしょうか?

補足情報(FW/ツールのバージョンなど)

ruby 3.2.2
rails 6

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問