complete_payment_systems 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 738542eb38bfe6e47086aa443e72b70347cb5b58
4
- data.tar.gz: 52f5ece0150d44e532d4b269b0f88afcb804a261
3
+ metadata.gz: 174211885a2722217f72bac38695f2eafe0054a1
4
+ data.tar.gz: 8f75977416ea5e0bee8047a5b5f08558a3eaa8ec
5
5
  SHA512:
6
- metadata.gz: ff81955a43005a5b32e36749fc0f67e1bb438b40565d466c1605d2f252698bf10cad3b9d0da0b970dc8f964afc9dd8c16f75d6b7b3e83b79f7821bb09ff711f3
7
- data.tar.gz: 315fd49aed1422530d24be365cbfeb0cde2ed104e901a9f3d639b873f4fc4340fd479595f853be780666e8acfa278eb3b8e20ec8702242c955aafe85078b805b
6
+ metadata.gz: 4423b6eef74ef1b377ff1c657cb298ca472591942fd16bd2db9c76d226df97f949b9b7b50a55dc4e30b084fb04305e4139d20e5167061efe9e4950d56a0476f0
7
+ data.tar.gz: fbd9f5a6504ddbfd93f941933c9b2b2c595836aac3b950ce812a3d3041f3c9c7545e1f33b245613b8e68cc052b926a58b24114ebe98c42ab307fe30eef9cfa14
@@ -1,3 +1,7 @@
1
+ # v0.0.4
2
+
3
+ Cleaned up test case initialization
4
+
1
5
  # v0.0.2
2
6
 
3
7
  Added default values to named parameters for Ruby v2.0.0 compatability
data/README.md CHANGED
@@ -1,6 +1,17 @@
1
1
  # CompletePaymentSystems
2
2
 
3
- TODO: Write a gem description
3
+ Ruby gem for a simple CPS (Complete Payment Systems) service API - creates request XML from a parameters hash, processes the response.
4
+
5
+ Only direct-3D payments supported for now.
6
+
7
+ ###### Workflow Overview:
8
+ 1. Install gem, congifure defaults
9
+ 2. Build an appropriate parameter hash using user-entered card values
10
+ 3. Instantiate CPS::Request object passing the hash as the single argument
11
+ 4. Pass the request instance to the form view (see /example_request_form.html.erb)
12
+ 5. Capture the CPS server response in a controller action that listens on _config.default_callback_url_
13
+ 6. Based on the response (@response.ok?) change order status
14
+ 7. Based on order status, process user return experience at _config.default_redirect_url_
4
15
 
5
16
  ## Installation
6
17
 
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ["Epigene"]
11
11
  spec.email = ["augusts.bautra@gmail.com"]
12
12
  spec.summary = %q{A client for CPS (Complete Payment Systems) card payment service}
13
- spec.description = %q{Coming soon...}
13
+ spec.description = %q{CPS (Complete Payment Systems) card payment service API in Ruby}
14
14
  spec.homepage = ""
15
15
  spec.license = "MIT"
16
16
 
@@ -0,0 +1,13 @@
1
+ <html>
2
+ <head>
3
+ </head>
4
+ <body onload="document.cpsForm.submit();" style="display:none;">
5
+ <form method="POST" name="cpsForm" action="<%= CPS.config.cps_url %>">
6
+ <input name="type" value="<%= CPS.config.cps_method %>">
7
+ <textarea name="xml">
8
+ <%= @cps_request.xml %>
9
+ </textarea>
10
+ <input type="submit" value="Send">
11
+ </form>
12
+ </body>
13
+ </html>
@@ -52,10 +52,8 @@ module CompletePaymentSystems
52
52
 
53
53
  CPS.configure {}
54
54
 
