gmxCheckout

Build Status

A simple library to charge your customers in a monthly basis using gmxCheckout payment system.

Installation

Add this line to your application's Gemfile:

gem 'gmxcheckout'

And then execute:

$ bundle

Or install it yourself as:

$ gem install gmxcheckout

Usage

Start by configuring the required api_key in your initializer.

GmxCheckout.configure do |config|
  config.api_key = ENV['GMXCHECKOUT_API_KEY']
end

Now you might want to use this pseudo-code in your User model on after_commit callback.

def charge_credit_card
  gmx = GmxCheckout::API.new

  response = gmx.subscriptions.create \
    amounts: [199_00],
    browser: extras[:browser],
    remote_ip: extras[:remote_ip],
    notification_url: extras[:notification_url],
    description: 'Awesome SaaS',
    invoice_name: 'Awesome SaaS',
    address: subscription.address,
    customer: {
      name: user.full_name,
      email: user.email,
      phone: subscription.phone,
      cpf: CPF.new(subscription.cpf).stripped
    },
    credit_card: subscription.credit_card_params.merge(
      holder_name: user.full_name
    )

  if response.success?
    subscription.code = response.body.subscription_code
    subscription.status = response.body.subscription_status
    subscription.expires_at = 30.days.from_now
    subscription.save
  else
    invalidate_credit_card
  end
end

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/rainerborene/gmxcheckout.

License

The gem is available as open source under the terms of the MIT License.