poundpay 0.2.2 → 0.2.3
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.
- data/README.rdoc +41 -36
- data/lib/poundpay/elements.rb +12 -0
- data/lib/poundpay/version.rb +1 -1
- data/spec/fixtures/payments.rb +6 -0
- data/spec/poundpay/elements_spec.rb +15 -0
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -7,16 +7,13 @@ Poundpay is a payments platform for marketplaces
|
|
7
7
|
|
8
8
|
1. Add the following to your Gemfile
|
9
9
|
|
10
|
-
gem 'poundpay', '~> 0.2.
|
10
|
+
gem 'poundpay', '~> 0.2.3'
|
11
11
|
|
12
12
|
2. At the command prompt, install the gem with bundler
|
13
13
|
|
14
14
|
bundle install
|
15
15
|
|
16
|
-
3. Create the file config/poundpay.yml and add your configurations
|
17
|
-
|
18
|
-
Note: Make sure your YAML file ends with a blank line; otherwise, Ruby
|
19
|
-
will give you a completely unintelligible error message
|
16
|
+
3. Create the file config/poundpay.yml and add your configurations. Note: Make sure your YAML file ends with a blank line; otherwise, Ruby will give you a completely unintelligible error message
|
20
17
|
|
21
18
|
development:
|
22
19
|
developer_sid: DV0383d447360511e0bbac00264a09ff3c
|
@@ -38,47 +35,55 @@ will give you a completely unintelligible error message
|
|
38
35
|
|
39
36
|
|
40
37
|
== Creating a payment
|
41
|
-
Adding the payer_sid (from a previous payment), will cause the payer to see
|
42
|
-
the repeat flow when they are not prompted to reenter their credit card information
|
43
38
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
:description => "Beats by Dr. Dre",
|
52
|
-
)
|
39
|
+
@payment = Poundpay::Payment.create(
|
40
|
+
:amount => 20000,
|
41
|
+
:payer_fee_amount => 0,
|
42
|
+
:payer_email_address => "fred@example.com",
|
43
|
+
:recipient_fee_amount => 500,
|
44
|
+
:recipient_email_address => "david@example.com",
|
45
|
+
:description => "Beats by Dr. Dre")
|
53
46
|
|
54
47
|
|
55
48
|
== Serving IFRAME
|
56
49
|
|
57
|
-
|
50
|
+
<script src="https://www.poundpay.com/js/poundpay.js"></script>
|
58
51
|
|
59
|
-
|
52
|
+
<div id="pound-root"></div>
|
60
53
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
54
|
+
<script>
|
55
|
+
function handlePaymentSuccess() {
|
56
|
+
// do something
|
57
|
+
}
|
65
58
|
|
66
|
-
|
67
|
-
|
68
|
-
|
59
|
+
function handlePaymentError() {
|
60
|
+
// handle error
|
61
|
+
}
|
69
62
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
</script>
|
63
|
+
PoundPay.init({
|
64
|
+
payment_sid: "<%= @payment.sid %>",
|
65
|
+
success: handlePaymentSuccess,
|
66
|
+
error: handlePaymentError,
|
67
|
+
cardholder_name: "Fred Nietzsche", // Optional
|
68
|
+
server: "<%= Poundpay.www_url %>"
|
69
|
+
});
|
70
|
+
</script>
|
79
71
|
|
80
72
|
|
81
73
|
== Releasing a payment
|
82
74
|
|
83
|
-
|
84
|
-
|
75
|
+
payment = Poundpay::Payment.find(payment_sid)
|
76
|
+
payment.release
|
77
|
+
|
78
|
+
|
79
|
+
== Cancel a payment
|
80
|
+
|
81
|
+
payment = Poundpay::Payment.find(payment_sid)
|
82
|
+
payment.cancel
|
83
|
+
|
84
|
+
|
85
|
+
== Setting callback url
|
86
|
+
|
87
|
+
me = Poundpay::Developer.me
|
88
|
+
me.callback_url = "http://awesomemarketplace.com/poundpay/callback"
|
89
|
+
me.save!
|
data/lib/poundpay/elements.rb
CHANGED
@@ -5,6 +5,9 @@ require 'poundpay/resource'
|
|
5
5
|
class PaymentReleaseException < Exception
|
6
6
|
end
|
7
7
|
|
8
|
+
class PaymentCancelException < Exception
|
9
|
+
end
|
10
|
+
|
8
11
|
module Poundpay
|
9
12
|
class Developer < Resource
|
10
13
|
def self.me
|
@@ -41,5 +44,14 @@ module Poundpay
|
|
41
44
|
attributes['status'] = 'RELEASED'
|
42
45
|
save
|
43
46
|
end
|
47
|
+
|
48
|
+
def cancel
|
49
|
+
unless status == 'ESCROWED'
|
50
|
+
raise PaymentCancelException.new "Payment status is #{status}. Only ESCROWED payments may be canceled"
|
51
|
+
end
|
52
|
+
|
53
|
+
attributes['status'] = 'CANCELED'
|
54
|
+
save
|
55
|
+
end
|
44
56
|
end
|
45
57
|
end
|
data/lib/poundpay/version.rb
CHANGED
data/spec/fixtures/payments.rb
CHANGED
@@ -80,4 +80,19 @@ describe Payment do
|
|
80
80
|
@escrowed_payment.status.should == 'RELEASED'
|
81
81
|
end
|
82
82
|
end
|
83
|
+
|
84
|
+
describe "#cancel" do
|
85
|
+
it "should not be able to cancel a STAGED payment" do
|
86
|
+
@staged_payment = Payment.new staged_payment_attributes
|
87
|
+
expect {@staged_payment.cancel}.to raise_error(PaymentCancelException)
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should release an ESCROWED payment" do
|
91
|
+
@escrowed_payment = Payment.new escrowed_payment_attributes
|
92
|
+
@escrowed_payment.should_receive(:save).and_return(Payment.new canceled_payment_attributes)
|
93
|
+
|
94
|
+
@escrowed_payment.cancel
|
95
|
+
@escrowed_payment.status.should == 'CANCELED'
|
96
|
+
end
|
97
|
+
end
|
83
98
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 3
|
9
|
+
version: 0.2.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Matin Tamizi
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-
|
17
|
+
date: 2011-03-31 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|