active_merchant-epsilon 0.8.1 → 0.9.0
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 +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
|