@@ -50,6 +50,7 @@ def log_info(message)
50
50
payment_intent = create_and_capture_payment_intent (
51
51
payload [ :amount ] ,
52
52
payload [ :source ] ,
53
+ payload [ :payment_method ] ,
53
54
payload [ :customer_id ] || @customer . id ,
54
55
payload [ :metadata ] ,
55
56
'usd' ,
@@ -97,6 +98,7 @@ def authenticate!
97
98
payment_intent = create_and_capture_payment_intent (
98
99
params [ :amount ] ,
99
100
params [ :source ] ,
101
+ params [ :payment_method ] ,
100
102
nil ,
101
103
params [ :metadata ] ,
102
104
'usd' ,
@@ -121,6 +123,7 @@ def authenticate!
121
123
params [ :amount ] ,
122
124
nil ,
123
125
nil ,
126
+ nil ,
124
127
params [ :metadata ] ,
125
128
params [ :currency ] ,
126
129
nil
@@ -156,6 +159,7 @@ def authenticate!
156
159
create_and_capture_payment_intent (
157
160
source . amount ,
158
161
source . id ,
162
+ nil ,
159
163
source . metadata [ "customer" ] ,
160
164
source . metadata ,
161
165
source . currency ,
@@ -173,13 +177,14 @@ def authenticate!
173
177
status 200
174
178
end
175
179
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 ,
177
181
metadata = { } , currency = 'usd' , shipping = nil )
178
182
return Stripe ::PaymentIntent . create (
179
183
:amount => amount ,
180
184
:currency => currency || 'usd' ,
181
185
:customer => customer_id ,
182
186
:source => source_id ,
187
+ :payment_method => payment_method_id ,
183
188
:payment_method_types => [ 'card' ] ,
184
189
:description => "Example PaymentIntent" ,
185
190
:shipping => shipping ,
@@ -189,8 +194,9 @@ def create_payment_intent(amount, source_id, customer_id = nil,
189
194
)
190
195
end
191
196
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 ,
193
198
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 )
195
201
return payment_intent . confirm ( )
196
202
end
0 commit comments