mundipagg-one-ruby

Mundipagg Gem Download

https://rubygems.org/gems/mundipagg_api

$ gem install mundipagg_api
require 'mundipagg_api'

Ruby DevKit is required.

About Windows

The recommended Windows version of Ruby is Ruby 2.1. For gems work correctly it'll be necessary run the following commands:

No Windows a versão do Ruby recomendada é a 2.1. Para que todas as gemas funcionem corretamente é necessário realizar o seguinte processo:

$ gem install rubygems-update
$ update_rubygems
$ gem update --system

Required Gems

$ gem install rest-client
$ gem install rspec
$ gem install nori
$ gem install gyoku
$ gem install nokogiri
$ gem install ffi
$ gem install bundler

Bundler

Run the following commands to install gems:

Rode os seguintes comandos para instalar as gems:

$ gem install bundler
$ bundle install

Running tests with bundle exec:

Rodando testes com bundle exec:

$ bundle exec rspec spec/integration/gateway_spec.rb

Running tests with rake:

Rodando testes com rake:

$ rake

Code Examples

Create a Credit Card Transaction

require 'mundipagg_api'

# passa a merchantKey na variável
merchantKey = 'sua merchantKey'

# instancia classe com métodos de requisição
# :staging ou nada para ambiente sandbox e :production para ambiente de produção
gateway = MundipaggApi.new(:production, merchantKey)

# coleta dados do cartão
creditCardTransaction = CreditCardTransaction.new
creditCardTransaction.AmountInCents = 100
creditCardTransaction.InstallmentCount = 1
creditCardTransaction.TransactionReference = 'CreditCard One RubySDK Test'
creditCardTransaction.CreditCardOperation = 'AuthOnly'
creditCardTransaction.Options.PaymentMethodCode = 1
creditCardTransaction.Options.SoftDescriptorText = 'My Store Name'
creditCardTransaction.CreditCard.CreditCardNumber = '5453010000066167'
creditCardTransaction.CreditCard.ExpMonth = 5
creditCardTransaction.CreditCard.ExpYear = 18
creditCardTransaction.CreditCard.HolderName = 'Maria do Carmo'
creditCardTransaction.CreditCard.SecurityCode = '123'
creditCardTransaction.CreditCard.CreditCardBrand = 'Mastercard'

# cria a transação
createSaleRequest = CreateSaleRequest.new
createSaleRequest.CreditCardTransactionCollection << creditCardTransaction

# faz a requisição de criação de transação, retorna um hash com a resposta
response = gateway.CreateSale(createSaleRequest)

Create a BoletoTransaction

require 'mundipagg_api'

# passa a merchantKey na variável
merchantKey = 'sua merchantKey'

# instancia classe com métodos de requisição
# :staging ou nada para ambiente sandbox e :production para ambiente de produção
gateway = MundipaggApi.new(:production, merchantKey)

# instancia um objeto de transação de boleto
boletoTransaction = BoletoTransaction.new
boletoTransaction.AmountInCents = 100
boletoTransaction.BankNumber = '237'
boletoTransaction.DocumentNumber = '12345678901'
boletoTransaction.Instructions = 'Pagar antes do vencimento'
boletoTransaction.TransactionReference = 'BoletoTest#Ruby01'
boletoTransaction.Options.CurrencyIso = 'BRL'
boletoTransaction.Options.DaysToAddInBoletoExpirationDate = 5

# instancia um objeto de request para fazer a criação de transação
createSaleRequest = CreateSaleRequest.new

# incrementa na coleção de boletos a transação de boleto criada
createSaleRequest.BoletoTransactionCollection << boletoTransaction

# faz a requisição de criação de transação, retorna um hash com a resposta
response = gateway.CreateSale(createSaleRequest)

Cancel Method

require 'mundipagg_api'

merchantKey = 'Sua Merchant Key'

# instancia classe com métodos de requisição
# :staging para ambiente sandbox e :production para ambiente de produção
gateway = MundipaggApi.new(:staging, merchantKey)

# preenche um item de colecao, necessario para cancelamento da transacao de cartao de credito
cancelCreditCardTransactionItem = ManageCreditCardTransaction.new
cancelCreditCardTransactionItem.AmountInCents = 100
cancelCreditCardTransactionItem.TransactionKey = 'TransactionKey da transação'
cancelCreditCardTransactionItem.TransactionReference = 'RubySDK-CancelTest'

# monta o objeto para cancelamento de transação
cancelSaleRequest = ManageSaleRequest.new
cancelSaleRequest.OrderKey = 'OrderKey AQUI'
cancelSaleRequest.CreditCardTransactionCollection << cancelCreditCardTransactionItem

# faz a requisição de cancelamento, retorna um hash com a resposta
response = gateway.Cancel(cancelSaleRequest)

Capture Method

require 'mundipagg_api'

# merchant key 
merchantKey = 'sua merchantKey'

# inicializa a classe com métodos de requisição
# :staging ou nada para ambiente de sandbox e :production para ambiente de produção
gateway = MundipaggApi.new(merchantKey)

# itens necessários para captura da transacão
captureCreditCardTransactionItem = ManageCreditCardTransaction.new
captureCreditCardTransactionItem.AmountInCents = 100
captureCreditCardTransactionItem.TransactionKey = 'transactionKey da transação'
captureCreditCardTransactionItem.TransactionReference = 'RubySDK-CaptureTest (referência da transação)'

