altyaper / conekta-elixir

Elixir library for Conekta api calls
MIT License
16 stars 13 forks source link
api-client api-wrapper elixir

Build Status

Conekta Library

Wrapper to connect with https://api.conekta.io.

conekta-elixir documentation

Setup

Installation

Add Conekta to your mix.exs dependencies:

#mix.exs
defp deps do
  [
    #If you have trouble with poison add
    #{:poison, "~> 3.1", override: true}
    {:conekta, "~> 1.0"}
  ]
end

Configuration

Add your keys in your config.exs file

# config.exs
config :conekta,
  publickey: "YOUR-PUBLIC-KEY",
  privatekey: "YOUR-PRIVATE-KEY"

Customers

Get

Get all current customers

#Get the last
Conekta.Customers.customers()

Create

Create a customer by passing a %Conekta.Customer{} struct

#Create a new customer map
new_customer = %Customer{
  name: "Fake Name",
  email: "fake@email.com",
  corporate: true,
  payment_sources: [%{
      token_id: "tok_test_visa_4242",
      type: "card"
  }]
}

#Create a new customer
Conekta.Customers.create(new_customer)

Find

Find a customer by passing the unique ID

Conekta.Customers.find(id)

Delete

Delete a customer by passing the unique ID

Conekta.Customers.delete(id)

Orders

Get

Conekta.Orders.orders()

Create

#Create a new order map
new_order = %Order{currency: "MXN",
customer_info: %{
    customer_id: content.id
}, line_items: [%{
    name: "Product 1",
    unit_price: 35000,
    quantity: 1
}], charges: [%{
    payment_method: %{
        type: "default"
    }
}]}

#Create an order
response = Conekta.Orders.create(new_order)

WebHooks

Helper function for webhook handling. check possible events

case Conekta.WebHook.received(params) do
  {:charge_created, struct} -> ...
  {:charge_paid, struct} -> ...
  {:plan_created, struct} -> ...
  {:customer_created, struct} -> ...
  {:subscription_created, struct} -> ...
  {:subscription_paid, struct} -> ...
  {:subscription_canceled, struct} -> ...
  {:chargeback_created, struct} -> ...
  {:chargeback_lost, struct} -> ...
end

Test

If you want to add something new, make sure all the tests pass before making a PR

mix test

Send pull request

I would love to check new contributions to this repository. Fork from dev and do a PR into dev again.

License

Available with MIT License.