complete_payment_systems 0.0.2 → 0.0.3

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