# monta o objeto para captura de transação
captureSaleRequest = ManageSaleRequest.new
captureSaleRequest.OrderKey = 'orderkey da transação'

# incrementa na coleção de CreditCardTransactionCollection
captureSaleRequest.CreditCardTransactionCollection << captureCreditCardTransactionItem

# faz a requisição de captura e salva na variável response
response = gateway.Capture(captureSaleRequest)

Retry Method

require 'mundipagg_api'

merchantKey = 'Sua Merchant Key'

# instancia classe com métodos de requisição
# :staging para ambiente sandbox e :production para ambiente de produção
gateway = MundipaggApi.new(:staging, merchantKey)

retrySaleRequest = RetrySaleRequest.new
retrySaleCreditCardTransactionItem = RetrySaleCreditCardTransaction.new

# preenche um item de coleção
retrySaleCreditCardTransactionItem.SecurityCode = '123'
retrySaleCreditCardTransactionItem.TransactionKey = 'Transaction Key AQUI'

# monta o objeto de retentativa
retrySaleRequest.OrderKey = 'OrderKey AQUI'

# incrementa na coleção o item de retry
retrySaleRequest.RetrySaleCreditCardTransactionCollection << retrySaleCreditCardTransactionItem

# faz a requisição de retentativa, retorna um hash com a resposta
response = gateway.Retry(retrySaleRequest)

Query Method

require 'mundipagg_api'

# merchant key 
merchantKey = 'sua merchantKey'

# inicializa a classe com métodos de requisição
# :staging ou nada para ambiente de sandbox e :production para ambiente de produção
gateway = MundipaggApi.new(merchantKey)

# inicializa a QuerySaleRequest
querySaleRequest = QuerySaleRequest.new

# preenche o campo de OrderKey para enviar um request de OrderKey
querySaleRequest.OrderKey = 'sua OrderKey'

# faz a requisição de Query passando QuerySaleRequest.QuerySaleRequestEnum[:OrderKey] para indicar
# que o método irá procurar por OrderKey e passa a OrderKey como segundo parâmetro
# retorna um hash com a resposta
responseQuery = gateway.Query(QuerySaleRequest.QuerySaleRequestEnum[:OrderKey], querySaleRequest.OrderKey)

# se a requisição for por OrderReference ela é bem parecida com a de cima, mudando apenas algumas coisas:
querySaleRequest.OrderReference = 'sua OrderReference'

responseQuery = gateway.Query(QuerySaleRequest.QuerySaleRequestEnum[:OrderReference], querySaleRequest.OrderReference)

ParseXmlToNotification

The ParseXmlToNotification takes an XML and convert it to a hash variable.

O ParseXmlToNotification converte um XML para uma variável hash.

require 'mundipagg_api'

# merchant key 
merchantKey = 'sua merchantKey'

# inicializa a classe com métodos de requisição
# :staging ou nada para ambiente de sandbox e :production para ambiente de produção
gateway = MundipaggApi.new(merchantKey)

xml = 'xml que será passsado na variável'

# faz a requisição de PostNotification (parse do XML) e retorna um hash do XML passado
response = gateway.ParseXmlToNotification(xml)

TransactionReportFile Method

require 'mundipagg_api'

# merchant key 
merchantKey = 'sua merchantKey'

# inicializa a classe com métodos de requisição
# :staging ou nada para ambiente de sandbox e :production para ambiente de produção
gateway = MundipaggApi.new(merchantKey)

# cria uma variável do tipo Date, passando apenas o ano, mês e dia (nessa ordem)
date = Date.new(2014, 12, 10)

# faz a requisição do TransactionReportFile e retorna uma string com os dados do report
response = gateway.TransactionReportFile(date)
TransactionReportFileParser

If you want the string that is received from TransactionReportFile Method to be parsed, there is a method for that.

Este método faz um parse na string recebida do método TransactionReportFile e retorna um hash.

require 'mundipagg_api'

# merchant key 
merchantKey = 'sua merchantKey'

# inicializa a classe com métodos de requisição
# :staging ou nada para ambiente de sandbox e :production para ambiente de produção
gateway = MundipaggApi.new(merchantKey)

# cria uma variável do tipo Date, passando apenas o ano, mês e dia (nessa ordem)
date = Date.new(2014, 12, 10)

# faz a requisição do TransactionReportFile e retorna uma string com os dados do report
request_to_parse = gateway.TransactionReportFile(date)

# faz um parse da string do TransactionReportFile e retorna um hash com a resposta
response = gateway.TransactionReportFileParser(request_to_parse)
TransactionReportFileDownloader

This method download and save the TransactionReportFile to a '.txt' file.

Este método faz o download e salva o TransactionReportFile em um arquivo '.txt' no local indicado.

require 'mundipagg_api'

# merchant key 
merchantKey = 'sua merchantKey'

# inicializa a classe com métodos de requisição
# :staging ou nada para ambiente de sandbox e :production para ambiente de produção
gateway = MundipaggApi.new(merchantKey)

# cria uma variável do tipo Date, passando apenas o ano, mês e dia (nessa ordem)
date = Date.new(2015, 9, 15)

# faz a requisição do transaction report file e salva no destino passado como parâmetro
# o segundo parâmetro é o nome do arquivo, e o terceiro é o local onde será salvo o arquivo
# é salvo um arquivo em .txt no local indicado
response = gateway.TransactionReportFileDownloader(date, 'Teste', "C:\\Users\\YourUser\\Desktop\\")