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

Commit 0f3c3de

Browse files
Add support for passing payment_method_types param in payload (#65)
This is necessary for supporting payment methods other than 'card'
1 parent b387631 commit 0f3c3de

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

web.rb

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,10 @@ def log_info(message)
5555
payload[:amount],
5656
payload[:source],
5757
payload[:payment_method],
58+
payload[:payment_method_types] || ['card'],
5859
payload[:customer_id] || @customer.id,
5960
payload[:metadata],
60-
'usd',
61+
payload[:currency] || 'usd',
6162
payload[:shipping],
6263
payload[:return_url],
6364
)
@@ -148,7 +149,7 @@ def create_customer
148149
end
149150
begin
150151
setup_intent = Stripe::SetupIntent.create({
151-
payment_method_types: ['card'],
152+
payment_method_types: payload[:payment_method_types] || ['card'],
152153
payment_method: payload[:payment_method],
153154
return_url: payload[:return_url],
154155
confirm: payload[:payment_method] != nil,
@@ -183,6 +184,7 @@ def create_customer
183184
params[:amount],
184185
nil,
185186
nil,
187+
params[:payment_method_types] || ['card'],
186188
nil,
187189
params[:metadata],
188190
params[:currency],
@@ -226,6 +228,7 @@ def create_customer
226228
source.amount,
227229
source.id,
228230
nil,
231+
['card'],
229232
source.metadata["customer"],
230233
source.metadata,
231234
source.currency,
@@ -244,15 +247,15 @@ def create_customer
244247
status 200
245248
end
246249

247-
def create_payment_intent(amount, source_id, payment_method_id, customer_id = nil,
250+
def create_payment_intent(amount, source_id, payment_method_id, payment_method_types = ['card'], customer_id = nil,
248251
metadata = {}, currency = 'usd', shipping = nil, return_url = nil, confirm = false)
249252
return Stripe::PaymentIntent.create(
250253
:amount => amount,
251254
:currency => currency || 'usd',
252255
:customer => customer_id,
253256
:source => source_id,
254257
:payment_method => payment_method_id,
255-
:payment_method_types => ['card'],
258+
:payment_method_types => payment_method_types,
256259
:description => "Example PaymentIntent",
257260
:shipping => shipping,
258261
:return_url => return_url,
@@ -266,8 +269,9 @@ def create_payment_intent(amount, source_id, payment_method_id, customer_id = ni
266269
)
267270
end
268271

269-
def create_and_capture_payment_intent(amount, source_id, payment_method_id, customer_id = nil,
270-
metadata = {}, currency = 'usd', shipping = nil, return_url = nil)
271-
return create_payment_intent(amount, source_id, payment_method_id, customer_id,
272-
metadata, currency, shipping, return_url, true)
272+
def create_and_capture_payment_intent(amount, source_id, payment_method_id, payment_method_types = ['card'],
273+
customer_id = nil, metadata = {}, currency = 'usd', shipping = nil,
274+
return_url = nil)
275+
return create_payment_intent(amount, source_id, payment_method_id, payment_method_types,
276+
customer_id, metadata, currency, shipping, return_url, true)
273277
end

0 commit comments

Comments
 (0)