active_merchant-epsilon 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -2
- data/README.md +30 -0
- data/lib/active_merchant/billing/gateways/epsilon.rb +17 -0
- data/lib/active_merchant/billing/gateways/epsilon_virtual_account.rb +40 -0
- data/lib/active_merchant/billing/gateways/response_parser.rb +46 -1
- data/lib/active_merchant/epsilon.rb +1 -0
- data/lib/active_merchant/epsilon/version.rb +1 -1
- data/test/fixtures/vcr_cassettes/find_order_failure.yml +39 -0
- data/test/fixtures/vcr_cassettes/find_order_success.yml +106 -0
- data/test/fixtures/vcr_cassettes/virtual_account_purchase_fail.yml +43 -0
- data/test/fixtures/vcr_cassettes/virtual_account_purchase_successful.yml +49 -0
- data/test/remote/gateways/remote_epsilon_test.rb +22 -0
- data/test/remote/gateways/remote_epsilon_virtual_account_test.rb +36 -0
- metadata +13 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9668d6a76c41c51531236786b52d3cacecbc46c95fc6ec6bd9e183b2447d50c0
|
4
|
+
data.tar.gz: aebd5b08968677868c3e532330d0d892dac75ca8ba61881d4fa090278771e895
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07b7cbbca794528280c570c98aa452cd5eb02853f595393f123e25dd1f09f5ec5bd8e67d78762c13d90eede09b28132d3de0392a07789a7b18845a430d53be2e
|
7
|
+
data.tar.gz: 6effbf8145aa78bb1eab554700da4dfe4e9a9dca2cf522cf64871533724c112b90ada365c006083eada79dac50e9ee41e0ade11339f023f7cf3433dc2dc2849c
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
### 0.9.0
|
4
|
+
|
5
|
+
* [Support virtual account payment](https://github.com/pepabo/active_merchant-epsilon/pull/97)
|
6
|
+
* [Support to find order](https://github.com/pepabo/active_merchant-epsilon/pull/96)
|
7
|
+
|
3
8
|
### 0.8.0
|
4
9
|
* GMO IDに登録されているクレジットカードで決済できるようにしました。
|
5
|
-
* [GMO ID決済の機能を追加した by ryuchan00](https://github.com/pepabo/active_merchant-epsilon/pull/93)
|
10
|
+
* [GMO ID決済の機能を追加した by ryuchan00](https://github.com/pepabo/active_merchant-epsilon/pull/93)
|
6
11
|
|
7
12
|
### 0.5.9
|
8
13
|
|
@@ -15,7 +20,7 @@
|
|
15
20
|
|
16
21
|
* [Add encoding setting](https://github.com/pepabo/active_merchant-epsilon/pull/82)
|
17
22
|
* According to the Epsilon specification, the request parameters must be encode in EUC-JP or Shift_JIS. For the specification, this pull request add encoding setting.
|
18
|
-
|
23
|
+
|
19
24
|
### 0.5.7
|
20
25
|
|
21
26
|
* [Fix response parser method by ku00](https://github.com/pepabo/active_merchant-epsilon/pull/81)
|
data/README.md
CHANGED
@@ -272,6 +272,36 @@ gateway.purchase(amount, purchase_detail)
|
|
272
272
|
gateway.void('order_number')
|
273
273
|
```
|
274
274
|
|
275
|
+
### Virtual Account Payment
|
276
|
+
|
277
|
+
```ruby
|
278
|
+
ActiveMerchant::Billing::EpsilonVirtualAccountGateway.contract_code = 'YOUR_CONTRACT_CODE'
|
279
|
+
|
280
|
+
gateway = ActiveMerchant::Billing::EpsilonVirtualAccountGateway.new
|
281
|
+
|
282
|
+
amount = 10000
|
283
|
+
|
284
|
+
purchase_detail = {
|
285
|
+
user_id: 'YOUR_APP_USER_IDENTIFIER',
|
286
|
+
user_name: '山田 太郎',
|
287
|
+
user_email: 'yamada-taro@example.com',
|
288
|
+
item_code: 'ITEM001',
|
289
|
+
item_name: 'Greate Product',
|
290
|
+
order_number: 'UNIQUE ORDER NUMBER',
|
291
|
+
user_name_kana: 'ヤマダタロウ'
|
292
|
+
}
|
293
|
+
|
294
|
+
response = gateway.purchase(amount, purchase_detail)
|
295
|
+
|
296
|
+
if response.success?
|
297
|
+
puts "Successfully charged #{amount} yen as virtual account payment"
|
298
|
+
puts "Account number is #{response.params['account_number']}"
|
299
|
+
puts "Bank name is #{response.params['account_name']}"
|
300
|
+
else
|
301
|
+
raise StandardError, response.message
|
302
|
+
end
|
303
|
+
```
|
304
|
+
|
275
305
|
### Error handling
|
276
306
|
|
277
307
|
If epsilon server returns status excepted 200, `#purchase` method raise `ActiveMerchant::ResponseError`.
|
@@ -18,6 +18,7 @@ module ActiveMerchant #:nodoc:
|
|
18
18
|
void: 'cancel_payment.cgi',
|
19
19
|
find_user: 'get_user_info.cgi',
|
20
20
|
change_recurring_amount: 'change_amount_payment.cgi',
|
21
|
+
find_order: 'getsales2.cgi',
|
21
22
|
}.freeze
|
22
23
|
|
23
24
|
self.supported_cardtypes = [:visa, :master, :american_express, :discover]
|
@@ -164,6 +165,22 @@ module ActiveMerchant #:nodoc:
|
|
164
165
|
end
|
165
166
|
end
|
166
167
|
|
168
|
+
def find_order(order_number)
|
169
|
+
params = {
|
170
|
+
contract_code: self.contract_code,
|
171
|
+
order_number: order_number,
|
172
|
+
}
|
173
|
+
|
174
|
+
response_keys = [
|
175
|
+
:transaction_code,
|
176
|
+
:state,
|
177
|
+
:payment_code,
|
178
|
+
:item_price,
|
179
|
+
]
|
180
|
+
|
181
|
+
commit(PATHS[:find_order], params, response_keys)
|
182
|
+
end
|
183
|
+
|
167
184
|
private
|
168
185
|
|
169
186
|
def billing_params(amount, payment_method, detail)
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module ActiveMerchant #:nodoc:
|
2
|
+
module Billing #:nodoc:
|
3
|
+
class EpsilonVirtualAccountGateway < EpsilonBaseGateway
|
4
|
+
RESPONSE_KEYS = [
|
5
|
+
:transaction_code,
|
6
|
+
:error_code,
|
7
|
+
:error_detail,
|
8
|
+
:account_number,
|
9
|
+
:account_name,
|
10
|
+
:bank_code,
|
11
|
+
:bank_name,
|
12
|
+
:branch_code,
|
13
|
+
:branch_name
|
14
|
+
]
|
15
|
+
|
16
|
+
def purchase(amount, detail = {})
|
17
|
+
params = {
|
18
|
+
contract_code: self.contract_code,
|
19
|
+
user_id: detail[:user_id],
|
20
|
+
user_name: detail[:user_name],
|
21
|
+
user_mail_add: detail[:user_email],
|
22
|
+
item_code: detail[:item_code],
|
23
|
+
item_name: detail[:item_name],
|
24
|
+
order_number: detail[:order_number],
|
25
|
+
st_code: '00000-0000-00000-00000-00100-00000-00000',
|
26
|
+
mission_code: EpsilonMissionCode::PURCHASE,
|
27
|
+
item_price: amount,
|
28
|
+
process_code: EpsilonProcessCode::FIRST,
|
29
|
+
user_agent: "#{ActiveMerchant::Epsilon}-#{ActiveMerchant::Epsilon::VERSION}",
|
30
|
+
}
|
31
|
+
|
32
|
+
params[:memo1] = detail[:memo1] if detail.has_key?(:memo1)
|
33
|
+
params[:memo2] = detail[:memo2] if detail.has_key?(:memo2)
|
34
|
+
params[:user_name_kana] = detail[:user_name_kana] if detail.has_key?(:user_name_kana)
|
35
|
+
|
36
|
+
commit('direct_virtual_account.cgi', params, RESPONSE_KEYS)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -8,7 +8,7 @@ module ActiveMerchant #:nodoc:
|
|
8
8
|
@result = @xml.xpath(ResponseXpath::RESULT).to_s
|
9
9
|
|
10
10
|
response = {
|
11
|
-
success: [ResultCode::SUCCESS, ResultCode::THREE_D_SECURE].include?(@result)
|
11
|
+
success: [ResultCode::SUCCESS, ResultCode::THREE_D_SECURE].include?(@result) || !state.empty?,
|
12
12
|
message: "#{error_code}: #{error_detail}"
|
13
13
|
}
|
14
14
|
|
@@ -77,6 +77,42 @@ module ActiveMerchant #:nodoc:
|
|
77
77
|
@xml.xpath(ResponseXpath::COMPANY_CODE).to_s
|
78
78
|
end
|
79
79
|
|
80
|
+
def account_number
|
81
|
+
@xml.xpath(ResponseXpath::ACCOUNT_NUMBER).to_s
|
82
|
+
end
|
83
|
+
|
84
|
+
def account_name
|
85
|
+
uri_decode(@xml.xpath(ResponseXpath::ACCOUNT_NAME).to_s)
|
86
|
+
end
|
87
|
+
|
88
|
+
def bank_code
|
89
|
+
@xml.xpath(ResponseXpath::BANK_CODE).to_s
|
90
|
+
end
|
91
|
+
|
92
|
+
def bank_name
|
93
|
+
uri_decode(@xml.xpath(ResponseXpath::BANK_NAME).to_s)
|
94
|
+
end
|
95
|
+
|
96
|
+
def branch_code
|
97
|
+
@xml.xpath(ResponseXpath::BRANCH_CODE).to_s
|
98
|
+
end
|
99
|
+
|
100
|
+
def branch_name
|
101
|
+
uri_decode(@xml.xpath(ResponseXpath::BRANCH_NAME).to_s)
|
102
|
+
end
|
103
|
+
|
104
|
+
def state
|
105
|
+
@xml.xpath(ResponseXpath::STATE).to_s
|
106
|
+
end
|
107
|
+
|
108
|
+
def payment_code
|
109
|
+
@xml.xpath(ResponseXpath::PAYMENT_CODE).to_s
|
110
|
+
end
|
111
|
+
|
112
|
+
def item_price
|
113
|
+
@xml.xpath(ResponseXpath::ITEM_PRICE).to_s
|
114
|
+
end
|
115
|
+
|
80
116
|
def uri_decode(string)
|
81
117
|
URI.decode(string).encode(Encoding::UTF_8, Encoding::CP932)
|
82
118
|
end
|
@@ -96,6 +132,15 @@ module ActiveMerchant #:nodoc:
|
|
96
132
|
CONVENIENCE_STORE_LIMIT_DATE = '//Epsilon_result/result[@conveni_limit][1]/@conveni_limit'
|
97
133
|
CONVENIENCE_STORE_PAYMENT_SLIP_URL = '//Epsilon_result/result[@haraikomi_url][1]/@haraikomi_url'
|
98
134
|
COMPANY_CODE = '//Epsilon_result/result[@kigyou_code][1]/@kigyou_code'
|
135
|
+
ACCOUNT_NUMBER = '//Epsilon_result/result[@account_no][1]/@account_no'
|
136
|
+
ACCOUNT_NAME = '//Epsilon_result/result[@account_name][1]/@account_name'
|
137
|
+
BANK_CODE = '//Epsilon_result/result[@bank_code][1]/@bank_code'
|
138
|
+
BANK_NAME = '//Epsilon_result/result[@bank_name][1]/@bank_name'
|
139
|
+
BRANCH_CODE = '//Epsilon_result/result[@branch_code][1]/@branch_code'
|
140
|
+
BRANCH_NAME = '//Epsilon_result/result[@branch_name][1]/@branch_name'
|
141
|
+
STATE = '//Epsilon_result/result[@state]/@state'
|
142
|
+
ITEM_PRICE = '//Epsilon_result/result[@item_price]/@item_price'
|
143
|
+
PAYMENT_CODE = '//Epsilon_result/result[@payment_code]/@payment_code'
|
99
144
|
end
|
100
145
|
|
101
146
|
module ResultCode
|
@@ -9,4 +9,5 @@ require_relative 'billing/gateways/epsilon/epsilon_base'
|
|
9
9
|
require_relative 'billing/gateways/epsilon'
|
10
10
|
require_relative 'billing/gateways/epsilon_convenience_store'
|
11
11
|
require_relative 'billing/gateways/epsilon_gmo_id'
|
12
|
+
require_relative 'billing/gateways/epsilon_virtual_account'
|
12
13
|
require_relative 'billing/gateways/response_parser'
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://beta.epsilon.jp/cgi-bin/order/getsales2.cgi
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: contract_code=[CONTRACT_CODE]&order_number=1234567890
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/x-www-form-urlencoded
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
User-Agent:
|
17
|
+
- Ruby
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Date:
|
24
|
+
- Tue, 17 Jul 2018 01:17:41 GMT
|
25
|
+
Server:
|
26
|
+
- Apache
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Content-Type:
|
30
|
+
- text/xml; charset=UTF8
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: |
|
34
|
+
<?xml version="1.0" ?>
|
35
|
+
<Epsilon_result>
|
36
|
+
</Epsilon_result>
|
37
|
+
http_version:
|
38
|
+
recorded_at: Tue, 17 Jul 2018 01:17:38 GMT
|
39
|
+
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,106 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://beta.epsilon.jp/cgi-bin/order/direct_card_payment.cgi
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: contract_code=[CONTRACT_CODE]&user_id=U1531791686&user_name=YAMADA+Taro&user_mail_add=yamada-taro%40example.com&item_code=ITEM001&item_name=Greate+Product&order_number=O26659000&st_code=10000-0000-0000&mission_code=1&item_price=100&process_code=1&card_number=4242424242424242&expire_y=2019&expire_m=10&card_st_code=&pay_time=&tds_check_code=&user_agent=ActiveMerchant%3A%3AEpsilon-0.8.1&memo1=memo1&memo2=memo2
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/x-www-form-urlencoded
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
User-Agent:
|
17
|
+
- Ruby
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Date:
|
24
|
+
- Tue, 17 Jul 2018 01:41:26 GMT
|
25
|
+
Server:
|
26
|
+
- Apache
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Content-Type:
|
30
|
+
- text/xml; charset=CP932
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: |-
|
34
|
+
<?xml version="1.0" encoding="x-sjis-cp932"?>
|
35
|
+
<Epsilon_result>
|
36
|
+
<result acsurl="" />
|
37
|
+
<result err_code="" />
|
38
|
+
<result err_detail="" />
|
39
|
+
<result kari_flag="0" />
|
40
|
+
<result pareq="" />
|
41
|
+
<result result="1" />
|
42
|
+
<result trans_code="738442" />
|
43
|
+
</Epsilon_result>
|
44
|
+
http_version:
|
45
|
+
recorded_at: Tue, 17 Jul 2018 01:41:28 GMT
|
46
|
+
- request:
|
47
|
+
method: post
|
48
|
+
uri: https://beta.epsilon.jp/cgi-bin/order/getsales2.cgi
|
49
|
+
body:
|
50
|
+
encoding: UTF-8
|
51
|
+
string: contract_code=[CONTRACT_CODE]&order_number=O26659000
|
52
|
+
headers:
|
53
|
+
Content-Type:
|
54
|
+
- application/x-www-form-urlencoded
|
55
|
+
Accept-Encoding:
|
56
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
57
|
+
Accept:
|
58
|
+
- "*/*"
|
59
|
+
User-Agent:
|
60
|
+
- Ruby
|
61
|
+
response:
|
62
|
+
status:
|
63
|
+
code: 200
|
64
|
+
message: OK
|
65
|
+
headers:
|
66
|
+
Date:
|
67
|
+
- Tue, 17 Jul 2018 01:41:28 GMT
|
68
|
+
Server:
|
69
|
+
- Apache
|
70
|
+
Transfer-Encoding:
|
71
|
+
- chunked
|
72
|
+
Content-Type:
|
73
|
+
- text/xml; charset=CP932
|
74
|
+
body:
|
75
|
+
encoding: UTF-8
|
76
|
+
string: |
|
77
|
+
<?xml version="1.0" encoding="x-sjis-cp932" ?>
|
78
|
+
<Epsilon_result>
|
79
|
+
<result last_update="2018-07-17+10%3A41%3A27" />
|
80
|
+
<result user_mail_add="yamada-taro%40example.com" />
|
81
|
+
<result state="1" />
|
82
|
+
<result credit_time="2018-07-17+10%3A41%3A28" />
|
83
|
+
<result trans_code="738442" />
|
84
|
+
<result mission_code="1" />
|
85
|
+
<result credit_flag="0" />
|
86
|
+
<result item_price="100" />
|
87
|
+
<result payment_code="1" />
|
88
|
+
<result item_code="ITEM001" />
|
89
|
+
<result order_number="O26659000" />
|
90
|
+
<result st_code="10000-0000-00000-00000-00000-00000-00000" />
|
91
|
+
<result memo1="memo1" />
|
92
|
+
<result contract_code="[CONTRACT_CODE]" />
|
93
|
+
<result item_name="Greate+Product" />
|
94
|
+
<result pay_time="1" />
|
95
|
+
<result user_name="YAMADA+Taro" />
|
96
|
+
<result process_code="1" />
|
97
|
+
<result keitai="100" />
|
98
|
+
<result due_date="" />
|
99
|
+
<result card_st_code="10" />
|
100
|
+
<result add_info="" />
|
101
|
+
<result user_id="U1531791686" />
|
102
|
+
<result memo2="memo2" />
|
103
|
+
</Epsilon_result>
|
104
|
+
http_version:
|
105
|
+
recorded_at: Tue, 17 Jul 2018 01:41:28 GMT
|
106
|
+
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,43 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://beta.epsilon.jp/cgi-bin/order/direct_virtual_account.cgi
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: contract_code=[CONTRACT_CODE]&user_id=&user_name=YAMADA+Taro&user_mail_add=yamada-taro%40example.com&item_code=ITEM001&item_name=Greate+Product&order_number=O21396579&st_code=00000-0000-00000-00000-00100-00000-00000&mission_code=1&item_price=10000&process_code=1&user_agent=ActiveMerchant%3A%3AEpsilon-0.8.1&memo1=memo1&memo2=memo2
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/x-www-form-urlencoded
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
User-Agent:
|
17
|
+
- Ruby
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Date:
|
24
|
+
- Thu, 12 Jul 2018 03:13:25 GMT
|
25
|
+
Server:
|
26
|
+
- Apache
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Content-Type:
|
30
|
+
- text/xml; charset=CP932
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: |-
|
34
|
+
<?xml version="1.0" encoding="x-sjis-cp932"?>
|
35
|
+
<Epsilon_result>
|
36
|
+
<result err_code="601" />
|
37
|
+
<result err_detail="%83%86%81%5B%83U%81%5BID%82%CC%8C%60%8E%AE%82%AA%88%D9%8F%ED%82%C5%82%B7" />
|
38
|
+
<result result="9" />
|
39
|
+
<result trans_code="" />
|
40
|
+
</Epsilon_result>
|
41
|
+
http_version:
|
42
|
+
recorded_at: Thu, 12 Jul 2018 03:13:22 GMT
|
43
|
+
recorded_with: VCR 4.0.0
|
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://beta.epsilon.jp/cgi-bin/order/direct_virtual_account.cgi
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: contract_code=[CONTRACT_CODE]&user_id=U1531362414&user_name=YAMADA+Taro&user_mail_add=yamada-taro%40example.com&item_code=ITEM001&item_name=Greate+Product&order_number=O54813896&st_code=00000-0000-00000-00000-00100-00000-00000&mission_code=1&item_price=10000&process_code=1&user_agent=ActiveMerchant%3A%3AEpsilon-0.8.1&memo1=memo1&memo2=memo2
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/x-www-form-urlencoded
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- "*/*"
|
16
|
+
User-Agent:
|
17
|
+
- Ruby
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Date:
|
24
|
+
- Thu, 12 Jul 2018 02:26:59 GMT
|
25
|
+
Server:
|
26
|
+
- Apache
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Content-Type:
|
30
|
+
- text/xml; charset=CP932
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: |-
|
34
|
+
<?xml version="1.0" encoding="x-sjis-cp932"?>
|
35
|
+
<Epsilon_result>
|
36
|
+
<result account_name="GMO-EP%C3%BD%C4" />
|
37
|
+
<result account_no="1016014" />
|
38
|
+
<result bank_code="0310" />
|
39
|
+
<result bank_name="%BC%DE-%B4%D1%B5-%B1%B5%BF%DE%D7%C8%C2%C4" />
|
40
|
+
<result branch_code="502" />
|
41
|
+
<result branch_name="%B1%BC%DE%BB%B2" />
|
42
|
+
<result err_code="" />
|
43
|
+
<result err_detail="" />
|
44
|
+
<result result="1" />
|
45
|
+
<result trans_code="737630" />
|
46
|
+
</Epsilon_result>
|
47
|
+
http_version:
|
48
|
+
recorded_at: Thu, 12 Jul 2018 02:26:56 GMT
|
49
|
+
recorded_with: VCR 4.0.0
|
@@ -261,4 +261,26 @@ class RemoteEpsilonGatewayTest < MiniTest::Test
|
|
261
261
|
assert_equal false, response.success?
|
262
262
|
end
|
263
263
|
end
|
264
|
+
|
265
|
+
def test_find_order_success
|
266
|
+
VCR.use_cassette(:find_order_success) do
|
267
|
+
detail = purchase_detail
|
268
|
+
purchase_response = gateway.purchase(100, valid_credit_card, detail)
|
269
|
+
assert_equal true, purchase_response.success?
|
270
|
+
|
271
|
+
response = gateway.find_order(detail[:order_number])
|
272
|
+
assert_equal true, response.success?
|
273
|
+
|
274
|
+
assert_equal true, !response.params['state'].empty?
|
275
|
+
assert_equal true, !response.params['payment_code'].empty?
|
276
|
+
assert_equal true, !response.params['item_price'].empty?
|
277
|
+
end
|
278
|
+
end
|
279
|
+
|
280
|
+
def test_find_order_failure
|
281
|
+
VCR.use_cassette(:find_order_failure) do
|
282
|
+
response = gateway.find_order('1234567890')
|
283
|
+
assert_equal false, response.success?
|
284
|
+
end
|
285
|
+
end
|
264
286
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class RemoteEpsilonVirtualAccountGatewayTest < MiniTest::Test
|
4
|
+
include SamplePaymentMethods
|
5
|
+
|
6
|
+
def gateway
|
7
|
+
@gateway ||= ActiveMerchant::Billing::EpsilonVirtualAccountGateway.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_virtual_account_purchase_successfull
|
11
|
+
VCR.use_cassette(:virtual_account_purchase_successful) do
|
12
|
+
response = gateway.purchase(10000, purchase_detail)
|
13
|
+
|
14
|
+
assert_equal true, response.success?
|
15
|
+
|
16
|
+
assert_equal true, !response.params['transaction_code'].empty?
|
17
|
+
|
18
|
+
assert_equal true, !response.params['account_number'].empty?
|
19
|
+
assert_equal true, !response.params['account_name'].empty?
|
20
|
+
assert_equal true, !response.params['bank_code'].empty?
|
21
|
+
assert_equal true, !response.params['bank_name'].empty?
|
22
|
+
assert_equal true, !response.params['branch_code'].empty?
|
23
|
+
assert_equal true, !response.params['branch_name'].empty?
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_virtual_account_purchase_fail
|
28
|
+
invalid_purchase_detail = purchase_detail
|
29
|
+
invalid_purchase_detail[:user_id] = ''
|
30
|
+
|
31
|
+
VCR.use_cassette(:virtual_account_purchase_fail) do
|
32
|
+
response = gateway.purchase(10000, invalid_purchase_detail)
|
33
|
+
assert_equal false, response.success?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_merchant-epsilon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kenichi TAKAHASHI
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemerchant
|
@@ -173,6 +173,7 @@ files:
|
|
173
173
|
- lib/active_merchant/billing/gateways/epsilon/epsilon_process_code.rb
|
174
174
|
- lib/active_merchant/billing/gateways/epsilon_convenience_store.rb
|
175
175
|
- lib/active_merchant/billing/gateways/epsilon_gmo_id.rb
|
176
|
+
- lib/active_merchant/billing/gateways/epsilon_virtual_account.rb
|
176
177
|
- lib/active_merchant/billing/gateways/response_parser.rb
|
177
178
|
- lib/active_merchant/epsilon.rb
|
178
179
|
- lib/active_merchant/epsilon/version.rb
|
@@ -183,6 +184,8 @@ files:
|
|
183
184
|
- test/fixtures/vcr_cassettes/change_recurring_amount_successful.yml
|
184
185
|
- test/fixtures/vcr_cassettes/convenience_store_purchase_fail.yml
|
185
186
|
- test/fixtures/vcr_cassettes/convenience_store_purchase_successful.yml
|
187
|
+
- test/fixtures/vcr_cassettes/find_order_failure.yml
|
188
|
+
- test/fixtures/vcr_cassettes/find_order_success.yml
|
186
189
|
- test/fixtures/vcr_cassettes/find_user_failure.yml
|
187
190
|
- test/fixtures/vcr_cassettes/find_user_success.yml
|
188
191
|
- test/fixtures/vcr_cassettes/gmo_id_purchase_failure.yml
|
@@ -207,11 +210,14 @@ files:
|
|
207
210
|
- test/fixtures/vcr_cassettes/token_verify_successful.yml
|
208
211
|
- test/fixtures/vcr_cassettes/verify_fail.yml
|
209
212
|
- test/fixtures/vcr_cassettes/verify_successful.yml
|
213
|
+
- test/fixtures/vcr_cassettes/virtual_account_purchase_fail.yml
|
214
|
+
- test/fixtures/vcr_cassettes/virtual_account_purchase_successful.yml
|
210
215
|
- test/fixtures/vcr_cassettes/void_fail.yml
|
211
216
|
- test/fixtures/vcr_cassettes/void_successful.yml
|
212
217
|
- test/remote/gateways/remote_epsilon_convenience_store_test.rb
|
213
218
|
- test/remote/gateways/remote_epsilon_gmo_id_test.rb
|
214
219
|
- test/remote/gateways/remote_epsilon_test.rb
|
220
|
+
- test/remote/gateways/remote_epsilon_virtual_account_test.rb
|
215
221
|
- test/test_helper.rb
|
216
222
|
- test/unit/billing/convenience_store_test.rb
|
217
223
|
- test/unit/gateways/epsilon_test.rb
|
@@ -247,6 +253,8 @@ test_files:
|
|
247
253
|
- test/fixtures/vcr_cassettes/change_recurring_amount_successful.yml
|
248
254
|
- test/fixtures/vcr_cassettes/convenience_store_purchase_fail.yml
|
249
255
|
- test/fixtures/vcr_cassettes/convenience_store_purchase_successful.yml
|
256
|
+
- test/fixtures/vcr_cassettes/find_order_failure.yml
|
257
|
+
- test/fixtures/vcr_cassettes/find_order_success.yml
|
250
258
|
- test/fixtures/vcr_cassettes/find_user_failure.yml
|
251
259
|
- test/fixtures/vcr_cassettes/find_user_success.yml
|
252
260
|
- test/fixtures/vcr_cassettes/gmo_id_purchase_failure.yml
|
@@ -271,11 +279,14 @@ test_files:
|
|
271
279
|
- test/fixtures/vcr_cassettes/token_verify_successful.yml
|
272
280
|
- test/fixtures/vcr_cassettes/verify_fail.yml
|
273
281
|
- test/fixtures/vcr_cassettes/verify_successful.yml
|
282
|
+
- test/fixtures/vcr_cassettes/virtual_account_purchase_fail.yml
|
283
|
+
- test/fixtures/vcr_cassettes/virtual_account_purchase_successful.yml
|
274
284
|
- test/fixtures/vcr_cassettes/void_fail.yml
|
275
285
|
- test/fixtures/vcr_cassettes/void_successful.yml
|
276
286
|
- test/remote/gateways/remote_epsilon_convenience_store_test.rb
|
277
287
|
- test/remote/gateways/remote_epsilon_gmo_id_test.rb
|
278
288
|
- test/remote/gateways/remote_epsilon_test.rb
|
289
|
+
- test/remote/gateways/remote_epsilon_virtual_account_test.rb
|
279
290
|
- test/test_helper.rb
|
280
291
|
- test/unit/billing/convenience_store_test.rb
|
281
292
|
- test/unit/gateways/epsilon_test.rb
|