Packages
stripity_stripe
2.0.0-alpha.8
3.3.2
3.3.1
3.2.0
3.1.1
3.1.0
3.0.0
2.17.3
2.17.2
2.17.1
2.17.0
2.16.0
2.15.1
2.15.0
2.14.1
2.14.0
2.13.0
2.12.1
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.2
2.7.1
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.3
2.2.2
2.2.1
2.2.0
2.1.0
2.0.1
2.0.0
2.0.0-alpha.11
2.0.0-alpha.10
2.0.0-alpha.9
2.0.0-alpha.8
2.0.0-alpha.7
2.0.0-alpha.6
2.0.0-alpha.5
2.0.0-alpha.4
2.0.0-alpha.3
2.0.0-alpha.2
2.0.0-alpha.1
1.6.2
1.6.1
1.6.0
1.4.0
1.3.0
1.2.0
1.1.0
0.5.0
0.4.0
0.3.0
0.2.0
A Stripe client for Elixir.
Current section
Files
Jump to
Current section
Files
lib/stripe/token.ex
defmodule Stripe.Token do
@moduledoc """
Work with Stripe token objects.
You can:
- Create a token for a Connect customer with a card
- Create a token with all options - Only for Unit Tests with Stripe
- Retrieve a token
Does not yet render lists or take options.
Stripe API reference: https://stripe.com/docs/api#token
"""
@type t :: %__MODULE__{}
defstruct [
:id, :object,
:card, :client_ip, :created, :livemode, :type, :used
]
@plural_endpoint "tokens"
@schema %{
bank_account: [:create, :retrieve],
card: [:create, :retrieve],
client_ip: [:retrieve],
created: [:retrieve],
customer: [:create],
id: [:retrieve],
livemode: [:retrieve],
object: [:retrieve],
pii: %{
personal_id_number: [:create]
},
type: [:retrieve],
used: [:retrieve]
}
@doc """
Create a token for a Connect customer with a card belonging to the
platform customer.
You must pass in the account number for the Stripe Connect account
in `opts`.
"""
@spec create_on_connect_account(String.t, String.t, Keyword.t) :: {:ok, t} | {:error, Stripe.api_error_struct}
def create_on_connect_account(customer_id, customer_card_id, opts = [connect_account: _]) do
body = %{
card: customer_card_id,
customer: customer_id
}
Stripe.Request.create(@plural_endpoint, body, @schema, opts)
end
@doc """
Create a token for a Connect customer using the default card.
You must pass in the account number for the Stripe Connect account
in `opts`.
"""
@spec create_with_default_card(String.t, Keyword.t) :: {:ok, t} | {:error, Stripe.api_error_struct}
def create_with_default_card(customer_id, opts \\ []) do
body = %{
customer: customer_id
}
Stripe.Request.create(@plural_endpoint, body, @schema, opts)
end
@doc """
Create a token.
WARNING : This function is mainly for testing purposes only, you should not use
it on a production server, unless you are able to transfer and store credit card
data on your server in a PCI compliance way.
Use the Stripe.js library on the client device instead.
"""
@spec create(map, Keyword.t) :: {:ok, t} | {:error, Stripe.api_error_struct}
def create(changes, opts \\ []) do
Stripe.Request.create(@plural_endpoint, changes, @schema, opts)
end
@doc """
Retrieve a token.
"""
@spec retrieve(binary, Keyword.t) :: {:ok, t} | {:error, Stripe.api_error_struct}
def retrieve(id, opts \\ []) do
endpoint = @plural_endpoint <> "/" <> id
Stripe.Request.retrieve(endpoint, opts)
end
end