pxpay 0.2.0 → 0.2.1
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.md +1 -1
- data/VERSION +1 -1
- data/lib/pxpay/base.rb +1 -1
- data/lib/pxpay/request.rb +31 -19
- data/lib/pxpay/templates/pxpay.rb +3 -2
- data/pxpay.gemspec +3 -4
- data/test/helper.rb +2 -2
- data/test/test_pxpay.rb +5 -0
- metadata +5 -35
data/README.md
CHANGED
@@ -23,7 +23,7 @@ Usage
|
|
23
23
|
-----
|
24
24
|
>> require 'nokogiri'
|
25
25
|
>> require 'pxpay'
|
26
|
-
>> request = Pxpay::Request.new( 1, 12.00 )
|
26
|
+
>> request = Pxpay::Request.new( 1, 12.00, {:url_success => 'http://example.com/success/', :url_failure => 'http://example.com/failure'})
|
27
27
|
=> #<Pxpay::Request:0x00000101c9a840 >
|
28
28
|
>> request.url
|
29
29
|
=> "https://sec2.paymentexpress.com/pxpay/pxpay.aspx?userid=Fake_Dev&request=xxxxxxxxxx"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/lib/pxpay/base.rb
CHANGED
data/lib/pxpay/request.rb
CHANGED
@@ -11,12 +11,19 @@ module Pxpay
|
|
11
11
|
# Create a new instance of Pxpay::Request
|
12
12
|
# Pxpay::Request.new( id, amount, options = {} )
|
13
13
|
# Current available options are:
|
14
|
-
# :
|
15
|
-
# :reference,
|
16
|
-
# :
|
17
|
-
# :token_billing,
|
18
|
-
# :billing_id,
|
19
|
-
# :txn_type,
|
14
|
+
# :currency_input, currency for transaction, default is NZD, can be any of Pxpay::Base.currency_types
|
15
|
+
# :reference, a reference field, default is the id.
|
16
|
+
# :email_address, email address of user, optional.
|
17
|
+
# :token_billing, boolean value, set to true to enable token billing.
|
18
|
+
# :billing_id, optional billing_id field only used if token_billing is set to true.
|
19
|
+
# :txn_type, can be set to :auth for Auth transaction, defaults to Purchase
|
20
|
+
# :url_success, Success URL, can optionally be set globally via Pxpay::Base.url_success=
|
21
|
+
# :url_failure, Failure URL, can optionally be set globally via Pxpay::Base.url_failure=
|
22
|
+
# :txn_data1, Optional data
|
23
|
+
# :txn_data2, Optional data
|
24
|
+
# :txn_data3, Optional data
|
25
|
+
# :txn_data4, Optional data
|
26
|
+
# :opt, Optional data
|
20
27
|
|
21
28
|
def initialize( id , price, options = {} )
|
22
29
|
@post = build_xml( id, price, options )
|
@@ -29,7 +36,7 @@ module Pxpay
|
|
29
36
|
if response_text.at_css("Request").attributes["valid"].value == "1"
|
30
37
|
url = response_text.at_css("URI").inner_html
|
31
38
|
else
|
32
|
-
if Pxpay::Base.pxpay_user_id
|
39
|
+
if Pxpay::Base.pxpay_user_id && Pxpay::Base.pxpay_key
|
33
40
|
raise Pxpay::Error, response_text.at_css("Request").inner_html
|
34
41
|
else
|
35
42
|
raise Pxpay::MissingKey, "Your Pxpay config is not set up properly, run rails generate pxpay:install"
|
@@ -43,18 +50,23 @@ module Pxpay
|
|
43
50
|
def build_xml( id, price, options )
|
44
51
|
xml = ::Builder::XmlMarkup.new
|
45
52
|
xml.GenerateRequest do
|
46
|
-
xml.PxPayUserId
|
47
|
-
xml.PxPayKey
|
48
|
-
xml.AmountInput
|
49
|
-
xml.
|
50
|
-
xml.
|
51
|
-
xml.
|
52
|
-
xml.
|
53
|
-
xml.
|
54
|
-
xml.
|
55
|
-
xml.
|
56
|
-
xml.
|
57
|
-
xml.
|
53
|
+
xml.PxPayUserId ::Pxpay::Base.pxpay_user_id
|
54
|
+
xml.PxPayKey ::Pxpay::Base.pxpay_key
|
55
|
+
xml.AmountInput sprintf("%.2f", price)
|
56
|
+
xml.TxnId id
|
57
|
+
xml.TxnType options[:txn_type] ? options[:txn_type].to_s.capitalize : "Purchase"
|
58
|
+
xml.CurrencyInput options[:currency_input] || "NZD"
|
59
|
+
xml.MerchantReference options[:reference] || id.to_s
|
60
|
+
xml.UrlSuccess options[:url_success] || ::Pxpay::Base.url_success
|
61
|
+
xml.UrlFail options[:url_failure] || ::Pxpay::Base.url_failure
|
62
|
+
xml.EmailAddress options[:email_address] if options[:email_address]
|
63
|
+
xml.TxnData1 options[:txn_data1] if options[:txn_data1]
|
64
|
+
xml.TxnData2 options[:txn_data2] if options[:txn_data2]
|
65
|
+
xml.TxnData3 options[:txn_data3] if options[:txn_data3]
|
66
|
+
xml.TxnData4 options[:txn_data4] if options[:txn_data4]
|
67
|
+
xml.Opt options[:opt] if options[:opt]
|
68
|
+
xml.EnableAddBillCard 1 if options[:token_billing]
|
69
|
+
xml.BillingId options[:billing_id] if options[:token_billing]
|
58
70
|
end
|
59
71
|
end
|
60
72
|
end
|
@@ -5,7 +5,8 @@ Pxpay::Base.pxpay_user_id = 'ExampleUser'
|
|
5
5
|
Pxpay::Base.pxpay_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
|
6
6
|
|
7
7
|
# Return Endpoints for payment confirmation
|
8
|
-
|
9
|
-
Pxpay::Base.
|
8
|
+
# Uncomment for global success & failure URLs
|
9
|
+
# Pxpay::Base.url_success = 'http://localhost:3000/success'
|
10
|
+
# Pxpay::Base.url_failure = 'http://localhost:3000/failure'
|
10
11
|
|
11
12
|
# Coming Soon Global Variables
|
data/pxpay.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{pxpay}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Bradley Priest"]
|
12
|
-
s.date = %q{2011-04-
|
12
|
+
s.date = %q{2011-04-27}
|
13
13
|
s.description = %q{A Ruby wrapper around the DPS-hosted PxPay service}
|
14
14
|
s.email = %q{bradleypriest@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
|
|
41
41
|
s.homepage = %q{http://github.com/bradleypriest/pxpay}
|
42
42
|
s.licenses = ["MIT"]
|
43
43
|
s.require_paths = ["lib"]
|
44
|
-
s.rubygems_version = %q{1.
|
44
|
+
s.rubygems_version = %q{1.5.2}
|
45
45
|
s.summary = %q{Ruby wrapper for the Payment Express' PxPay API}
|
46
46
|
s.test_files = [
|
47
47
|
"test/helper.rb",
|
@@ -49,7 +49,6 @@ Gem::Specification.new do |s|
|
|
49
49
|
]
|
50
50
|
|
51
51
|
if s.respond_to? :specification_version then
|
52
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
53
52
|
s.specification_version = 3
|
54
53
|
|
55
54
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
data/test/helper.rb
CHANGED
@@ -18,8 +18,8 @@ require 'rest_client'
|
|
18
18
|
|
19
19
|
Pxpay::Base.pxpay_user_id = 'Test_Dev'
|
20
20
|
Pxpay::Base.pxpay_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
|
21
|
-
Pxpay::Base.
|
22
|
-
Pxpay::Base.
|
21
|
+
Pxpay::Base.url_success = 'http://localhost:3000/success'
|
22
|
+
Pxpay::Base.url_failure = 'http://localhost:3000/failure'
|
23
23
|
|
24
24
|
class Test::Unit::TestCase
|
25
25
|
end
|
data/test/test_pxpay.rb
CHANGED
@@ -19,6 +19,11 @@ class TestPxpay < Test::Unit::TestCase
|
|
19
19
|
assert_match(/<AmountInput>12.34<\/AmountInput>/, @request.post)
|
20
20
|
end
|
21
21
|
|
22
|
+
should "generate xml with provided endpoints" do
|
23
|
+
request_with_url = Pxpay::Request.new( 1, 12.34, { :url_success => "http://example.com/success", :url_failure => "http://example.com/success" })
|
24
|
+
assert_match %r(<UrlSuccess>http://example.com/success</UrlSuccess><UrlFail>http://example.com/success</UrlFail>), request_with_url.post
|
25
|
+
assert_no_match /localhost/, request_with_url.post
|
26
|
+
end
|
22
27
|
# should "return a URL" do
|
23
28
|
# assert_match(/https:\/\/sec2.paymentexpress.com\/pxpay\/pxpay.aspx\?userid=\w{64}&request=\S{270}/, @request.url)
|
24
29
|
# end
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pxpay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 0
|
9
|
-
version: 0.2.0
|
4
|
+
prerelease:
|
5
|
+
version: 0.2.1
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Bradley Priest
|
@@ -14,7 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-04-
|
13
|
+
date: 2011-04-27 00:00:00 +12:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
@@ -24,8 +20,6 @@ dependencies:
|
|
24
20
|
requirements:
|
25
21
|
- - ">="
|
26
22
|
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 0
|
29
23
|
version: "0"
|
30
24
|
type: :development
|
31
25
|
prerelease: false
|
@@ -37,10 +31,6 @@ dependencies:
|
|
37
31
|
requirements:
|
38
32
|
- - ~>
|
39
33
|
- !ruby/object:Gem::Version
|
40
|
-
segments:
|
41
|
-
- 1
|
42
|
-
- 0
|
43
|
-
- 0
|
44
34
|
version: 1.0.0
|
45
35
|
type: :development
|
46
36
|
prerelease: false
|
@@ -52,10 +42,6 @@ dependencies:
|
|
52
42
|
requirements:
|
53
43
|
- - ~>
|
54
44
|
- !ruby/object:Gem::Version
|
55
|
-
segments:
|
56
|
-
- 1
|
57
|
-
- 5
|
58
|
-
- 2
|
59
45
|
version: 1.5.2
|
60
46
|
type: :development
|
61
47
|
prerelease: false
|
@@ -67,8 +53,6 @@ dependencies:
|
|
67
53
|
requirements:
|
68
54
|
- - ">="
|
69
55
|
- !ruby/object:Gem::Version
|
70
|
-
segments:
|
71
|
-
- 0
|
72
56
|
version: "0"
|
73
57
|
type: :development
|
74
58
|
prerelease: false
|
@@ -80,8 +64,6 @@ dependencies:
|
|
80
64
|
requirements:
|
81
65
|
- - ">="
|
82
66
|
- !ruby/object:Gem::Version
|
83
|
-
segments:
|
84
|
-
- 0
|
85
67
|
version: "0"
|
86
68
|
type: :development
|
87
69
|
prerelease: false
|
@@ -93,8 +75,6 @@ dependencies:
|
|
93
75
|
requirements:
|
94
76
|
- - ">="
|
95
77
|
- !ruby/object:Gem::Version
|
96
|
-
segments:
|
97
|
-
- 0
|
98
78
|
version: "0"
|
99
79
|
type: :development
|
100
80
|
prerelease: false
|
@@ -106,8 +86,6 @@ dependencies:
|
|
106
86
|
requirements:
|
107
87
|
- - ">="
|
108
88
|
- !ruby/object:Gem::Version
|
109
|
-
segments:
|
110
|
-
- 0
|
111
89
|
version: "0"
|
112
90
|
type: :development
|
113
91
|
prerelease: false
|
@@ -119,8 +97,6 @@ dependencies:
|
|
119
97
|
requirements:
|
120
98
|
- - ">="
|
121
99
|
- !ruby/object:Gem::Version
|
122
|
-
segments:
|
123
|
-
- 0
|
124
100
|
version: "0"
|
125
101
|
type: :runtime
|
126
102
|
prerelease: false
|
@@ -132,8 +108,6 @@ dependencies:
|
|
132
108
|
requirements:
|
133
109
|
- - ">="
|
134
110
|
- !ruby/object:Gem::Version
|
135
|
-
segments:
|
136
|
-
- 0
|
137
111
|
version: "0"
|
138
112
|
type: :runtime
|
139
113
|
prerelease: false
|
@@ -145,8 +119,6 @@ dependencies:
|
|
145
119
|
requirements:
|
146
120
|
- - ">="
|
147
121
|
- !ruby/object:Gem::Version
|
148
|
-
segments:
|
149
|
-
- 0
|
150
122
|
version: "0"
|
151
123
|
type: :runtime
|
152
124
|
prerelease: false
|
@@ -195,7 +167,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
195
167
|
requirements:
|
196
168
|
- - ">="
|
197
169
|
- !ruby/object:Gem::Version
|
198
|
-
hash:
|
170
|
+
hash: -3326667328160921882
|
199
171
|
segments:
|
200
172
|
- 0
|
201
173
|
version: "0"
|
@@ -204,13 +176,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
204
176
|
requirements:
|
205
177
|
- - ">="
|
206
178
|
- !ruby/object:Gem::Version
|
207
|
-
segments:
|
208
|
-
- 0
|
209
179
|
version: "0"
|
210
180
|
requirements: []
|
211
181
|
|
212
182
|
rubyforge_project:
|
213
|
-
rubygems_version: 1.
|
183
|
+
rubygems_version: 1.5.2
|
214
184
|
signing_key:
|
215
185
|
specification_version: 3
|
216
186
|
summary: Ruby wrapper for the Payment Express' PxPay API
|