Skip to content
This repository was archived by the owner on Feb 27, 2023. It is now read-only.

Commit cf52ab4

Browse files
Add support for creating a PaymentIntent with a PaymentMethod (#48)
1 parent 16c2813 commit cf52ab4

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

web.rb

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ def log_info(message)
5050
payment_intent = create_and_capture_payment_intent(
5151
payload[:amount],
5252
payload[:source],
53+
payload[:payment_method],
5354
payload[:customer_id] || @customer.id,
5455
payload[:metadata],
5556
'usd',
@@ -97,6 +98,7 @@ def authenticate!
9798
payment_intent = create_and_capture_payment_intent(
9899
params[:amount],
99100
params[:source],
101+
params[:payment_method],
100102
nil,
101103
params[:metadata],
102104
'usd',
@@ -121,6 +123,7 @@ def authenticate!
121123
params[:amount],
122124
nil,
123125
nil,
126+
nil,
124127
params[:metadata],
125128
params[:currency],
126129
nil
@@ -156,6 +159,7 @@ def authenticate!
156159
create_and_capture_payment_intent(
157160
source.amount,
158161
source.id,
162+
nil,
159163
source.metadata["customer"],
160164
source.metadata,
161165
source.currency,
@@ -173,13 +177,14 @@ def authenticate!
173177
status 200
174178
end
175179

176-
def create_payment_intent(amount, source_id, customer_id = nil,
180+
def create_payment_intent(amount, source_id, payment_method_id, customer_id = nil,
177181
metadata = {}, currency = 'usd', shipping = nil)
178182
return Stripe::PaymentIntent.create(
179183
:amount => amount,
180184
:currency => currency || 'usd',
181185
:customer => customer_id,
182186
:source => source_id,
187+
:payment_method => payment_method_id,
183188
:payment_method_types => ['card'],
184189
:description => "Example PaymentIntent",
185190
:shipping => shipping,
@@ -189,8 +194,9 @@ def create_payment_intent(amount, source_id, customer_id = nil,
189194
)
190195
end
191196

192-
def create_and_capture_payment_intent(amount, source_id, customer_id = nil,
197+
def create_and_capture_payment_intent(amount, source_id, payment_method_id, customer_id = nil,
193198
metadata = {}, currency = 'usd', shipping = nil)
194-
payment_intent = create_payment_intent(amount, source_id, customer_id, metadata, currency, shipping)
199+
payment_intent = create_payment_intent(amount, source_id, payment_method_id, customer_id,
200+
metadata, currency, shipping)
195201
return payment_intent.confirm()
196202
end

0 commit comments

Comments
 (0)