create a customer when a payment happens

This commit is contained in:
Rimian Perkins 2019-12-17 10:03:00 +11:00
parent 92f6569f9f
commit fcfd2be41b
2 changed files with 17 additions and 2 deletions

View File

@ -11,12 +11,22 @@ module DiscourseSubscriptions
def create
begin
customer = ::Stripe::Customer.create(
email: current_user.email,
)
DiscourseSubscriptions::Customer.create(
user_id: current_user.id,
customer_id: customer[:id],
)
payment = ::Stripe::PaymentIntent.create(
payment_method_types: ['card'],
payment_method: params[:payment_method],
amount: params[:amount],
currency: params[:currency],
confirm: true
confirm: true,
customer: customer[:id],
)
render_json_dump payment

View File

@ -25,12 +25,17 @@ module DiscourseSubscriptions
describe "create" do
it "creates a payment intent" do
::Stripe::Customer.expects(:create).with(
email: user.email
).returns(id: 'cus_87653')
::Stripe::PaymentIntent.expects(:create).with(
payment_method_types: ['card'],
payment_method: 'pm_123',
amount: '999',
currency: 'gdp',
confirm: true
confirm: true,
customer: 'cus_87653'
)
post "/s/payments.json", params: {