complete_payment_systems 0.0.2 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e0680ace634fcdedcddd6b041c268cee3da2ea9a
4
- data.tar.gz: 72ec29b4daebb3438c3a0958aa80c7f4eefe9521
3
+ metadata.gz: 738542eb38bfe6e47086aa443e72b70347cb5b58
4
+ data.tar.gz: 52f5ece0150d44e532d4b269b0f88afcb804a261
5
5
  SHA512:
6
- metadata.gz: 244c79f5155d613c49f1133a09126383d7f9e88dcdddb64aca4f359c775d7e7fa6e53740a11652935587333575ee3689dc1146ced9cb28cb78c396104048a4ec
7
- data.tar.gz: b31400b94677fb351c84ca6f44ece74c5ea75a78774273fbff335d205cf868addcb5029781ca96d1aa74c20255f2e0b1fb45627d546766ca36795a5436b9e52e
6
+ metadata.gz: ff81955a43005a5b32e36749fc0f67e1bb438b40565d466c1605d2f252698bf10cad3b9d0da0b970dc8f964afc9dd8c16f75d6b7b3e83b79f7821bb09ff711f3
7
+ data.tar.gz: 315fd49aed1422530d24be365cbfeb0cde2ed104e901a9f3d639b873f4fc4340fd479595f853be780666e8acfa278eb3b8e20ec8702242c955aafe85078b805b
data/README.md CHANGED
@@ -38,7 +38,7 @@ CPS.configure do |config|
38
38
  config.default_country = "US"
39
39
 
40
40
  # Used in client data, like street and zip, if you choose not to ask for these
41
- config.placeholder_value = "PLACEHOLDER"
41
+ config.placeholder_value = "Not@Used.com"
42
42
 
43
43
  config.cps_url = "https://3ds.cps.lv/GatorServo/request" # This will probably never change
44
44
  config.cps_method = "sendForAuth" # This will also probably remain the same
@@ -50,7 +50,7 @@ end
50
50
  ```
51
51
 
52
52
  ### Build a payment request
53
- Instantiate a CPS::Request object, passit a hash with parameters:
53
+ Instantiate a CPS::Request object, pass it a hash with parameters:
54
54
  ```ruby
