Current section
Files
Jump to
Current section
Files
lib/openpay/charges.ex
defmodule ExOpenpay.Charges do
@moduledoc """
Functions for working with charges at Openpay. Through this API you can:
* create a charge,
* update a charge,
* get a charge,
* list charges,
* count charges,
* refund a charge,
* partially refund a charge.
Openpay API reference: https://www.openpay.mx/docs/api/?shell#cargos
"""
def endpoint_for_entity(owner_id) do
"customers/#{owner_id}/charges"
end
@doc """
Create a charge.
Creates a charge for a customer or card using amount and params. `params`
must include a source.
Returns `{:ok, charge}` tuple.
## Examples
params = [
source_id: "kqgykn96i7bcs1wwhvgw",
method: "card",
amount: 100,
currency: "MXN",
description: "Cargo inicial a mi cuenta",
order_id: "oid-00051",
device_session_id: "kR1MiQhz2otdIuUlQkbEyitIqVMiI16f",
customer: [
name: "Juan",
last_name: "Vazquez Juarez",
phone_number: "4423456723",
email: "juan.vazquez@empresa.com.mx"
]
]
{:ok, charge} = ExOpenpay.Charges.create(1000, params)
"""
def create(owner_id, params) do
create owner_id, params, ExOpenpay.config_or_api_key
end
@doc """
Create a charge. Accepts ExOpenpay API key.
Creates a charge for a customer or card using amount and params. `params`
must include a source.
Returns `{:ok, charge}` tuple.
## Examples
{:ok, charge} = ExOpenpay.Charges.create(1000, params, key)
"""
def create(owner_id, params, key) do
#default currency
params = Keyword.put_new params, :currency, "MXN"
ExOpenpay.make_request_with_key(:post, endpoint_for_entity(owner_id), key, params)
|> ExOpenpay.Util.handle_openpay_response
end
end