complete_payment_systems 0.0.3 → 0.0.4

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.
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>