paylane 0.0.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/README.md +88 -5
  2. data/lib/paylane/version.rb +1 -1
  3. metadata +2 -2
data/README.md CHANGED
@@ -1,16 +1,99 @@
1
1
  # Paylane
2
2
 
3
- Ruby client for [PayLane](http://paylane.com) service.
3
+ Ruby client for [PayLane](http://www.paylane.com) payments.
4
4
 
5
5
  ## Installation
6
6
 
7
- **It's strongly recommended to NOT install current version - development in progress**
7
+ $ gem install paylane
8
8
 
9
- TODO: Write installation instructions here
9
+ or
10
10
 
11
- ## Usage
11
+ gem 'paylane'
12
12
 
13
- TODO: Write usage instructions here
13
+ ## Usage - API
14
+
15
+ Start from create a client for API.
16
+
17
+ gateway = PayLane::Gateway.new('login, 'password')
18
+ client = PayLane::API.new(gateway.connect)
19
+
20
+ Now all methods from [original API](http://devzone.paylane.com/wp-content/uploads/2012/05/paylane_direct_system.pdf) are available in the client object.
21
+
22
+ params = {
23
+ "payment_method" => {
24
+ "card_data" => {
25
+ "card_number" => 4111111111111111,
26
+ "card_code" => 123,
27
+ "expiration_month" => 12,
28
+ "expiration_year" => 2020,
29
+ "name_on_card" => "John Smith"
30
+ }
31
+ },
32
+ "customer" => {
33
+ "name" => "John Smith",
34
+ "email" => "johnsmith@example.com",
35
+ "ip" => "127.0.0.1",
36
+ "address" => {
37
+ "street_house" => "1st Avenue",
38
+ "city" => "Lodz",
39
+ "state" => "Lodz",
40
+ "zip" => "00-000",
41
+ "country_code" => "PL"
42
+ }
43
+ },
44
+ "amount" => 9.99,
45
+ "currency_code" => "EUR",
46
+ "product" => {
47
+ "description" => "paylane_api_test"
48
+ }
49
+ }
50
+
51
+ client.multi_sale(params) #=> {ok: {id_sale: "2772323"}, data: {fraud_score: "8.76"}}
52
+
53
+ If something went wrong `PayLane::ConnectionError` error will be raised.
54
+
55
+ ## Usage - custom methods
56
+
57
+ Gem provides custom methods to simplify an implementation of payments in your app.
58
+
59
+ ### Configuration
60
+
61
+ Firstly you need to set up credential settings. For Rails put it in initializer `config/initializers/paylane.rb`.
62
+
63
+ PayLane.login = 'login'
64
+ PayLane.password = 'password'
65
+
66
+ Besides `login` and `password` you can also set `currency` ('EUR' by default) and `logger`.
67
+
68
+ ### Usage
69
+
70
+ Inherit your class from `PayLane::Payment` and overload `card_data` (or `account_data`) and `customer` methods. This is how it should looks for `params` from the previous example.
71
+
72
+ class Payment < PayLane::Payment
73
+ def initialize(params, options = {})
74
+ super(options)
75
+ @params = params
76
+ end
77
+
78
+ def card_data
79
+ params[:payment_method][:card_data]
80
+ end
81
+
82
+ def customer
83
+ params[:customer]
84
+ end
85
+ end
86
+
87
+ payment = Payment.new(params, product: 'Additional pylon')
88
+ payment.charge_card(9.99) #=> {ok: {id_sale: "2772323"}, data: {fraud_score: "8.76"}}
89
+
90
+ It works similar for recurring payments
91
+
92
+ class RecurringPayment < PayLane::RecurringPayment
93
+ end
94
+
95
+ recurring_payment = RecurringPayment.new(2772323, product: 'Subscription')
96
+ recurring_payment.charge_card(30.00) #=> {ok: {id_sale: "3131151"}, data: {fraud_score: "7.00"}}
14
97
 
15
98
  ## Contributing
16
99
 
@@ -1,3 +1,3 @@
1
1
  module PayLane
2
- VERSION = "0.0.3"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paylane
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-20 00:00:00.000000000 Z
12
+ date: 2012-08-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: savon