Current section
Files
Jump to
Current section
Files
lib/beanstream/payment.ex
defmodule Beanstream.Payment do
@moduledoc """
Make payments.
"""
alias Beanstream.{Gateway, Payment}
defstruct [
order_number: nil,
amount: 0,
payment_method: nil,
language: nil,
customer_ip: nil,
comments: nil,
billing: nil,
shipping: nil,
custom: nil,
card: nil,
payment_profile: nil,
]
@type t :: %Payment{
order_number: String.t,
amount: float, # TODO: not float
payment_method: String.t,
language: String.t,
customer_ip: String.t,
comments: String.t,
billing: Beanstream.Address,
shipping: Beanstream.Address,
custom: map,
card: Beanstream.Card,
payment_profile: Beanstream.PaymentProfile,
}
@doc """
make a payment
"""
@spec make(Gateway.t, Payment.t) :: any
def make(gw, req) do
Beanstream.post("payments", req, auth_header(gw))
|> Beanstream.process_response
end
defp auth_header(gw) do
Gateway.auth_header(gw, "payments")
end
end