Class: Stripe::PaymentMethodService
- Inherits:
-
StripeService
- Object
- StripeService
- Stripe::PaymentMethodService
- Defined in:
- lib/stripe/services/payment_method_service.rb
Instance Method Summary collapse
-
#attach(payment_method, params = {}, opts = {}) ⇒ Object
Attaches a PaymentMethod object to a Customer.
-
#check_balance(payment_method, params = {}, opts = {}) ⇒ Object
Retrieves a PaymentMethod's Balance.
-
#create(params = {}, opts = {}) ⇒ Object
Creates a PaymentMethod object.
-
#detach(payment_method, params = {}, opts = {}) ⇒ Object
Detaches a PaymentMethod object from a Customer.
-
#list(params = {}, opts = {}) ⇒ Object
Returns a list of all PaymentMethods.
-
#retrieve(payment_method, params = {}, opts = {}) ⇒ Object
Retrieves a PaymentMethod object attached to the StripeAccount.
-
#serialize_batch_attach(payment_method, params = {}, opts = {}) ⇒ Object
Serializes a PaymentMethod attach request into a batch job JSONL line.
-
#update(payment_method, params = {}, opts = {}) ⇒ Object
Updates a PaymentMethod object.
Methods inherited from StripeService
#initialize, #request, #request_stream
Constructor Details
This class inherits a constructor from Stripe::StripeService
Instance Method Details
#attach(payment_method, params = {}, opts = {}) ⇒ Object
Attaches a PaymentMethod object to a Customer.
To attach a new PaymentMethod to a customer for future payments, we recommend you use a SetupIntent or a PaymentIntent with setup_future_usage. These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for future use, which makes later declines and payment friction more likely. See Optimizing cards for future payments for more information about setting up future payments.
To use this PaymentMethod as the default for invoice or subscription payments, set invoice_settings.default_payment_method, on the Customer to the PaymentMethod's ID.
19 20 21 22 23 24 25 26 27 |
# File 'lib/stripe/services/payment_method_service.rb', line 19 def attach(payment_method, params = {}, opts = {}) request( method: :post, path: format("/v1/payment_methods/%<payment_method>s/attach", { payment_method: CGI.escape(payment_method) }), params: params, opts: opts, base_address: :api ) end |
#check_balance(payment_method, params = {}, opts = {}) ⇒ Object
Retrieves a PaymentMethod's Balance.
30 31 32 33 34 35 36 37 38 |
# File 'lib/stripe/services/payment_method_service.rb', line 30 def check_balance(payment_method, params = {}, opts = {}) request( method: :post, path: format("/v1/payment_methods/%<payment_method>s/check_balance", { payment_method: CGI.escape(payment_method) }), params: params, opts: opts, base_address: :api ) end |
#create(params = {}, opts = {}) ⇒ Object
Creates a PaymentMethod object. Read the Stripe.js reference to learn how to create PaymentMethods via Stripe.js.
Instead of creating a PaymentMethod directly, we recommend using the [PaymentIntents API to accept a payment immediately or the SetupIntent](https://docs.stripe.com/docs/payments/accept-a-payment) API to collect payment method details ahead of a future payment.
43 44 45 46 47 48 49 50 51 |
# File 'lib/stripe/services/payment_method_service.rb', line 43 def create(params = {}, opts = {}) request( method: :post, path: "/v1/payment_methods", params: params, opts: opts, base_address: :api ) end |
#detach(payment_method, params = {}, opts = {}) ⇒ Object
Detaches a PaymentMethod object from a Customer. Detachment is permanent and irreversible — once detached, a PaymentMethod can no longer be used for payments or re-attached to a Customer.
54 55 56 57 58 59 60 61 62 |
# File 'lib/stripe/services/payment_method_service.rb', line 54 def detach(payment_method, params = {}, opts = {}) request( method: :post, path: format("/v1/payment_methods/%<payment_method>s/detach", { payment_method: CGI.escape(payment_method) }), params: params, opts: opts, base_address: :api ) end |
#list(params = {}, opts = {}) ⇒ Object
Returns a list of all PaymentMethods.
65 66 67 68 69 70 71 72 73 |
# File 'lib/stripe/services/payment_method_service.rb', line 65 def list(params = {}, opts = {}) request( method: :get, path: "/v1/payment_methods", params: params, opts: opts, base_address: :api ) end |
#retrieve(payment_method, params = {}, opts = {}) ⇒ Object
Retrieves a PaymentMethod object attached to the StripeAccount. To retrieve a payment method attached to a Customer, you should use Retrieve a Customer's PaymentMethods
76 77 78 79 80 81 82 83 84 |
# File 'lib/stripe/services/payment_method_service.rb', line 76 def retrieve(payment_method, params = {}, opts = {}) request( method: :get, path: format("/v1/payment_methods/%<payment_method>s", { payment_method: CGI.escape(payment_method) }), params: params, opts: opts, base_address: :api ) end |
#serialize_batch_attach(payment_method, params = {}, opts = {}) ⇒ Object
Serializes a PaymentMethod attach request into a batch job JSONL line.
87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/stripe/services/payment_method_service.rb', line 87 def serialize_batch_attach(payment_method, params = {}, opts = {}) request_id = SecureRandom.uuid stripe_version = opts[:stripe_version] || Stripe.api_version request_body = { id: request_id, params: params, stripe_version: stripe_version, } request_body[:path_params] = { payment_method: payment_method } request_body[:context] = opts[:stripe_context] if opts[:stripe_context] JSON.generate(request_body) end |
#update(payment_method, params = {}, opts = {}) ⇒ Object
Updates a PaymentMethod object. A PaymentMethod must be attached to a customer to be updated.
102 103 104 105 106 107 108 109 110 |
# File 'lib/stripe/services/payment_method_service.rb', line 102 def update(payment_method, params = {}, opts = {}) request( method: :post, path: format("/v1/payment_methods/%<payment_method>s", { payment_method: CGI.escape(payment_method) }), params: params, opts: opts, base_address: :api ) end |