All Projects → dkd → Paymill Ruby

dkd / Paymill Ruby

Licence: mit
Ruby wrapper for the Paymill API

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Paymill Ruby

Zold
An Experimental Non-Blockchain Cryptocurrency for Fast Micro Payments
Stars: ✭ 183 (+107.95%)
Mutual labels:  payment, rubygem
Karafka
Framework for Apache Kafka based Ruby and Rails applications development.
Stars: ✭ 1,223 (+1289.77%)
Mutual labels:  rubygem
Alipay Api Php
A concise library in PHP for the Alipay API merchant account.
Stars: ✭ 47 (-46.59%)
Mutual labels:  payment
Rom Http
Abstract HTTP adapter for ROM
Stars: ✭ 65 (-26.14%)
Mutual labels:  rubygem
Dry Validation
Validation library with type-safe schemas and rules
Stars: ✭ 1,087 (+1135.23%)
Mutual labels:  rubygem
Str metrics
Ruby gem (native extension in Rust) providing implementations of various string metrics
Stars: ✭ 68 (-22.73%)
Mutual labels:  rubygem
Paysuper Management Api
The REST API server for the merchant`s dashboard.
Stars: ✭ 46 (-47.73%)
Mutual labels:  payment
Openfintech
Opensource FinTech standards & payment provider data
Stars: ✭ 87 (-1.14%)
Mutual labels:  payment
Active enumerable
ActiveRecord like query methods for Ruby enumerable collections.
Stars: ✭ 73 (-17.05%)
Mutual labels:  rubygem
Omise Ios
Omise iOS SDK
Stars: ✭ 63 (-28.41%)
Mutual labels:  payment
Sbpayment.rb
A client library for sbpayment (SB Payment Service) written in Ruby 😁
Stars: ✭ 58 (-34.09%)
Mutual labels:  payment
Spark api
Ruby client library for communication with the Spark API
Stars: ✭ 56 (-36.36%)
Mutual labels:  rubygem
Reportbuilder
Ruby gem to merge Cucumber JSON reports and build mobile-friendly HTML Test Report, JSON report and retry file.
Stars: ✭ 69 (-21.59%)
Mutual labels:  rubygem
Payment
支付宝支付、银联支付、微信支付、paypal、苹果内购支付
Stars: ✭ 48 (-45.45%)
Mutual labels:  payment
React Native Credit Card Input
Easy, cross-platform credit-card input for your React Native Project! Start accepting payment 💰 in your app today!
Stars: ✭ 1,244 (+1313.64%)
Mutual labels:  payment
Wego
a wechat sdk for golang
Stars: ✭ 47 (-46.59%)
Mutual labels:  payment
Lypaymentfield
多种风格的支付框控件,可定制加密图片,也可使用带动画的弹窗。A variety of styles of payment box controls can be customized to encrypt pictures, can also be used with animated alert.
Stars: ✭ 58 (-34.09%)
Mutual labels:  payment
Vagrant Cloudstack
Use Vagrant to manage your Cosmic or Cloudstack instances.
Stars: ✭ 65 (-26.14%)
Mutual labels:  rubygem
Iamport React Native
React Native용 아임포트 일반.결제 및 휴대폰 본인인증 모듈입니다.
Stars: ✭ 88 (+0%)
Mutual labels:  payment
Rws Ruby Sdk
Ruby Client for Rakuten Web Service
Stars: ✭ 83 (-5.68%)
Mutual labels:  rubygem

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].