README.md in gopay-ruby-0.1.1 vs README.md in gopay-ruby-0.2.0
- old
+ new
@@ -1,37 +1,143 @@
# gopay-ruby
[![Gem Version](https://badge.fury.io/rb/gopay-ruby.png)](http://badge.fury.io/rb/gopay-ruby)
[![Build Status](https://travis-ci.org/PrimeHammer/gopay-ruby.png?branch=master)](https://travis-ci.org/PrimeHammer/gopay-ruby)
-[![Dependency Status](https://gemnasium.com/PrimeHammer/gopay-ruby.png)](https://gemnasium.com/PrimeHammer/gopay-ruby)
[![Code Climate](https://codeclimate.com/github/PrimeHammer/gopay-ruby.png)](https://codeclimate.com/github/PrimeHammer/gopay-ruby)
-[![Coverage Status](https://coveralls.io/repos/PrimeHammer/gopay-ruby/badge.svg?branch=master&service=github)](https://coveralls.io/github/PrimeHammer/gopay-ruby?branch=master)
-Unofficial wrapper for GoPay REST API
+The GoPay Ruby allows Ruby applications to access to the GoPay REST API.
+## Benefits
+It does OAuth authorization under the hood automatically. Easy configuration through initializer.
+
## Installation
Add this line to your application's Gemfile:
```ruby
-gem 'gopay-ruby'
+gem 'gopay-ruby', require: 'gopay'
+
```
And then execute:
$ bundle
Or install it yourself as:
$ gem install gopay-ruby
+## Configure
+The Gem is framework agnostic. However, if you use Rails, put the initializer in Rails config dir:
+```ruby
+config/initializers/gopay.rb
+```
+
+```ruby
+GoPay.configure do |config|
+ config.goid = GOPAY_ID
+ config.client_id = GOPAY_CLIENT_ID
+ config.client_secret = GOPAY_SECRET
+ config.return_host = RETURN_HOST_URL
+ config.notification_host = NOTIFICATION_HOST_URL
+ config.gate = GATE_URL
+end
+```
+
## Usage
-### Retrieve a payment
+### Create a Payment
+Before charging a user, we need to create a new payment. This will return a hash including a URL which you can use to popup payment modal or redirect the user to the GoPay payment page.
```ruby
-GoPay::Payment.retrieve 35345534
+GoPay::Payment.create payment_data
```
+
+### payment_data example
+
+```ruby
+{
+ "payer":{"allowed_payment_instruments": ["BANK_ACCOUNT"],
+ "contact":{"first_name": "John",
+ "last_name": "Doe",
+ "email": "john.doe@example.com"
+ }
+ },
+ "target":{"type": "ACCOUNT",
+ "goid": "8123456789"
+ },
+ "amount":"1000",
+ "currency":"CZK",
+ "order_number":"001",
+ "order_description":"description001",
+ "callback":{"return_url":"url.for.return",
+ "notification_url":"url.for.notification"
+ },
+ "lang":"en"
+}
+```
+
+### Create a Payment response example
+This is a basic example of response hash, for more complex examples visit [GoPay API docs](https://doc.gopay.com).
+```ruby
+{
+ "id":3000006529,
+ "order_number":"001",
+ "state":"CREATED",
+ "amount":1000,"currency":"CZK",
+ "payer":{"allowed_payment_instruments":["BANK_ACCOUNT"],
+ "contact": {"first_name":"John",
+ "last_name":"Doe",
+ "email":"john.doe@example.com",
+ }
+ },
+ "target":{"type":"ACCOUNT",
+ "goid":8123456789
+ },
+ "additional_params":[{"name":"invoicenumber",
+ "value":"2015001003"
+ }],
+ "lang":"en",
+ "gw_url":" https://gw.sandbox.gopay.com/gw/v3/bCcvmwTKK5hrJx2aGG8ZnFyBJhAvF"
+}
+```
+
+### Retrieve the Payment
+If you want to return a payment object from GoPay REST API.
+
+```ruby
+GoPay::Payment.retrieve gopay_id
+```
+
+### Refund of the payment
+This functionality allows you to refund payment paid by a customer.
+You can use the refund in two ways. First option is a full refund payment and the other one is a partial refund. Both based on `amount` parameter.
+
+```ruby
+GoPay::Payment.refund gopay_id, amount
+```
+
+### Cancellation of the recurring payment
+The functionality allows you to cancel recurrence of a previously created recurring payment.
+
+```ruby
+GoPay::Payment.void_recurrence gopay_id
+```
+
+## Dealing with errors
+Errors are raised as GoPay::Error. The error contains error code error body returned by GoPay API.
+You can easily catch errors in your models as shown below.
+
+```ruby
+begin
+ response = GoPay::Payment.refund(gopay_id, gopay_amount)
+rescue GoPay::Error => exception
+ log_gopay_error exception
+end
+```
+
+## Documentation
+Parameters for all GoPay methods follow the official documentation. For further explanation please visit [GoPay API docs](https://doc.gopay.com).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/PrimeHammer/gopay-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.