module EPayCo::Client::Plans

Defines methods related to Plans

Public Instance Methods

plan_all(params={}) click to toggle source

Returns all the Plans registered

@format :json @return [Array] @example 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"
  }
]
# 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={}) click to toggle source

Creates a new plan

@format :json @param options The Plan Attributes @option options [String] :id_plan Proporciona un nombre único para identificar el plan @option options [String] :name Nombre del plan que mostraras a tus clientes @option options [String] :description Descripción del plan creado que será mostrada a tus clientes @option options [Integer] :amount Hace referencia al valor que se cobrará en cada periodo @option options [String] :currency Consta de 3 letras que identifica la moneda en la que harás el cobro segun las normas [ISO code](www.xe.com/iso4217.php) currency @option options [String] :interval Especifica la recurrencia del cobro. 'day', 'week', 'month', o 'year' @option options [Integer] :interval_count Especifica la cantidad de intervalos por ejemplo si interval = “month” y interval_count es igual a 2 se cobrará cada 2 meses @option options [Integer] :trial_days Numero de dias que se podrán probar tus servicios antes del cobro, su valor inicial es 0 @return [Hashie::Mash] @example Success

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

@example Fail

{
  "status": "error",
  "description": "El id del mensaje es existente o ya no esta en uso id: test"
}
# 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={}) click to toggle source

Returns the details of a plan

@format :json @param plan_id [String] Plan ID (nombre único para identificar el plan) @return [Hash] @example 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"
}
# 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={}) click to toggle source

Updates a new plan

@format :json @param plan_id [String] Plan ID (nombre único para identificar el plan) @param fields [Hash] Clave y valor de los campos a editar @return [Hashie::Mash] @example Success

{
  "status": "Actualizado",
  "userId": "4378g0ebb84536876540407bzb04815n",
  "planId": "test"
}
# 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