55
55
  hash = {
56
56
  order: (Time.now.to_i), # Pass the unique purchase ID here
@@ -22,7 +22,7 @@ module CompletePaymentSystems
22
22
  end
23
23
 
24
24
  private
25
- def self.sign(type: CPS.config.cps_method, user: CPS.config.default_user, order_id: "", value: "", currency: "", card_number: "", product: CPS.config.default_product_name)
25
+ def sign(type: CPS.config.cps_method, user: CPS.config.default_user, order_id: "", value: "", currency: "", card_number: "", product: CPS.config.default_product_name)
26
26
  sign_string = [type, user, order_id, value, currency, card_number, product].join()
27
27
  rsa = OpenSSL::PKey::RSA.new(File.read(CPS.config.rsa_cert_path), CPS.config.cert_pass )
28
28
  signed_hash = rsa.sign(OpenSSL::Digest::SHA1.new, sign_string)
@@ -30,30 +30,40 @@ module CompletePaymentSystems
30
30
  end
31
31
 
32
32
  def build_request_xml
33
- params = @params
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
+
34
42
  values = {
35
- user: (params["user"] || CPS.config.default_user), # "test_pasta_sign" for direct, "pasta_test_3d" for direct with 3D
36
- callback_url: (params["callback_url"] || CPS.config.default_callback_url),
37
- redirect_url: (params["redirect_url"] || CPS.config.default_redirect_url),
38
- order: (params["order"] || Time.now.to_i), # TO-DO remove fallback
39
- value: (params["value"]),
40
- currency: (params["currency"]),
41
- holder_name: params["holder_name"],
42
- holder_surname: params["holder_surname"],
43
- holder_street: (params["holder_street"] || CPS.config.placeholder_value),
44
- holder_zip: (params["holder_zip"] || CPS.config.placeholder_value),
45
- holder_city: (params["holder_city"] || CPS.config.placeholder_value),
46
- holder_country: (params["holder_country"] || CPS.config.default_country),
47
- holder_email: (params["holder_email"] || CPS.config.placeholder_value),
48
- holder_ip: ( params["holder_ip"] ),
49
- card_number: params["card_number"], # 4012001037167778 for direct, For 3D-Secure number is 4314229999999913
50
- card_exp: params["card_exp"], # 06/18 for direct, 3D-sec is "01/18"
51
- card_cvv: params["card_cvv"], # 999 for direct, 3D-sec is "123"
52
- product_name: (params["product_name"] || CPS.config.default_product_name),
53
- product_url: (params["product_url"] || CPS.config.default_product_url)
43
+ user: (params[:user] || CPS.config.default_user), # "test_pasta_sign" for direct, "pasta_test_3d" for direct with 3D
44
+ callback_url: (params[:callback_url] || CPS.config.default_callback_url),
45
+ redirect_url: (params[:redirect_url] || CPS.config.default_redirect_url),
46
+ order: (params[:order] || Time.now.to_i), # TO-DO remove fallback
47
+ value: (params[:value]),
48
+ currency: (params[:currency]),
49
+ holder_name: params[:holder_name],
50
+ holder_surname: params[:holder_surname],
51
+ holder_street: (params[:holder_street] || CPS.config.placeholder_value),
52
+ holder_zip: (params[:holder_zip] || CPS.config.placeholder_value),
53
+ holder_city: (params[:holder_city] || CPS.config.placeholder_value),
54
+ holder_country: (params[:holder_country] || CPS.config.default_country),
55
+ holder_email: (params[:holder_email] || CPS.config.placeholder_value),
56
+ holder_ip: ( params[:holder_ip] ),
57
+ card_number: params[:card_number], # 4012001037167778 for direct, For 3D-Secure number is 4314229999999913
58
+ card_exp: params[:card_exp], # 06/18 for direct, 3D-sec is "01/18"
59
+ card_cvv: params[:card_cvv], # 999 for direct, 3D-sec is "123"
60
+ product_name: (params[:product_name] || CPS.config.default_product_name),
61
+ product_url: (params[:product_url] || CPS.config.default_product_url)
54
62
  }
55
63
 
56
- values[:signature] = CPS.sign(order_id: values[:order], value: values[:value], currency: values[:currency], card_number: values[:card_number]).gsub(/\n/, '')
64
+ puts values # TESTING
65
+
66
+ values[:signature] = sign(order_id: values[:order], value: values[:value], currency: values[:currency], card_number: values[:card_number]).gsub(/\n/, '')
57
67
 
58
68
  values[:signature_line] = '<digiSignature>' + values[:signature] + '</digiSignature>'
59
69
 
@@ -1,3 +1,3 @@
1
1
  module CompletePaymentSystems
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -38,7 +38,8 @@ module CompletePaymentSystems
38
38
  @default_product_name = "Product"
39
39
  @default_product_url = "www.test.com"
40
40
  @default_country = "US"
41
- @placeholder_value = "PLACEHOLDER"
41
+ @placeholder_value = "Not@Used.com"
42
+
42
43
 
43
44
  @cps_url = "https://3ds.cps.lv/GatorServo/request"
44
45
  @cps_method = "sendForAuth"
@@ -51,79 +52,19 @@ module CompletePaymentSystems
51
52
 
52
53
  CPS.configure {}
53
54
 
54
- # TO-DO Delete this after production checks
55
- def self.make_xml
56
- values = {
57
- user: "pasta_test_3d", # "test_pasta_sign" for direct, "pasta_test_3d" for direct with 3D
58
- callback_url: "http://www.google.lv",
59
- redirect_url: "http://www.google.lv",
60
- order: (Time.now.to_i),
61
- holder_name: "Test",
62
- holder_surname: "User",
63
- holder_street: "NOT USED",
64
- holder_zip: "NOT USED",
65
- holder_city: "NOT USED",
66
- holder_country: "LV",
67
- holder_email: "hi@creo.mobi",
68
- holder_ip: "123.124.125.226",
69
- card_number: "4314229999999913", # 4012001037167778 for direct, For 3D-Secure number is 4314229999999913
70
- card_exp: "01/18", # 06/18 for direct, 3D-sec is "01/18"
71
- card_cvv: "123", # 999 for direct, 3D-sec is "123"
72
- product_name: "Product",
73
- product_url: "www.test.com"
74
- }
75
-
76
- values[:signature] = CPS.sign(user: values[:user], card_number: values[:card_number])
77
-
78
- values[:signature_line] = '<digiSignature>' + values[:signature] + '</digiSignature>'
79
-
80
- xml_path = "#{CPS.root}/cps.xml"
81
- a = File.open(xml_path,'w') do |file|
82
- file.write(%Q|<?xml version="1.0" encoding="UTF-8" ?>\n|)
83
- file.write(%Q|<cpsxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n|)
84
- file.write(%Q| xsi:schemaLocation="http://www.cps.lv/xml/ns/cpsxml https://3ds.cps.lv/GatorServo/Gator_SendForAuth.xsd"\n|)
85
- file.write(%Q| xmlns="http://www.cps.lv/xml/ns/cpsxml">\n|)
86
- file.write(%Q| <header xmlns="">\n|)
87
- file.write(%Q| <responsetype>direct</responsetype>\n|)
88
- file.write(%Q| <user>#{values[:user]}</user>\n|)
89
- file.write(%Q| <type>sendForAuth</type>\n|)
90
- file.write(%Q| <transType>DB</transType>\n|)
91
- file.write(%Q| | + values[:signature_line] + "\n")
92
- file.write(%Q| <callbackUrl>#{values[:callback_url]}</callbackUrl>\n|)
93
- file.write(%Q| <redirectUrl>#{values[:redirect_url]}</redirectUrl>\n|)
94
- file.write(%Q| </header>\n|)
95
- file.write(%Q| <request xmlns="">\n|)
96
- file.write(%Q| <orderNumber>#{values[:order]}</orderNumber>\n|)
97
- file.write(%Q| <cardholder>\n|)
98
- file.write(%Q| <firstName>#{values[:holder_name]}</firstName>\n|)
99
- file.write(%Q| <lastName>#{values[:holder_surname]}</lastName>\n|)
100
- file.write(%Q| <street>#{values[:holder_street]}</street>\n|)
101
- file.write(%Q| <zip>#{values[:holder_zip]}</zip>\n|)
102
- file.write(%Q| <city>#{values[:holder_city]}</city>\n|)
103
- file.write(%Q| <country>#{values[:holder_country]}</country>\n|)
104
- file.write(%Q| <email>#{values[:holder_email]}</email>\n|)
105
- file.write(%Q| <ip>#{values[:holder_ip]}</ip>\n|)
106
- file.write(%Q| </cardholder>\n|)
107
- file.write(%Q| <card>\n|)
108
- file.write(%Q| <cardNumber>#{values[:card_number]}</cardNumber>\n|)
109
- file.write(%Q| <expires>#{values[:card_exp]}</expires>\n|)
110
- file.write(%Q| <cvv>#{values[:card_cvv]}</cvv>\n|)
111
- file.write(%Q| </card>\n|)
112
- file.write(%Q| <amount>\n|)
113
- file.write(%Q| <value>100</value>\n|)
114
- file.write(%Q| <currency>USD</currency>\n|)
115
- file.write(%Q| </amount>\n|)
116
- file.write(%Q| <product>\n|)
117
- file.write(%Q| <productName>#{values[:product_name]}</productName>\n|)
118
- file.write(%Q| <productUrl>#{values[:product_url]}</productUrl>\n|)
119
- file.write(%Q| </product>\n|)
120
- file.write(%Q| </request>\n|)
121
- file.write(%Q|</cpsxml>|)
122
- end
123
-
124
- return File.read(xml_path)
125
- end
126
-
127
55
  end
128
56
 
129
- CPS = CompletePaymentSystems
57
+ CPS = CompletePaymentSystems
58
+ hash = {
59
+ order: (Time.now.to_i), # Pass the unique purchase ID here
60
+ value: "166", # Pass the purchase value in cents here (1$ purcase value = 100)
61
+ currency: "USD", # Pass the purchase currency 3-letter code here ($ = "USD")
62
+ holder_name: "John", # Ask buyer for this in a form
63
+ holder_surname: "Doe", # Ask buyer for this in a form
64
+ card_number: "4314229999999913", # Ask buyer for this in a form
65
+ card_exp: "01/18", # Ask buyer for this in a form
66
+ card_cvv: "123", # Ask buyer for this in a form
67
+ holder_ip: "123.124.125.226" # Get this from request.remote_ip
68
+ }
69
+
70
+ CPS::XX = CPS::Request.new(hash)
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.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Epigene