Skip to content
This repository has been archived by the owner on May 5, 2020. It is now read-only.
/ paymill-ruby Public archive

Ruby wrapper for the Paymill API

License

Notifications You must be signed in to change notification settings

dkd/paymill-ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Paymill Build Status

This is a Ruby wrapper for Paymill's API.

Documentation

We use RubyDoc for documentation.

The documentation of the current release can be found here: http://rubydoc.info/gems/paymill/frames/index

Usage

First, you've to install the gem

gem install paymill

and require it

require "paymill"

Then you have to set your API key:

Paymill.api_key = "your-api-key"

Configuration

You can also set the API version, base endpoint and port:

Paymill.api_version = "v2"
Paymill.api_base    = "0.0.0.0"
Paymill.api_port    = 3000

Logging

Out of the box paymill-ruby will log all requests and responses to STDOUT, you can use any logger you want, though:

Paymill.logger = Logger.new(STDERR)

Clients

Paymill documentation on clients

Creating a new client:

Paymill::Client.create(email: "[email protected]", description: "He is a Ruby guy.")

Or find an existing client:

Paymill::Client.find("client_88a388d9dd48f86c3136")

Updating an existing client only works on an instance:

client = Paymill::Client.find("client_88a388d9dd48f86c3136")
client.update_attributes(email: "[email protected]")

Deleting a client:

Paymill::Client.delete("client_88a388d9dd48f86c3136")

For retrieving a collection of all clients you might use the all operation:

Paymill::Client.all

To sort and filter collection lists of objects, use the all method with an options hash. For example to find the most recent transactions belonging to a client you can use the following code:

Paymill::Transaction.all(client: "<client_id>", order: "created_at_desc")

Please note that Transactions and Payments cannot be updated.

Payments

Paymill documentation on payments

Creating a new credit card payment:

Paymill::Payment.create(token: "098f6bcd4621d373cade4e832627b4f6")

Creating a new debit card payment:

Paymill::Payment.create(type: "debit", code: "12345678", account: "1234512345", holder: "Max Mustermann")

Or finding an existing payment:

Paymill::Payment.find("pay_3af44644dd6d25c820a8")

Deleting a payment:

Paymill::Payment.delete("pay_3af44644dd6d25c820a8")

For retrieving a collection of all payments you might use the all operation:

Paymill::Payment.all

Transactions

Paymill documentation on transactions

A transaction can be executed as following

params = {
    :amount => 2000, # cents. Must be an integer
    :currency => 'USD', # iso
    :client => 'client_123', # client id. Use 'Paymill::Client'
    :payment => 'payment_123', # payment id. Use 'Paymill::Payment'
    :description => "some comment if needed"
}
Paymill::Transaction.create(params)

Offers

Paymill documentation on offers

Creating a new offer:

Paymill::Offer.create(name: "Monthly", interval: "1 month", amount: 1000, currency: "GBP", trial_period_days: 0)

Updating an offer (works on an Offer instance and only the name can be changed):

offer = Paymill::Offer.find("offer_08064e30032afa3aa046")
offer.update_attributes(name: "New name")

Deleting an offer:

Paymill::Offer.delete('offer_08064e30032afa3aa046')

Retrieving an offer:

Paymill::Offer.find("offer_753480df39aeb114f2f3")

Retrieving all offers:

Paymill::Offer.all

Webhooks

Paymill documentation on webhooks

Creating a new webhook:

Paymill::Webhook.create(email: "[email protected]", event_types: ["transaction.succeeded", "subscription.succeeded"])

Updating a webhook works on an instance (url/email and the event types can be changed):

hook = Paymill::Webhook.find("hook_940143bcdc0c40e7756f")
hook.update_attributes(email: "[email protected]")

Deleting a webhook:

Paymill::Webhook.delete("hook_940143bcdc0c40e7756f")

Retrieving a webhook:

hook = Paymill::Webhook.find("hook_940143bcdc0c40e7756f")

Retrieving all webhooks:

Paymill::Webhook.all

Refunds

Paymill documentation on refunds

Creating a new refund:

Paymill::Refund.create(id: "tran_023d3b5769321c649435", amount: 4200)

Retrieving a refund:

refund = Paymill::Refund.find("refund_87bc404a95d5ce616049")

Retrieving all refunds:

Paymill::Refund.all

Requirements

This gem requires Ruby 1.9 and faces version 2 of Paymill's API.

Bugs

Please report bugs at http://github.com/dkd/paymill-ruby/issues.

Note on Patches/Pull Requests

  • Fork the project from http://github.com/dkd/paymill-ruby.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright (c) 2012-2014 dkd Internet Service GmbH, Stefan Sprenger. See LICENSE for details.