veritrans 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/veritrans +0 -22
- data/config/veritrans.yml +4 -1
- data/lib/generators/templates/app/controllers/veritrans_controller.rb +1 -0
- data/lib/veritrans.rb +1 -0
- data/lib/veritrans/client.rb +0 -1
- data/lib/veritrans/post_data.rb +2 -1
- data/lib/veritrans/v_t_direct.rb +105 -0
- data/lib/veritrans/version.rb +1 -1
- metadata +3 -5
data/bin/veritrans
CHANGED
@@ -51,28 +51,6 @@ client.shipping_phone = "0123456789123"
|
|
51
51
|
client.shipping_method = "N"
|
52
52
|
client.get_keys
|
53
53
|
client
|
54
|
-
|
55
|
-
OR
|
56
|
-
|
57
|
-
client = Veritrans::Client.new do |me|
|
58
|
-
me.order_id = "dummy#{(0...12).map{65.+(rand(25))}.join}"
|
59
|
-
me.session_id = "session#{(0...12).map{65.+(rand(25))}.join}"
|
60
|
-
me.gross_amount = "10"
|
61
|
-
me.commodity = [
|
62
|
-
{"COMMODITY_ID" => "IDxx1", "COMMODITY_UNIT" => "10", "COMMODITY_NUM" => "1", "COMMODITY_NAME1" => "Waterbotle", "COMMODITY_NAME2" => "Waterbottle in Indonesian"}
|
63
|
-
]
|
64
|
-
me.shipping_flag = "1"
|
65
|
-
me.shipping_first_name = "Sam"
|
66
|
-
me.shipping_last_name = "Anthony"
|
67
|
-
me.shipping_address1 = "Buaran I"
|
68
|
-
me.shipping_address2 = "Pulogadung"
|
69
|
-
me.shipping_city = "Jakarta"
|
70
|
-
me.shipping_country_code = "IDN"
|
71
|
-
me.shipping_postal_code = "16954"
|
72
|
-
me.shipping_phone = "0123456789123"
|
73
|
-
me.shipping_method = "N"
|
74
|
-
end
|
75
|
-
|
76
54
|
EOF
|
77
55
|
|
78
56
|
IRB.start
|
data/config/veritrans.yml
CHANGED
@@ -4,7 +4,8 @@ development:
|
|
4
4
|
finish_payment_return_url: "http://localhost/finish"
|
5
5
|
unfinish_payment_return_url: "http://localhost/cancel"
|
6
6
|
error_payment_return_url: "http://localhost/error"
|
7
|
-
|
7
|
+
server_key: "2a8f3674-71cf-42af-aa56-b872b8924f72"
|
8
|
+
server_host: "http://veritrans.dev"
|
8
9
|
|
9
10
|
production:
|
10
11
|
merchant_id: "production_id"
|
@@ -12,4 +13,6 @@ production:
|
|
12
13
|
finish_payment_return_url: "http://mydomain/finish"
|
13
14
|
unfinish_payment_return_url: "http://mydomain/cancel"
|
14
15
|
error_payment_return_url: "http://mydomain/error"
|
16
|
+
server_key: "2a8f3674-71cf-42af-aa56-b872b8924f72"
|
17
|
+
server_host: "http://veritrans.dev"
|
15
18
|
# server_host: "http://192.168.10.250:80"
|
@@ -39,6 +39,7 @@ class VeritransController < ApplicationController
|
|
39
39
|
client.postal_code = "16954"
|
40
40
|
client.phone = "0123456789123"
|
41
41
|
client.email = "sam.anthony@gmail.com" # pay-notification email
|
42
|
+
# client.promo_id = "PROMO_MERCHANT_NAME" #if there is a join-promo w/ CC issuer
|
42
43
|
|
43
44
|
client.get_keys
|
44
45
|
@client = client
|
data/lib/veritrans.rb
CHANGED
data/lib/veritrans/client.rb
CHANGED
@@ -54,7 +54,6 @@ module Veritrans
|
|
54
54
|
uri = Addressable::URI.new
|
55
55
|
uri.query_values = params
|
56
56
|
query_string = "#{uri.query}&REPEAT_LINE=#{@commodity.length}&#{commodity.join('&')}"
|
57
|
-
# puts query_string
|
58
57
|
|
59
58
|
conn = Faraday.new(:url => server_host)
|
60
59
|
@resp = conn.post do |req|
|
data/lib/veritrans/post_data.rb
CHANGED
@@ -0,0 +1,105 @@
|
|
1
|
+
require 'base64'
|
2
|
+
require 'json'
|
3
|
+
# :nodoc:
|
4
|
+
module Veritrans
|
5
|
+
|
6
|
+
# :nodoc:
|
7
|
+
class VTDirect
|
8
|
+
include Config
|
9
|
+
@@attr = [:token_id, :order_id, :order_items, :gross_amount, :email, :shipping_address, :billing_address]
|
10
|
+
|
11
|
+
# constructor to create instance of Veritrans::Client
|
12
|
+
def initialize
|
13
|
+
class <<self
|
14
|
+
self
|
15
|
+
end.class_eval do
|
16
|
+
attr_accessor *@@attr
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Example:
|
21
|
+
#
|
22
|
+
# vt_direct = Veritrans::VTDirect.new
|
23
|
+
# vt_direct.token_id = "32eeeb9f-8ac3-b824-eb6d-faaa25240d27"
|
24
|
+
# vt_direct.order_id = "order_5"
|
25
|
+
# vt_direct.order_items = [
|
26
|
+
# {
|
27
|
+
# id: "10",
|
28
|
+
# price: 100,
|
29
|
+
# qty: 1,
|
30
|
+
# name1: "Mie",
|
31
|
+
# name2: "Goreng"
|
32
|
+
# },
|
33
|
+
# {
|
34
|
+
# id: "11",
|
35
|
+
# price: 100,
|
36
|
+
# qty: 1,
|
37
|
+
# name1: "Mie",
|
38
|
+
# name2: "Kuah"
|
39
|
+
# }
|
40
|
+
# ]
|
41
|
+
# vt_direct.gross_amount = 200
|
42
|
+
# vt_direct.email = "echo.khannedy@gmail.com"
|
43
|
+
# vt_direct.shipping_address = {
|
44
|
+
# first_name: "Sam",
|
45
|
+
# last_name: "Anthony",
|
46
|
+
# address1: "Buaran I",
|
47
|
+
# address2: "Pulogadung",
|
48
|
+
# city: "Jakarta",
|
49
|
+
# country_code: "IDN",
|
50
|
+
# postal_code: "16954",
|
51
|
+
# phone: "0123456789123"
|
52
|
+
# }
|
53
|
+
# vt_direct.billing_address = {
|
54
|
+
# first_name: "Sam",
|
55
|
+
# last_name: "Anthony",
|
56
|
+
# address1: "Buaran I",
|
57
|
+
# address2: "Pulogadung",
|
58
|
+
# city: "Jakarta",
|
59
|
+
# country_code: "IDN",
|
60
|
+
# postal_code: "16954",
|
61
|
+
# phone: "0123456789123"
|
62
|
+
# }
|
63
|
+
# vt_direct.charges
|
64
|
+
#
|
65
|
+
def charges
|
66
|
+
# conn = Faraday.new(:url => 'http://veritrans.dev/charges')
|
67
|
+
parms = prepare_params([:server_key]+@@attr).to_json
|
68
|
+
basic = Base64.encode64("#{server_key}:")
|
69
|
+
conn = Faraday.new(:url => server_host)
|
70
|
+
@resp = conn.post do |req|
|
71
|
+
req.url('/charges')
|
72
|
+
req.headers['Content-Type'] = 'application/json'
|
73
|
+
req.headers['Authorization'] = "Basic #{basic}"
|
74
|
+
req.body = parms
|
75
|
+
end.env
|
76
|
+
@data = @resp[:body]
|
77
|
+
end
|
78
|
+
|
79
|
+
# :nodoc:
|
80
|
+
def server_host
|
81
|
+
return VTDirect.config["server_host"] ? VTDirect.config["server_host"] : Config::SERVER_HOST
|
82
|
+
end
|
83
|
+
|
84
|
+
# :nodoc:
|
85
|
+
def server_key
|
86
|
+
return VTDirect.config["server_key"]
|
87
|
+
end
|
88
|
+
|
89
|
+
# :nodoc:
|
90
|
+
def server_key= new_server_key
|
91
|
+
VTDirect.config["server_key"] = new_server_key
|
92
|
+
end
|
93
|
+
|
94
|
+
private
|
95
|
+
|
96
|
+
def prepare_params(*arg)
|
97
|
+
params = {}
|
98
|
+
arg.flatten.each do |key|
|
99
|
+
value = self.send(key)
|
100
|
+
params[key.downcase] = value if value
|
101
|
+
end
|
102
|
+
return params
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
data/lib/veritrans/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: veritrans
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: addressable
|
@@ -71,6 +71,7 @@ files:
|
|
71
71
|
- bin/veritrans
|
72
72
|
- lib/veritrans.rb
|
73
73
|
- lib/veritrans/client.rb
|
74
|
+
- lib/veritrans/v_t_direct.rb
|
74
75
|
- lib/veritrans/config.rb
|
75
76
|
- lib/veritrans/hash_generator.rb
|
76
77
|
- lib/veritrans/post_data.rb
|
@@ -98,9 +99,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
99
|
- - ! '>='
|
99
100
|
- !ruby/object:Gem::Version
|
100
101
|
version: '0'
|
101
|
-
segments:
|
102
|
-
- 0
|
103
|
-
hash: -1916124557783123575
|
104
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
103
|
none: false
|
106
104
|
requirements:
|