Module: EPayCo::Client::Plans

Included in:
EPayCo::Client
Defined in:
lib/epayco/client/plans.rb

Overview

Defines methods related to Plans

Instance Method Summary collapse

Instance Method Details

#plan_all(params = {}) ⇒ Array

Returns all the Plans registered

Examples:

All the Plans

[
  {
    "id_plan": "cursocarpinteria",
    "object": "plan",
    "name": "Curso de carpintería",
    "description": "En este curso aprenderás carpintería",
    "amount": 30000,
    "currency": "cop",
    "interval": "month",
    "status": "active",
    "trialDays": 30,
    "created": "Sep 26, 2016 3:15 PM"
  },
  {
    "id_plan": "cursocarpinteria2",
    "object": "plan",
    "name": "Curso de carpintería2",
    "description": "En este curso aprenderás carpintería2",
    "amount": 30000,
    "currency": "cop",
    "interval": "month",
    "status": "active",
    "trialDays": 30,
    "created": "Sep 26, 2016 3:52 PM"
  }
]

Returns:

  • (Array)

Supported formats:

  • :json



36
37
38
39
40
# File 'lib/epayco/client/plans.rb', line 36

def plan_all(params={})
  path = "/recurring/v1/plans/#{public_key}"
  response_options = { return_object: true }
  get(path, params, response_options)
end

#plan_create(options = {}) ⇒ Hashie::Mash

Creates a new plan

Examples:

Success

{
  "status": "Creado",
  "user": "cdc4654c502f9d320ebet4f6230m669d",
  "id": "test"
}

Fail

{
  "status": "error",
  "description": "El id del mensaje es existente o ya no esta en uso id: test"
}

Parameters:

  • options (defaults to: {})

    The Plan Attributes

Options Hash (options):

  • :id_plan (String)

    Proporciona un nombre único para identificar el plan

  • :name (String)

    Nombre del plan que mostraras a tus clientes

  • :description (String)

    Descripción del plan creado que será mostrada a tus clientes

  • :amount (Integer)

    Hace referencia al valor que se cobrará en cada periodo

  • :currency (String)

    Consta de 3 letras que identifica la moneda en la que harás el cobro segun las normas ISO code currency

  • :interval (String)

    Especifica la recurrencia del cobro. 'day', 'week', 'month', o 'year'

  • :interval_count (Integer)

    Especifica la cantidad de intervalos por ejemplo si interval = “month” y interval_count es igual a 2 se cobrará cada 2 meses

  • :trial_days (Integer)

    Numero de dias que se podrán probar tus servicios antes del cobro, su valor inicial es 0

Returns:

  • (Hashie::Mash)

Supported formats:

  • :json



66
67
68
69
70
# File 'lib/epayco/client/plans.rb', line 66

def plan_create(options={})
  path = "/recurring/v1/plan/create"
  response_options = { return_object: 'data' }
  post(path, options.merge(public_key: public_key), response_options)
end

#plan_details(plan_id, params = {}) ⇒ Hash

Returns the details of a plan

Examples:

Plan Details

{
  "id_plan": "test",
  "object": "plan",
  "name": "Test",
  "description": "Plan de prueba",
  "amount": 30,
  "currency": "usd",
  "interval": "year",
  "status": "active",
  "trialDays": 0,
  "created": "19-02-2017"
}

Parameters:

  • plan_id (String)

    Plan ID (nombre único para identificar el plan)

Returns:

  • (Hash)

Supported formats:

  • :json



108
109
110
111
112
# File 'lib/epayco/client/plans.rb', line 108

def plan_details(plan_id, params={})
  path = "/recurring/v1/plan/#{public_key}/#{plan_id}"
  response_options = { return_object: true }
  get(path, params, response_options)
end

#plan_update(plan_id, fields = {}) ⇒ Hashie::Mash

Updates a new plan

Examples:

Success

{
  "status": "Actualizado",
  "userId": "4378g0ebb84536876540407bzb04815n",
  "planId": "test"
}

Parameters:

  • plan_id (String)

    Plan ID (nombre único para identificar el plan)

  • fields (Hash) (defaults to: {})

    Clave y valor de los campos a editar

Returns:

  • (Hashie::Mash)

Supported formats:

  • :json



84
85
86
87
88
# File 'lib/epayco/client/plans.rb', line 84

def plan_update(plan_id, fields={})
  path = "/recurring/v1/plan/edit/#{public_key}/#{plan_id}"
  response_options = { return_object: 'data' }
  put(path, fields, response_options)
end