55
- end
56
-
57
- CPS = CompletePaymentSystems
58
- hash = {
55
+ def self.return_test_instance
56
+ hash = {
59
57
  order: (Time.now.to_i), # Pass the unique purchase ID here
60
58
  value: "166", # Pass the purchase value in cents here (1$ purcase value = 100)
61
59
  currency: "USD", # Pass the purchase currency 3-letter code here ($ = "USD")
@@ -67,4 +65,10 @@ hash = {
67
65
  holder_ip: "123.124.125.226" # Get this from request.remote_ip
68
66
  }
69
67
 
70
- CPS::XX = CPS::Request.new(hash)
68
+ return CPS::Request.new(hash)
69
+
70
+ end
71
+
72
+ end
73
+
74
+ CPS = CompletePaymentSystems
@@ -30,15 +30,6 @@ module CompletePaymentSystems
30
30
  end
31
31
 
32
32
  def build_request_xml
33
- puts "before param init:"
34
- puts params
35
- puts "After param init:"
36
- params = self.params
37
- puts params
38
-
39
- puts params["value"]
40
- puts params[:value]
41
-
42
33
  values = {
43
34
  user: (params[:user] || CPS.config.default_user), # "test_pasta_sign" for direct, "pasta_test_3d" for direct with 3D
44
35
  callback_url: (params[:callback_url] || CPS.config.default_callback_url),
@@ -61,8 +52,6 @@ module CompletePaymentSystems
61
52
  product_url: (params[:product_url] || CPS.config.default_product_url)
62
53
  }
63
54
 
64
- puts values # TESTING
65
-
66
55
  values[:signature] = sign(order_id: values[:order], value: values[:value], currency: values[:currency], card_number: values[:card_number]).gsub(/\n/, '')
67
56
 
68
57
  values[:signature_line] = '<digiSignature>' + values[:signature] + '</digiSignature>'
@@ -4,7 +4,7 @@ module CompletePaymentSystems
4
4
  attr_reader :xml, :response_hash, :code, :message
5
5
 
6
6
  def initialize(xml)
7
- @xml = xml #|| File.read("#{CPS.root}/response.xml")
7
+ @xml = xml
8
8
  @response_hash = parse_response(@xml)
9
9
  @code = @response_hash["resultCode"]
10
10
  @message = @response_hash["resultMessage"]
@@ -50,8 +50,4 @@ module CompletePaymentSystems
50
50
 
51
51
  end
52
52
 
53
- # def self.read_test_xml
54
- # return File.read("#{CPS.root}/response.xml")
55
- # end
56
-
57
53
  end
@@ -1,3 +1,3 @@
1
1
  module CompletePaymentSystems
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: complete_payment_systems
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Epigene
@@ -94,7 +94,7 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 3.1.0
97
- description: Coming soon...
97
+ description: CPS (Complete Payment Systems) card payment service API in Ruby
98
98
  email:
99
99
  - augusts.bautra@gmail.com
100
100
  executables: []
@@ -109,7 +109,7 @@ files:
109
109
  - README.md
110
110
  - Rakefile
111
111
  - complete_payment_systems.gemspec
112
- - cps.xml
112
+ - example_request_form.html.erb
113
113
  - lib/complete_payment_systems.rb
114
114
  - lib/complete_payment_systems/certs/Pasta_test_3d.p12
115
115
  - lib/complete_payment_systems/certs/Pasta_test_3d.pem
data/cps.xml DELETED
@@ -1,43 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" ?>
2
- <cpsxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
- xsi:schemaLocation="http://www.cps.lv/xml/ns/cpsxml https://3ds.cps.lv/GatorServo/Gator_SendForAuth.xsd"
4
- xmlns="http://www.cps.lv/xml/ns/cpsxml">
5
- <header xmlns="">
6
- <responsetype>direct</responsetype>
7
- <user>pasta_test_3d</user>
8
- <type>sendForAuth</type>
9
- <transType>DB</transType>
10
- <digiSignature>NP+o4wK17G3tqcTF5K2vfBjXQ4RpCLEYPoK9I99/9GPQO95fD0Xp+DueUV4c
11
- AtgNQmQg4C2BTw0vh1fme8PQanaGF50WJOTdgXdU5ygRxkjja4EyA9cDe1cq
12
- Ex7iqtSazv2FZXu/6RfVgwcoy4SRuNuQrsDqo6/7isJ/BpgppTI=
13
- </digiSignature>
14
- <callbackUrl>www.google.lv</callbackUrl>
15
- <redirectUrl>http://www.google.lv</redirectUrl>
16
- </header>
17
- <request xmlns="">
18
- <orderNumber>1422028510</orderNumber>
19
- <cardholder>
20
- <firstName>Test</firstName>
21
- <lastName>User</lastName>
22
- <street>NOT USED</street>
23
- <zip>NOT USED</zip>
24
- <city>NOT USED</city>
25
- <country>LV</country>
26
- <email>hi@creo.mobi</email>
27
- <ip>123.124.125.226</ip>
28
- </cardholder>
29
- <card>
30
- <cardNumber>4314229999999913</cardNumber>
31
- <expires>01/18</expires>
32
- <cvv>123</cvv>
33
- </card>
34
- <amount>
35
- <value>100</value>
36
- <currency>USD</currency>
37
- </amount>
38
- <product>
39
- <productName>Product</productName>
40
- <productUrl>www.test.com</productUrl>
41
- </product>
42
- </request>
43
- </cpsxml>