[rails-br] Cartão de Crédito no Iugu

547 views
Skip to first unread message

Fernando Aureliano

unread,
Feb 14, 2017, 5:59:00 PM2/14/17
to Rails Br
​Não encontro na API do iugu onde colcoar os dados do cartão de crédito.
Alguém pode dar uma luz?



 def pay
    Iugu.api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    param = (params[:token].empty? ? "method" : "token").to_sym
        @cupom = Coupon.find_by(name: params[:cupom])

        if @cupom
            if Time.zone.now > @cupom.end
                redirect_to pagamento_index_path, notice: "O cupom <strong>#{@cupom.name}</strong> não é mais válido. Venceu em <strong>#{@cupom.start.strftime("%d/%m/%Y")}</strong>" and return
            elsif Time.zone.now < @cupom.start
                redirect_to pagamento_index_path, notice: "O cupom <strong>#{@cupom.name}</strong> só será válido a partir de <strong>#{@cupom.start.strftime("%d/%m/%Y")}</strong>" and return
            elsif Time.zone.now > @cupom.start && Time.zone.now < @cupom.end
                @desconto = @cupom
            end
        else
            redirect_to pagamento_index_path, notice: "O cupom <strong>#{params[:cupom]}</strong> não existe" and return
        end

        if current_empresa.uso_sistema == 1
            cpf_cnpj = current_empresa.cnpj
            name = current_empresa.responsavel
        elsif
          cpf_cnpj = current_empresa.cpf
            name = current_empresa.name
        end

        @nome = params[:full_name]
        @ncartao = params[:number].delete(" ")
        @cvv = params[:verification_value]
        @validade = params[:expiration].delete("/")

        Iugu::Charge.create({
    "token" => params[:token],
            "method" => params[:method],
            "number" => @ncartao,
    "email" => "con...@educadorpostural.com.br",
    "months" => params[:meses],
    "items" =>
        [{
        "description" => params[:plano],
        "quantity" => "1",
        "price_cents" => "1000"
      }],
                payer: {
            cpf_cnpj: cpf_cnpj,
            name: name,
            phone: current_empresa.telefone,
            email: current_empresa.email,
            address: {
                street: current_empresa.endereco,
                city: current_empresa.cidade,
                state: current_empresa.estado,
                country: "Brasil",
                zip_code: current_empresa.cep
            }
            }
      }
        )

        customer = Iugu::Customer.create({
          "email" => current_empresa.email,
          "name" => current_empresa.name
        })

    sub_params = {
      plan_identifier: 'empresas_05',
      customer_id: customer.id
    }
        sub_params[:only_on_charge_success] = true if params[:payment_method] == "credit_card"
    subscription = Iugu::Subscription.create(sub_params)
        # subscription = Iugu::Subscription.create({
        #       "plan_identifier" => "individual", "customer_id" => current_empresa.id
        # })

    if subscription.errors
      @plan = Iugu::Plan.fetch_by_identifier('plan_identifier')
      @payment_method = params[:payment_method]
      @error = "Erro na Cobrança!"
      render :index, notice: 'Falha no pagamento.'
    end


            current_empresa.subscription_id = subscription.id
        current_empresa.data_pagamento = Time.zone.now
        current_empresa.save

            if current_empresa.uso_sistema == 1
                redirect_to users_path, notice: 'Pagamento realizado com sucesso!'
            elsif current_empresa.uso_sistema == 2
                redirect_to editar_empresa_path, notice: 'Pagamento realizado com sucesso!'
            end
      # redirect_to :index, notice: 'Falha no pagamento.'

        # Exemplo de Downgrade/Upgrade de Conta (Com cálculo automático de diferença de valores entre planos, créditos, etc)
        # subscription.change_plan( "novo_plano" );

        # Histórico de Pagamentos do Cliente
        # customer.invoices


        end



end





--
Fernando Aureliano


Fernando Aureliano

unread,
Feb 15, 2017, 8:44:46 AM2/15/17
to Rails Br
E pra completar a biblioteca js de verificação do iugu (https://iugu.com/referencias/exemplo-de-checkout) ainda ta me retornando o erro abaixo, msemo quando retiro a mascara do campo do cartão.

Inline image 1
--
Fernando Aureliano


Rogerio Medeiros

unread,
Feb 15, 2017, 9:15:25 AM2/15/17
to rail...@googlegroups.com
Hum seria mais facil voce entrar em contato com o pessoal de la. Serio mesmo.

--
--
Você recebeu essa mensagem porquê está inscrito no Google
Groups "rails-br".
Para enviar uma mensagem para o grupo, mande um email para rail...@googlegroups.com
Para se descadastrar, mande um e-mail para
rails-br+unsubscribe@googlegroups.com
Visite o grupo em http://groups.google.com/group/rails-br?hl=pt-BR
Leia nossa política de uso: http://goo.gl/YGgt7

---
Você recebeu essa mensagem porque está inscrito no grupo "rails-br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para rails-br+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
att,

Rogerio

A complicação se descomplica na mesma proporção que fazemos os nós se desatarem ao tecer o conhecimento do saber.

Neilson Lima

unread,
Feb 23, 2017, 9:21:33 AM2/23/17
to rail...@googlegroups.com
Oi Fernando,

Para realizar os testes a Iugu te dar alguns números de cartões que serão validos somente para os testes.

https://iugu.com/documentacao/realizando-testes

Qualquer dúvida estou à disposição.
--
Atenciosamente,
Neilson P. Lima - 31 - 98808-8407
Gmail(talk): neils...@gmail.com
Skype/FaceBook: neilsonlima
Twitter: _neilsonlima_
Msn: neils...@hotmail.com
------------------------------------------
Analista Desenvolvedor WEB
Belo Horizonte, MG, Brazil

Patrick Ribeiro Negri

unread,
Feb 23, 2017, 10:04:14 AM2/23/17
to rail...@googlegroups.com
Fernando. Tudo bom?

Vamos lá. Os passos para passar uma transação com cartão.

Transação única
1. Usar o iugu.js para salvar um cartão no cofre da iugu e converter para token (Sem passar pelo seu servidor para evitar a necessidade de você precisar de uma certificação PCI). O iugu.js salva o cartão e te devolve um token, vc deve colocar este token em algum campo escondido no formulário e enviar para seu servidor.
2. Usar a chamada de charge com o token em questão e realizar o pagamento. Se quiser algo mais verbal, pode criar a fatura primeiro e depois fazer o charge.

Observações: Neste caso, o cartão é descartado após a utilização (Invalida o token).

Armazenamento para usos futuros.
1. Igual passo a cima
2. Criar Iugu Customer
3. Vincular token como forma de pagamento do customer
4. Chamar "charge" utilizando o método de pagamento do customer ou criar assinatura vinculando o customer para automação de  cobranças recorrentes.

Observações: Um customer pode ter vários métodos de pagamento e existem chamadas de API para listar e setar qual é o primário.

Abs e boa sorte por aí!

Leia nossa política de uso: https://goo.gl/BHB0wS

---
Você recebeu essa mensagem porque está inscrito no grupo "rails-br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para rails-br+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Att
Patrick Negri - CEO
iugu.com - Recebimentos e Assinaturas para a sua empresa


Reply all
Reply to author
Forward
0 new messages