class MidasClient::Subscription
Public Instance Methods
cancel_subscription(subscription_token)
click to toggle source
This method cancel a subscription.¶ ↑
This is a is synchronous operation. Params: subscriptionToken: string (Subscription unique identification generated by our gateway and received in the subscription's creation response) Response: result: { success: true/falseb0FIYhr/xCvGFMuR1Wg059X/0cqwLg== code: "XXX" message: "Some message to you" }
# File lib/midas_client/subscription.rb, line 88 def cancel_subscription(subscription_token) # define o método de envio da requisição method = :put # monta a URL de chamada da requisição endpoint = get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:cancel].gsub('{subscriptionToken}', subscription_token) # faz a chamada a plataforma de pagamento (MIDAS) request(method, endpoint, self.login, self.password, {}) end
create_subscription(*params)
click to toggle source
This method creates a subscription.¶ ↑
It is a synchronous operation, using method POST Params: externalId: string (Transaction identification on the client application) externalDate: [optional] datetime from client application - YYYY-MM-DDThh:mm:SS.sssTDZ - ISO8601 frequencyType string Is the frequency about the charge will run. Possible values: DAY/WEEK/MONTH frequencyInterval integer The interval that will be used. startDate datetime for the beginning of subscription - yyyy-MM-dd invoicesCount integer - number of invoices for the subscription amount: number (Only integer numbers, with the last two digits representing the cents. For example: 100 is equivalent to R$ 1,00) cardToken: string (created by method card_store) cvv: number (Security Code) callbackUrl string - URL to receive the result for each invoice charge Response: { "result": { "success": "true", "code": "0", "message": "Sucesso" }, "subscriptionToken": "49ac54257eb1f92f" } Response with first payment { "result": { "success": "true", "code": "0", "message": "Sucesso" }, "subscriptionToken": "49ac54257eb1f92f", "firstInvoiceResult": { "success": true, "code": "000", "message": "Sucesso" } } Error response
{
"result": { "success": "false", "code": "114", "message": "O token do cartao é obrigatório" }
}
# File lib/midas_client/subscription.rb, line 57 def create_subscription(*params) # Parametros são recebidos como um array de hash, pego o 1o item do array params = params.first # define o método de envio da requisição method = :post # monta a URL de chamada da requisição endpoint= get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:create] params[:externalDate] = (params[:externalDate].blank? ? Time.now.iso8601(1) : params[:externalDate]) params[:invoicesCount]= (params[:invoicesCount].blank? ? 12 : params[:invoicesCount]) # faz a chamada a plataforma de pagamento (MIDAS) request(method, endpoint, self.login, self.password, params) end
subscription_by_token(subscription_token)
click to toggle source
This method performs a query by a specific transaction.¶ ↑
This is a is synchronous operation, using method GET Params: subscription_token: string (Transaction unique identification generated by our gateway and received in the subscription's create response)# Response: { :result=>{ :success=>true, :code=>"000", :message=>"Sucesso" }, :subscription=>{ :externalId=>"10011", :frequencyType=>"MONTH", :frequencyInterval=>1, :startDate=>"2016-07-28T00:00:00.000-04", :invoicesCount=>12, :paymentMethod=>"CREDIT_CARD", :amount=>5000, :creditCard=>{ :brand=>"VISA", :panLastDigits=>"1855", :expirationMonth=>12, :expirationYear=>2020, :holderName=>"TESTE CONSOLE", :customer=>{ :documentType=>"CPF", :documentNumber=>"41468031520" } }, :token=>"a2bebd13f0a43e5a", :status=>"CANCELLED" } }
# File lib/midas_client/subscription.rb, line 180 def subscription_by_token(subscription_token) # define o método de envio da requisição method = :get # monta a URL de chamada da requisição endpoint = get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:by_token].gsub('{subscriptionToken}', subscription_token) # faz a chamada a plataforma de pagamento (MIDAS) request(method, endpoint, self.login, self.password, {}) end
subscription_invoices(subscription_token)
click to toggle source
This method performs a query by a specific transaction.¶ ↑
This is a is synchronous operation, using method GET Params: subscription_token: string (Transaction unique identification generated by our gateway and received in the subscription's create response)# Response: { :result=>{ :success=>true, :code=>"000", :message=>"Sucesso" }, :invoices=>[{ :number=>1, :amount=>5000, :expirationDate=>"2016-07-28", :token=>"8bc3bf2ff9b08566fa8496fdce6c6f99", :status=>"PAID" }. {:number=>2,...}, {:number=>3,}] }
# File lib/midas_client/subscription.rb, line 215 def subscription_invoices(subscription_token) # define o método de envio da requisição method = :get # monta a URL de chamada da requisição endpoint = get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:invoices].gsub('{subscriptionToken}', subscription_token) # faz a chamada a plataforma de pagamento (MIDAS) request(method, endpoint, self.login, self.password, {}) end
update_invoice(invoice_token, params)
click to toggle source
This method updates a subscription.¶ ↑
This is a is synchronous operation. Params: subscriptionToken: querystring (Subscription unique identification generated by our gateway and received in the subscription's creation response) amount: number (Only integer numbers, with the last two digits representing the cents. For example: 100 is equivalent to R$ 1,00) expirationDate string deadline date for the invoice. FORMAT: YYY-MM-DD Response: result: { success: true/false code: "XXX" message: "Some message to you" }
# File lib/midas_client/subscription.rb, line 274 def update_invoice(invoice_token, params) # define o método de envio da requisição method = :put # monta a URL de chamada da requisição endpoint = get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:update_invoice].gsub('{invoiceToken}', invoice_token) # faz a chamada a plataforma de pagamento (MIDAS) request(method, endpoint, self.login, self.password, params) end
update_subscription(subscription_token, params)
click to toggle source
This method updates a subscription callback, amount and updates opened invoices' amount.¶ ↑
This is a is synchronous operation. Params: subscriptionToken: querystring (Subscription unique identification generated by our gateway and received in the subscription's creation response) params: { amount: number (Only integer numbers, with the last two digits representing the cents. For example: 100 is equivalent to R$ 1,00) callbackUrl: string - URL to receive the result for each invoice charge } Response: result: { success: true/false code: "XXX" message: "Some message to you" }
# File lib/midas_client/subscription.rb, line 117 def update_subscription(subscription_token, params) # define o método de envio da requisição method = :put # monta a URL de chamada da requisição endpoint = get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:update].gsub('{subscriptionToken}', subscription_token) # faz a chamada a plataforma de pagamento (MIDAS) para atualizar o valor de face e callback da assinatura response = request(method, endpoint, self.login, self.password, params) # recupera a lista de invoices da assinatura para chamar o método de atualização de cada invoice. response_invoices = subscription_invoices(subscription_token) result = response_invoices[:result] invoices = response_invoices[:invoices] # filtra apenas as invoices em aberto opened_invoices = invoices.select{|s| s[:status] == 'OPEN'} unless invoices.blank? # percorre cada uma das invoices abertas e chama o método de atualização opened_invoices.each do |inv| update_invoice(inv[:token], {amount: params[:amount]}) end response end
update_subscription_card(subscription_token, new_card_token)
click to toggle source
This method updates the credit card information associated to the subscription.¶ ↑
This is a is synchronous operation, using method PUT Params: subscription_token: string (Transaction unique identification generated by our gateway and received in the subscription's create response)# new_card_token: string that represents the new credit card token (created using card_store) for the subscription Response: { "result": { "success": true, "code": "0", "message": "Sucesso" } }
# File lib/midas_client/subscription.rb, line 243 def update_subscription_card(subscription_token, new_card_token) # define o método de envio da requisição method = :put # monta a URL de chamada da requisição endpoint = get_env[:url] + EndPoints::SUBSCRIPTIONS[:context] + EndPoints::SUBSCRIPTIONS[:update_card].gsub('{subscriptionToken}', subscription_token) params = { cardToken: new_card_token } # faz a chamada a plataforma de pagamento (MIDAS) request(method, endpoint, self.login, self.password, params) end