gmo 0.5.5 → 0.5.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_cancel_link_redirect_url_with_invalid_options_got_error.yml +53 -0
- data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_cancel_link_redirect_url_with_valid_options_gets_data_about_a_link_edirect_url.yml +103 -0
- data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_link_redirect_url_with_valid_options_gets_data_about_link_redirect_url.yml +53 -0
- data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_mail_deposit_with_valid_options_gets_data_about_a_mail_deposit.yml +47 -0
- data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_mail_deposit_with_valid_options_makes_request_with_correct_parameters.yml +47 -0
- data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_ganb_gets_data_about_a_transaction.yml +35 -0
- data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_paypal_gets_data_about_a_transaction.yml +35 -0
- data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_ganb_gets_data_about_a_transaction.yml +68 -0
- data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_paypal_gets_data_about_a_transaction.yml +67 -0
- data/lib/gmo/const.rb +15 -0
- data/lib/gmo/http_services.rb +6 -1
- data/lib/gmo/remittance_api.rb +63 -1
- data/lib/gmo/shop_api.rb +40 -0
- data/lib/gmo/version.rb +1 -1
- data/lib/gmo.rb +10 -3
- data/spec/gmo/remittance_api_spec.rb +123 -36
- data/spec/gmo/shop_api_spec.rb +104 -0
- metadata +11 -3
- data/fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_mail_deposit_gets_data_about_a_mail_deposit.yml +0 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3eff4563d164b8bd4fd39337bf7678c04385add29377da07efa075c1a322d992
|
4
|
+
data.tar.gz: 709522dd504353f9c9fb346e0e924f98799be624fa306c05f08b427f60a273ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a1858cea03ea2563249ed84778d8bf4f6970a5983e4c0a18debd88fd8ec8df7dd3613f3b0991a82a680dbfed5d6276831b1b8cc61c056a92df6ba2e7819f38f
|
7
|
+
data.tar.gz: 7cf6f7cc0c092f34d6074bce3615752cce5432246189d9798cdc4a42d41fe35a36dfe667067ce1aa347d346efca8bb58d3f41cc8aae340eee6828a4ed9745b78
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,10 @@
|
|
1
1
|
# CHANGELOG
|
2
|
+
## 0.5.6
|
3
|
+
- Support PayPal決済 [#63](https://github.com/t-k/gmo-payment-ruby/pull/63)
|
4
|
+
- Support 銀行振込(バーチャル口座 あおぞら)[#64](https://github.com/t-k/gmo-payment-ruby/pull/64)
|
5
|
+
- Update 送金サービス リンクタイプURL取得 [#65](https://github.com/t-k/gmo-payment-ruby/pull/65)
|
6
|
+
- Update 送金サービス メール送金指示 [#66](https://github.com/t-k/gmo-payment-ruby/pull/66)
|
7
|
+
|
2
8
|
## 0.5.5
|
3
9
|
- Enhanced encoding handling to prevent misjudgments during UTF-8 conversion [#57](https://github.com/t-k/gmo-payment-ruby/pull/57) (Thanks [@y-yagi](https://github.com/y-yagi))
|
4
10
|
|
@@ -0,0 +1,53 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://<REMITTANCE_HOST>/api/shop/LinkRedirectUrl.json
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"Deposit_ID":"dep00001","Call_Back_Url":"https://example.com/callback","Amount":"100","Auth_Code":"AUTH001","Shop_ID":"<REMITTANCE_SHOP_ID>","Shop_Pass":"<REMITTANCE_SHOP_PASS>"}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
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: ''
|
22
|
+
headers:
|
23
|
+
Server:
|
24
|
+
- nginx
|
25
|
+
Date:
|
26
|
+
- Mon, 09 Oct 2023 08:25:18 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json;charset=UTF-8
|
29
|
+
Content-Length:
|
30
|
+
- "177"
|
31
|
+
Connection:
|
32
|
+
- close
|
33
|
+
X-Content-Type-Options:
|
34
|
+
- nosniff
|
35
|
+
Cache-Control:
|
36
|
+
- no-cache, no-store
|
37
|
+
Pragma:
|
38
|
+
- no-cache
|
39
|
+
Expires:
|
40
|
+
- '0'
|
41
|
+
Content-Disposition:
|
42
|
+
- attachment;filename="LinkRedirectUrl.json"
|
43
|
+
X-Frame-Options:
|
44
|
+
- SAMEORIGIN
|
45
|
+
X-Xss-Protection:
|
46
|
+
- "1; mode=block"
|
47
|
+
Strict-Transport-Security:
|
48
|
+
- max-age=63072000
|
49
|
+
body:
|
50
|
+
encoding: UTF-8
|
51
|
+
string: '{"Redirect_Url":"https://<REMITTANCE_HOST>/mail/mail-deposit?token=7c0bbc6531f42138eca9b8caf63b7735b5ad8d2faf8fe2ede3c364fd71f88e85","Deposit_ID":"dep00001","Method":"1"}'
|
52
|
+
recorded_at: Mon, 09 Oct 2023 08:25:18 GMT
|
53
|
+
recorded_with: VCR 6.1.0
|
@@ -0,0 +1,103 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://<REMITTANCE_HOST>/api/shop/LinkRedirectUrl.json
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"Deposit_ID":"dep00001","Call_Back_Url":"https://example.com/callback","Amount":"100","Auth_Code":"AUTH001","Shop_ID":"<REMITTANCE_SHOP_ID>","Shop_Pass":"<REMITTANCE_SHOP_PASS>"}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
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: ''
|
22
|
+
headers:
|
23
|
+
Server:
|
24
|
+
- nginx
|
25
|
+
Date:
|
26
|
+
- Mon, 09 Oct 2023 08:25:18 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json;charset=UTF-8
|
29
|
+
Content-Length:
|
30
|
+
- "177"
|
31
|
+
Connection:
|
32
|
+
- close
|
33
|
+
X-Content-Type-Options:
|
34
|
+
- nosniff
|
35
|
+
Cache-Control:
|
36
|
+
- no-cache, no-store
|
37
|
+
Pragma:
|
38
|
+
- no-cache
|
39
|
+
Expires:
|
40
|
+
- '0'
|
41
|
+
Content-Disposition:
|
42
|
+
- attachment;filename="LinkRedirectUrl.json"
|
43
|
+
X-Frame-Options:
|
44
|
+
- SAMEORIGIN
|
45
|
+
X-Xss-Protection:
|
46
|
+
- "1; mode=block"
|
47
|
+
Strict-Transport-Security:
|
48
|
+
- max-age=63072000
|
49
|
+
body:
|
50
|
+
encoding: UTF-8
|
51
|
+
string: '{"Redirect_Url":"https://<REMITTANCE_HOST>/mail/mail-deposit?token=cbc777b18666b7aa21f42e98fa972c493530c3d5d6bfd9125b262075512bf285","Deposit_ID":"dep00001","Method":"1"}'
|
52
|
+
recorded_at: Mon, 09 Oct 2023 08:25:18 GMT
|
53
|
+
- request:
|
54
|
+
method: post
|
55
|
+
uri: https://<REMITTANCE_HOST>/api/shop/LinkRedirectUrl.json
|
56
|
+
body:
|
57
|
+
encoding: UTF-8
|
58
|
+
string: '{"Deposit_ID":"dep00001","Method":2,"Shop_ID":"<REMITTANCE_SHOP_ID>","Shop_Pass":"<REMITTANCE_SHOP_PASS>"}'
|
59
|
+
headers:
|
60
|
+
Content-Type:
|
61
|
+
- application/json
|
62
|
+
Accept-Encoding:
|
63
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
64
|
+
Accept:
|
65
|
+
- "*/*"
|
66
|
+
User-Agent:
|
67
|
+
- Ruby
|
68
|
+
response:
|
69
|
+
status:
|
70
|
+
code: 200
|
71
|
+
message: ''
|
72
|
+
headers:
|
73
|
+
Server:
|
74
|
+
- nginx
|
75
|
+
Date:
|
76
|
+
- Mon, 09 Oct 2023 08:26:00 GMT
|
77
|
+
Content-Type:
|
78
|
+
- application/json;charset=UTF-8
|
79
|
+
Content-Length:
|
80
|
+
- '38'
|
81
|
+
Connection:
|
82
|
+
- close
|
83
|
+
X-Content-Type-Options:
|
84
|
+
- nosniff
|
85
|
+
Cache-Control:
|
86
|
+
- no-cache, no-store
|
87
|
+
Pragma:
|
88
|
+
- no-cache
|
89
|
+
Expires:
|
90
|
+
- '0'
|
91
|
+
Content-Disposition:
|
92
|
+
- attachment;filename="LinkRedirectUrl.json"
|
93
|
+
X-Frame-Options:
|
94
|
+
- SAMEORIGIN
|
95
|
+
X-Xss-Protection:
|
96
|
+
- "1; mode=block"
|
97
|
+
Strict-Transport-Security:
|
98
|
+
- max-age=63072000
|
99
|
+
body:
|
100
|
+
encoding: UTF-8
|
101
|
+
string: '{"Deposit_ID":"dep00001","Method":"2"}'
|
102
|
+
recorded_at: Mon, 09 Oct 2023 08:26:00 GMT
|
103
|
+
recorded_with: VCR 6.1.0
|
@@ -0,0 +1,53 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://<REMITTANCE_HOST>/api/shop/LinkRedirectUrl.json
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"Deposit_ID":"dep00001","Amount":"1000","Auth_Code":"auth00001","Call_Back_Url":"https://example.com/callback","Shop_ID":"<REMITTANCE_SHOP_ID>","Shop_Pass":"<REMITTANCE_SHOP_PASS>"}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
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: ''
|
22
|
+
headers:
|
23
|
+
Server:
|
24
|
+
- nginx
|
25
|
+
Date:
|
26
|
+
- Fri, 06 Oct 2023 10:30:26 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json;charset=UTF-8
|
29
|
+
Content-Length:
|
30
|
+
- "177"
|
31
|
+
Connection:
|
32
|
+
- close
|
33
|
+
X-Content-Type-Options:
|
34
|
+
- nosniff
|
35
|
+
Cache-Control:
|
36
|
+
- no-cache, no-store
|
37
|
+
Pragma:
|
38
|
+
- no-cache
|
39
|
+
Expires:
|
40
|
+
- '0'
|
41
|
+
Content-Disposition:
|
42
|
+
- attachment;filename="LinkRedirectUrl.json"
|
43
|
+
X-Frame-Options:
|
44
|
+
- SAMEORIGIN
|
45
|
+
X-Xss-Protection:
|
46
|
+
- "1; mode=block"
|
47
|
+
Strict-Transport-Security:
|
48
|
+
- max-age=63072000
|
49
|
+
body:
|
50
|
+
encoding: UTF-8
|
51
|
+
string: '{"Redirect_Url":"https://<REMITTANCE_HOST>/mail/mail-deposit?token=cfd81440aef67210b6f3eccf3cb8e7d7020013d67108ca4d13d1ca897fb0d0f6","Deposit_ID":"dep00001","Method":"1"}'
|
52
|
+
recorded_at: Fri, 06 Oct 2023 10:30:26 GMT
|
53
|
+
recorded_with: VCR 6.1.0
|
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://<REMITTANCE_HOST>/api/MailDepositRegistration.idPass
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: Deposit_ID=dep00001&Mail_Address=anyutzy%40demo.com&Amount=1000&Mail_Deposit_Account_Name=An+Yutzy&Expire=5&Shop_Mail_Address=anyutzy%40demo.com&Auth_Code=auth00001&Auth_Code2=auth00002&Auth_Code3=auth00003&Remit_Method_Bank=1&Mail_Template_Free1=mail_template_free_1&Mail_Template_Free2=mail_template_free_2&Mail_Template_Free3=mail_template_free_3&Mail_Template_Number=1&Bank_ID=bank_id00001&Select_Key=select00001&Client_Name=%83C%83%89%83C%83j%83%93%83%5E%83%8D%83E&Method=1&Shop_ID=<REMITTANCE_SHOP_ID>&Shop_Pass=<REMITTANCE_SHOP_PASS>
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: ''
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Thu, 12 Oct 2023 07:13:06 GMT
|
25
|
+
Content-Type:
|
26
|
+
- text/plain;charset=windows-31j
|
27
|
+
Content-Length:
|
28
|
+
- '56'
|
29
|
+
Connection:
|
30
|
+
- close
|
31
|
+
Cache-Control:
|
32
|
+
- no-cache, no-store
|
33
|
+
Pragma:
|
34
|
+
- no-cache
|
35
|
+
Expires:
|
36
|
+
- '0'
|
37
|
+
X-Frame-Options:
|
38
|
+
- SAMEORIGIN
|
39
|
+
X-Xss-Protection:
|
40
|
+
- "1; mode=block"
|
41
|
+
Strict-Transport-Security:
|
42
|
+
- max-age=63072000
|
43
|
+
body:
|
44
|
+
encoding: UTF-8
|
45
|
+
string: Deposit_ID=dep00001&Method=1&Amount=1000&Expire=20231018
|
46
|
+
recorded_at: Thu, 12 Oct 2023 07:13:06 GMT
|
47
|
+
recorded_with: VCR 6.1.0
|
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://<REMITTANCE_HOST>/api/MailDepositRegistration.idPass
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: Deposit_ID=dep00001&Mail_Address=anyutzy%40demo.com&Amount=1000&Mail_Deposit_Account_Name=An+Yutzy&Expire=5&Shop_Mail_Address=anyutzy%40demo.com&Auth_Code=auth00001&Auth_Code2=auth00002&Auth_Code3=auth00003&Remit_Method_Bank=1&Mail_Template_Free1=mail_template_free_1&Mail_Template_Free2=mail_template_free_2&Mail_Template_Free3=mail_template_free_3&Mail_Template_Number=1&Bank_ID=bank_id00001&Select_Key=select00001&Client_Name=%83C%83%89%83C%83j%83%93%83%5E%83%8D%83E&Method=1&Shop_ID=<REMITTANCE_SHOP_ID>&Shop_Pass=<REMITTANCE_SHOP_PASS>
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: ''
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Thu, 12 Oct 2023 07:13:06 GMT
|
25
|
+
Content-Type:
|
26
|
+
- text/plain;charset=windows-31j
|
27
|
+
Content-Length:
|
28
|
+
- '56'
|
29
|
+
Connection:
|
30
|
+
- close
|
31
|
+
Cache-Control:
|
32
|
+
- no-cache, no-store
|
33
|
+
Pragma:
|
34
|
+
- no-cache
|
35
|
+
Expires:
|
36
|
+
- '0'
|
37
|
+
X-Frame-Options:
|
38
|
+
- SAMEORIGIN
|
39
|
+
X-Xss-Protection:
|
40
|
+
- "1; mode=block"
|
41
|
+
Strict-Transport-Security:
|
42
|
+
- max-age=63072000
|
43
|
+
body:
|
44
|
+
encoding: UTF-8
|
45
|
+
string: Deposit_ID=dep00001&Method=1&Amount=1000&Expire=20231018
|
46
|
+
recorded_at: Thu, 12 Oct 2023 07:13:06 GMT
|
47
|
+
recorded_with: VCR 6.1.0
|
data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_ganb_gets_data_about_a_transaction.yml
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://<HOST>/payment/EntryTranGANB.idPass
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: OrderID=1696341308&Amount=100&ShopID=<SHOP_ID>&ShopPass=<SHOP_PASS>
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Tue, 03 Oct 2023 13:55:08 GMT
|
25
|
+
Content-Type:
|
26
|
+
- text/plain;charset=Shift_JIS
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Connection:
|
30
|
+
- close
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: OrderID=1696341308&AccessID=e297cc560cc91e226d0affef26f9ca10&AccessPass=e81b3b1af08488e16d73dcf5e0ecd6b0
|
34
|
+
recorded_at: Tue, 03 Oct 2023 13:55:08 GMT
|
35
|
+
recorded_with: VCR 6.1.0
|
data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_paypal_gets_data_about_a_transaction.yml
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://<HOST>/payment/EntryTranPaypal.idPass
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: OrderID=1665961543&JobCd=CAPTURE&Amount=100&ShopID=<SHOP_ID>&ShopPass=<SHOP_PASS>
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Sun, 16 Oct 2022 23:05:43 GMT
|
25
|
+
Content-Type:
|
26
|
+
- text/plain;charset=Windows-31J
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Connection:
|
30
|
+
- close
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: OrderID=1665961543&AccessID=37dc5228bcca9474fbe7cc4c911e898b&AccessPass=f59990590602293bd9b1aefdde90bf8c
|
34
|
+
recorded_at: Sun, 16 Oct 2022 23:05:43 GMT
|
35
|
+
recorded_with: VCR 6.0.0
|
data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_ganb_gets_data_about_a_transaction.yml
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://<HOST>/payment/EntryTranGANB.idPass
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: OrderID=1696418445&Amount=100&ShopID=<SHOP_ID>&ShopPass=<SHOP_PASS>
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Wed, 04 Oct 2023 11:20:50 GMT
|
25
|
+
Content-Type:
|
26
|
+
- text/plain;charset=Shift_JIS
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Connection:
|
30
|
+
- close
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: OrderID=1696418445&AccessID=ef73b56f6daf8fb36fa8e0a2133a0613&AccessPass=f9e832b3b9c886b70d98c5e857571033
|
34
|
+
recorded_at: Wed, 04 Oct 2023 11:20:45 GMT
|
35
|
+
- request:
|
36
|
+
method: post
|
37
|
+
uri: https://<HOST>/payment/ExecTranGANB.idPass
|
38
|
+
body:
|
39
|
+
encoding: UTF-8
|
40
|
+
string: OrderID=1696418445&AccessID=ef73b56f6daf8fb36fa8e0a2133a0613&AccessPass=f9e832b3b9c886b70d98c5e857571033&ClientField1=%89%C1%96%BF%93X%8E%A9%97R%8D%80%96%DA1%82%C5%82%B7%81B&ClientField2=%89%C1%96%BF%93X%8E%A9%97R%8D%80%96%DA2%82%C5%82%B7%81B&ClientField3=%89%C1%96%BF%93X%8E%A9%97R%8D%80%96%DA3%82%C5%82%B7%81B&=irai%40example.com&TradeDays=3&TradeReason=%8E%E6%88%F8%8E%96%97R%82%C5%82%B7%81B&TradeClientName=%88%CB%97%8A%89%D4%8Eq&ShopID=<SHOP_ID>&ShopPass=<SHOP_PASS>
|
41
|
+
headers:
|
42
|
+
Accept-Encoding:
|
43
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
44
|
+
Accept:
|
45
|
+
- "*/*"
|
46
|
+
User-Agent:
|
47
|
+
- Ruby
|
48
|
+
response:
|
49
|
+
status:
|
50
|
+
code: 200
|
51
|
+
message: OK
|
52
|
+
headers:
|
53
|
+
Server:
|
54
|
+
- nginx
|
55
|
+
Date:
|
56
|
+
- Wed, 04 Oct 2023 11:21:05 GMT
|
57
|
+
Content-Type:
|
58
|
+
- text/plain;charset=Shift_JIS
|
59
|
+
Transfer-Encoding:
|
60
|
+
- chunked
|
61
|
+
Connection:
|
62
|
+
- close
|
63
|
+
body:
|
64
|
+
encoding: ASCII-8BIT
|
65
|
+
string: !binary |-
|
66
|
+
QWNjZXNzSUQ9ZWY3M2I1NmY2ZGFmOGZiMzZmYThlMGEyPFRPS0VOPjMzYTA2PFRPS0VOPjMmQmFua0NvZGU9MDM8VE9LRU4+MCZCYW5rTmFtZT283i200bUtsbW/3tfIwsQmQnJhbmNoQ29kZT01MDMmQnJhbmNoTmFtZT22v7O8w90mQWNjb3VudFR5cGU9PFRPS0VOPiZBY2NvdW50TnVtYmVyPTg5Mjk2OTYmQWNjb3VudEhvbGRlck5hbWU9w73EvK6vzN8mQXZhaWxhYmxlRGF0ZT0yMDIzPFRPS0VOPjAwNw==
|
67
|
+
recorded_at: Wed, 04 Oct 2023 11:21:00 GMT
|
68
|
+
recorded_with: VCR 6.1.0
|
data/fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_paypal_gets_data_about_a_transaction.yml
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://<HOST>/payment/EntryTranPaypal.idPass
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: OrderID=1666049036&JobCd=CAPTURE&Amount=100&ShopID=<SHOP_ID>&ShopPass=<SHOP_PASS>
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Mon, 17 Oct 2022 23:23:57 GMT
|
25
|
+
Content-Type:
|
26
|
+
- text/plain;charset=Windows-31J
|
27
|
+
Transfer-Encoding:
|
28
|
+
- chunked
|
29
|
+
Connection:
|
30
|
+
- close
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: OrderID=1666049036&AccessID=0c3ce8ac4d8578942bdc2fb0bbee7657&AccessPass=cbc4fa24f0061c779f4f60a214785c5f
|
34
|
+
recorded_at: Mon, 17 Oct 2022 23:23:57 GMT
|
35
|
+
- request:
|
36
|
+
method: post
|
37
|
+
uri: https://<HOST>/payment/ExecTranPaypal.idPass
|
38
|
+
body:
|
39
|
+
encoding: UTF-8
|
40
|
+
string: OrderID=1666049036&AccessID=0c3ce8ac4d8578942bdc2fb0bbee7657&AccessPass=cbc4fa24f0061c779f4f60a214785c5f&RedirectURL=https%3A%2F%2Fexample.com%2Fpath%2Fto%2Fredirect&ItemName=%8Dw%93%FC%82%B7%82%E9%8F%A4%95i%96%BC&ShopID=<SHOP_ID>&ShopPass=<SHOP_PASS>
|
41
|
+
headers:
|
42
|
+
Accept-Encoding:
|
43
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
44
|
+
Accept:
|
45
|
+
- "*/*"
|
46
|
+
User-Agent:
|
47
|
+
- Ruby
|
48
|
+
response:
|
49
|
+
status:
|
50
|
+
code: 200
|
51
|
+
message: OK
|
52
|
+
headers:
|
53
|
+
Server:
|
54
|
+
- nginx
|
55
|
+
Date:
|
56
|
+
- Mon, 17 Oct 2022 23:23:57 GMT
|
57
|
+
Content-Type:
|
58
|
+
- text/plain;charset=Windows-31J
|
59
|
+
Transfer-Encoding:
|
60
|
+
- chunked
|
61
|
+
Connection:
|
62
|
+
- close
|
63
|
+
body:
|
64
|
+
encoding: UTF-8
|
65
|
+
string: OrderID=1666049036
|
66
|
+
recorded_at: Mon, 17 Oct 2022 23:23:57 GMT
|
67
|
+
recorded_with: VCR 6.0.0
|
data/lib/gmo/const.rb
CHANGED
@@ -33,11 +33,15 @@ module GMO
|
|
33
33
|
:address_4 => "Address4",
|
34
34
|
:address_5 => "Address5",
|
35
35
|
:address_6 => "Address6",
|
36
|
+
:auth_code => "Auth_Code",
|
37
|
+
:auth_code_2 => "Auth_Code2",
|
38
|
+
:auth_code_3 => "Auth_Code3",
|
36
39
|
:amount => "Amount",
|
37
40
|
:bank_code => "Bank_Code",
|
38
41
|
:bank_id => "Bank_ID",
|
39
42
|
:branch_code => "Branch_Code",
|
40
43
|
:branch_code_jp => "Branch_Code_Jpbank",
|
44
|
+
:call_back_url => "Call_Back_Url",
|
41
45
|
:cancel_amount => "CancelAmount",
|
42
46
|
:cancel_tax => "CancelTax",
|
43
47
|
:card_name => "CardName",
|
@@ -52,6 +56,7 @@ module GMO
|
|
52
56
|
:client_field_2 => "ClientField2",
|
53
57
|
:client_field_3 => "ClientField3",
|
54
58
|
:client_field_flg => "ClientFieldFlag",
|
59
|
+
:client_name => "Client_Name",
|
55
60
|
:commodity => "Commodity",
|
56
61
|
:confirm_base_date => "ConfirmBaseDate",
|
57
62
|
:continuance_month => "ContinuanceMonth",
|
@@ -87,6 +92,10 @@ module GMO
|
|
87
92
|
:locale => "Locale",
|
88
93
|
:md => "MD",
|
89
94
|
:mail_address => "MailAddress",
|
95
|
+
:mail_template_free_1 => "Mail_Template_Free1",
|
96
|
+
:mail_template_free_2 => "Mail_Template_Free2",
|
97
|
+
:mail_template_free_3 => "Mail_Template_Free3",
|
98
|
+
:mail_template_number => "Mail_Template_Number",
|
90
99
|
:member_id => "MemberID",
|
91
100
|
:member_name => "MemberName",
|
92
101
|
:member_no => "MemberNo",
|
@@ -123,12 +132,18 @@ module GMO
|
|
123
132
|
:register_disp_6 => "RegisterDisp6",
|
124
133
|
:register_disp_7 => "RegisterDisp7",
|
125
134
|
:register_disp_8 => "RegisterDisp8",
|
135
|
+
:remit_method_amazongift => "Remit_Method_Amazongift",
|
136
|
+
:remit_method_aupay => "Remit_Method_Aupay",
|
137
|
+
:remit_method_bank => "Remit_Method_Bank",
|
138
|
+
:remit_method_sevenatm => "Remit_Method_Sevenatm",
|
126
139
|
:reserve_no => "ReserveNo",
|
127
140
|
:ret_url => "RetURL",
|
128
141
|
:security_code => "SecurityCode",
|
142
|
+
:select_key => "Select_Key",
|
129
143
|
:seq_mode => "SeqMode",
|
130
144
|
:service_name => "ServiceName",
|
131
145
|
:service_tel => "ServiceTel",
|
146
|
+
:sevenatm_payment_term_day => "Sevenatm_Payment_Term_Day",
|
132
147
|
:shop_id => "ShopID",
|
133
148
|
:shop_mail_address => "ShopMailAddress",
|
134
149
|
:shop_pass => "ShopPass",
|
data/lib/gmo/http_services.rb
CHANGED
@@ -40,7 +40,12 @@ module GMO
|
|
40
40
|
|
41
41
|
http.start do |h|
|
42
42
|
response = if verb == "post"
|
43
|
-
|
43
|
+
if /\.json\Z/ =~ path
|
44
|
+
headers = { "Content-Type" => "application/json" }
|
45
|
+
h.post(path, args.to_json, headers)
|
46
|
+
else
|
47
|
+
h.post(path, encode_params(args))
|
48
|
+
end
|
44
49
|
else
|
45
50
|
h.get("#{path}?#{encode_params(args)}")
|
46
51
|
end
|
data/lib/gmo/remittance_api.rb
CHANGED
@@ -250,6 +250,17 @@ module GMO
|
|
250
250
|
# Mail_Deposit_Account_Name
|
251
251
|
# Expire
|
252
252
|
# Shop_Mail_Address
|
253
|
+
# Auth_Code
|
254
|
+
# Auth_Code2
|
255
|
+
# Auth_Code3
|
256
|
+
# Remit_Method_Bank
|
257
|
+
# Mail_Template_Free1
|
258
|
+
# Mail_Template_Free2
|
259
|
+
# Mail_Template_Free3
|
260
|
+
# Mail_Template_Number
|
261
|
+
# Bank_ID
|
262
|
+
# Select_Key
|
263
|
+
# Client_Name
|
253
264
|
### @return ###
|
254
265
|
# Method
|
255
266
|
# Amount
|
@@ -268,7 +279,7 @@ module GMO
|
|
268
279
|
def create_mail_deposit(options = {})
|
269
280
|
name = "/api/MailDepositRegistration.idPass"
|
270
281
|
options[:method] = 1
|
271
|
-
required = %i(deposit_id deposit_email amount
|
282
|
+
required = %i(deposit_id deposit_email amount expire deposit_shop_email)
|
272
283
|
assert_required_options(required, options)
|
273
284
|
post_request name, options
|
274
285
|
end
|
@@ -314,6 +325,57 @@ module GMO
|
|
314
325
|
post_request name, options
|
315
326
|
end
|
316
327
|
|
328
|
+
#########
|
329
|
+
# Deposit_ID
|
330
|
+
# Call_Back_Url
|
331
|
+
# Amount
|
332
|
+
# Auth_Code
|
333
|
+
# Auth_Code2
|
334
|
+
# Auth_Code3
|
335
|
+
# Remit_Method_Bank
|
336
|
+
# Remit_Method_Sevenatm
|
337
|
+
# Sevenatm_Payment_Term_Day
|
338
|
+
# Remit_Method_Amazongift
|
339
|
+
# Remit_Method_Aup ay
|
340
|
+
# Bank_ID
|
341
|
+
# Client_Name
|
342
|
+
### @return ###
|
343
|
+
# Deposit_ID
|
344
|
+
# Redirect_Url
|
345
|
+
# Method
|
346
|
+
### example ###
|
347
|
+
# gmo.create_link_redirect_url({
|
348
|
+
# deposit_id: 'dep00001',
|
349
|
+
# call_back_url: 'https://XXXX/XXXX/XXXX/XXXX',
|
350
|
+
# amount: '1000',
|
351
|
+
# auth_code: 'auth00001',
|
352
|
+
# })
|
353
|
+
# {"Deposit_ID"=>"dep00001", "Redirect_Url"=>"https://XXXX/XXXX/XXXX/XXXX", "Method"=>"1"}
|
354
|
+
def create_link_redirect_url(options = {})
|
355
|
+
name = "/api/shop/LinkRedirectUrl.json"
|
356
|
+
required = %i(deposit_id call_back_url amount auth_code)
|
357
|
+
assert_required_options(required, options)
|
358
|
+
post_request name, options
|
359
|
+
end
|
360
|
+
|
361
|
+
#########
|
362
|
+
# Deposit_ID
|
363
|
+
### @return ###
|
364
|
+
# Deposit_ID
|
365
|
+
# Method
|
366
|
+
### example ###
|
367
|
+
# gmo.cancel_link_redirect_url({
|
368
|
+
# deposit_id: 'dep00001',
|
369
|
+
# })
|
370
|
+
# {"Deposit_ID"=>"dep00001", "Method"=>"2"}
|
371
|
+
def cancel_link_redirect_url(options = {})
|
372
|
+
name = "/api/shop/LinkRedirectUrl.json"
|
373
|
+
required = %i(deposit_id)
|
374
|
+
options[:method] = 2
|
375
|
+
assert_required_options(required, options)
|
376
|
+
post_request name, options
|
377
|
+
end
|
378
|
+
|
317
379
|
private
|
318
380
|
|
319
381
|
def api_call(name, args = {}, verb = "post", options = {})
|
data/lib/gmo/shop_api.rb
CHANGED
@@ -73,6 +73,26 @@ module GMO
|
|
73
73
|
post_request name, options
|
74
74
|
end
|
75
75
|
|
76
|
+
# 【PayPal決済】
|
77
|
+
# 取引登録
|
78
|
+
# これ以降の決済取引で必要となる取引IDと取引パスワードの発行を行い、取引を開始します。
|
79
|
+
def entry_tran_paypal(options = {})
|
80
|
+
name = "EntryTranPaypal.idPass"
|
81
|
+
required = [:order_id, :job_cd, :amount]
|
82
|
+
assert_required_options(required, options)
|
83
|
+
post_request name, options
|
84
|
+
end
|
85
|
+
|
86
|
+
# 【銀行振込(バーチャル口座 あおぞら)】
|
87
|
+
# 取引登録
|
88
|
+
# オーダーIDを指定して取引を登録します。
|
89
|
+
def entry_tran_ganb(options = {})
|
90
|
+
name = "EntryTranGANB.idPass"
|
91
|
+
required = [:order_id, :amount]
|
92
|
+
assert_required_options(required, options)
|
93
|
+
post_request name, options
|
94
|
+
end
|
95
|
+
|
76
96
|
# 【LINE Pay決済】
|
77
97
|
# 20.1.2.1. 取引登録
|
78
98
|
# これ以降の決済取引で必要となる取引IDと取引パスワードの発行を行い、取引を開始します。
|
@@ -322,6 +342,26 @@ module GMO
|
|
322
342
|
post_request name, options
|
323
343
|
end
|
324
344
|
|
345
|
+
# 【PayPal決済】
|
346
|
+
# 決済実行
|
347
|
+
# PayPalと通信を行い決済要求結果を返します。
|
348
|
+
def exec_tran_paypal(options = {})
|
349
|
+
name = "ExecTranPaypal.idPass"
|
350
|
+
required = [:access_id, :access_pass, :order_id, :item_name, :redirect_url]
|
351
|
+
assert_required_options(required, options)
|
352
|
+
post_request name, options
|
353
|
+
end
|
354
|
+
|
355
|
+
# 【銀行振込(バーチャル口座 あおぞら)】
|
356
|
+
# 決済実行
|
357
|
+
# 登録された取引に対してバーチャル口座を発行します。
|
358
|
+
def exec_tran_ganb(options = {})
|
359
|
+
name = "ExecTranGANB.idPass"
|
360
|
+
required = [:access_id, :access_pass, :order_id]
|
361
|
+
assert_required_options(required, options)
|
362
|
+
post_request name, options
|
363
|
+
end
|
364
|
+
|
325
365
|
# 【LINE Pay決済】
|
326
366
|
# 20.1.2.2. 決済実行
|
327
367
|
def exec_tran_linepay(options = {})
|
data/lib/gmo/version.rb
CHANGED
data/lib/gmo.rb
CHANGED
@@ -38,9 +38,16 @@ module GMO
|
|
38
38
|
raise GMO::Payment::ServerError.new(result.body, error_detail)
|
39
39
|
end
|
40
40
|
# Transform the body to Hash
|
41
|
-
|
42
|
-
|
43
|
-
|
41
|
+
if /\.json\Z/ =~ path
|
42
|
+
# Parse the body as JSON
|
43
|
+
parsed_result = ::JSON.parse(result.body)
|
44
|
+
response = parsed_result.is_a?(Array) ? parsed_result[0] : parsed_result
|
45
|
+
else
|
46
|
+
# Parse the body as Query string
|
47
|
+
# "ACS=1&ACSUrl=url" => { "ACS" => "1", ACSUrl => "url" }
|
48
|
+
key_values = result.body.to_s.split('&').map { |str| str.split('=', 2) }.flatten
|
49
|
+
response = Hash[*key_values]
|
50
|
+
end
|
44
51
|
# converting to UTF-8
|
45
52
|
body = response = Hash[response.map { |k,v| [k, NKF.nkf('-S -w',v)] }]
|
46
53
|
# Check for errors if provided a error_checking_block
|
@@ -376,54 +376,76 @@ describe "GMO::Payment::RemittanceAPI" do
|
|
376
376
|
end
|
377
377
|
|
378
378
|
describe "#create_mail_deposit" do
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
379
|
+
subject(:do_api_call) { @service.create_mail_deposit(options) }
|
380
|
+
|
381
|
+
context 'with valid options', :vcr do
|
382
|
+
let(:options) do
|
383
|
+
{
|
384
|
+
:deposit_id => "dep00001",
|
385
|
+
:deposit_email => "anyutzy@demo.com",
|
386
|
+
:amount => 1000,
|
387
|
+
:deposit_account_name => "An Yutzy",
|
388
|
+
:expire => 5,
|
389
|
+
:deposit_shop_email => "anyutzy@demo.com",
|
390
|
+
:auth_code => "auth00001",
|
391
|
+
:auth_code_2 => "auth00002",
|
392
|
+
:auth_code_3 => "auth00003",
|
393
|
+
:remit_method_bank => "1",
|
394
|
+
:mail_template_free_1 => "mail_template_free_1",
|
395
|
+
:mail_template_free_2 => "mail_template_free_2",
|
396
|
+
:mail_template_free_3 => "mail_template_free_3",
|
397
|
+
:mail_template_number => 1,
|
398
|
+
:bank_id => "bank_id00001",
|
399
|
+
:select_key => "select00001",
|
400
|
+
:client_name => "イライニンタロウ",
|
401
|
+
}
|
402
|
+
end
|
389
403
|
|
390
|
-
|
391
|
-
result = do_api_call
|
392
|
-
result["Deposit_ID"].nil?.should_not be_truthy
|
393
|
-
result["Method"].nil?.should_not be_truthy
|
394
|
-
result["Amount"].nil?.should_not be_truthy
|
395
|
-
result["Expire"].nil?.should_not be_truthy
|
396
|
-
end
|
404
|
+
before { allow(GMO).to receive(:make_request).and_call_original }
|
397
405
|
|
398
|
-
|
399
|
-
|
400
|
-
|
406
|
+
it "gets data about a mail deposit" do
|
407
|
+
result = do_api_call
|
408
|
+
expect(result["Deposit_ID"]).to eq options[:deposit_id]
|
409
|
+
expect(result["Method"]).to eq "1"
|
410
|
+
expect(result["Amount"]).to eq options[:amount].to_s
|
411
|
+
expect(result["Expire"]).not_to be_nil
|
412
|
+
end
|
401
413
|
|
402
|
-
it "makes request with correct parameters"
|
414
|
+
it "makes request with correct parameters" do
|
415
|
+
do_api_call
|
403
416
|
path = "/api/MailDepositRegistration.idPass"
|
404
417
|
args = {
|
405
|
-
"Deposit_ID" =>
|
406
|
-
"Mail_Address" =>
|
407
|
-
"Amount" =>
|
408
|
-
"Mail_Deposit_Account_Name" =>
|
409
|
-
"Expire" =>
|
410
|
-
"Shop_Mail_Address" =>
|
418
|
+
"Deposit_ID" => options[:deposit_id],
|
419
|
+
"Mail_Address" => options[:deposit_email],
|
420
|
+
"Amount" => options[:amount],
|
421
|
+
"Mail_Deposit_Account_Name" => options[:deposit_account_name],
|
422
|
+
"Expire" => options[:expire],
|
423
|
+
"Shop_Mail_Address" => options[:deposit_shop_email],
|
424
|
+
"Auth_Code" => options[:auth_code],
|
425
|
+
"Auth_Code2" => options[:auth_code_2],
|
426
|
+
"Auth_Code3" => options[:auth_code_3],
|
427
|
+
"Remit_Method_Bank" => options[:remit_method_bank],
|
428
|
+
"Mail_Template_Free1" => options[:mail_template_free_1],
|
429
|
+
"Mail_Template_Free2" => options[:mail_template_free_2],
|
430
|
+
"Mail_Template_Free3" => options[:mail_template_free_3],
|
431
|
+
"Mail_Template_Number" => options[:mail_template_number],
|
432
|
+
"Bank_ID" => options[:bank_id],
|
433
|
+
"Select_Key" => options[:select_key],
|
434
|
+
"Client_Name" => options[:client_name],
|
411
435
|
"Method" => 1,
|
412
436
|
"Shop_ID" => @service.shop_id,
|
413
437
|
"Shop_Pass" => @service.shop_pass
|
414
438
|
}
|
415
|
-
|
416
|
-
options = { :host => @service.host }
|
417
|
-
expect(GMO).to receive(:make_request).with(path, args, verb, options)
|
439
|
+
expect(GMO).to have_received(:make_request).with(path, args, "post", { :host => @service.host })
|
418
440
|
end
|
419
|
-
|
420
|
-
after { do_api_call }
|
421
441
|
end
|
422
442
|
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
443
|
+
context "with invalid options" do
|
444
|
+
let(:options) { {} }
|
445
|
+
|
446
|
+
it "got error" do
|
447
|
+
expect { do_api_call }.to raise_error("Required deposit_id, deposit_email, amount, expire, deposit_shop_email were not provided.")
|
448
|
+
end
|
427
449
|
end
|
428
450
|
end
|
429
451
|
|
@@ -503,4 +525,69 @@ describe "GMO::Payment::RemittanceAPI" do
|
|
503
525
|
end
|
504
526
|
end
|
505
527
|
|
528
|
+
describe "#create_link_redirect_url" do
|
529
|
+
subject(:do_api_call) { @service.create_link_redirect_url(options) }
|
530
|
+
|
531
|
+
context 'with valid options', :vcr do
|
532
|
+
let(:deposit_id) { "dep00001" }
|
533
|
+
let(:options) do
|
534
|
+
{
|
535
|
+
deposit_id: deposit_id,
|
536
|
+
call_back_url: "https://example.com/callback",
|
537
|
+
amount: "1000",
|
538
|
+
auth_code: "auth00005",
|
539
|
+
auth_code_2: "auth00002",
|
540
|
+
auth_code_3: "auth00003",
|
541
|
+
remit_method_bank: "1",
|
542
|
+
remit_method_sevenatm: "1",
|
543
|
+
sevenatm_payment_term_day: "15",
|
544
|
+
remit_method_amazongift: "1",
|
545
|
+
remit_method_aupay: "1",
|
546
|
+
bank_id: "bank_id00001",
|
547
|
+
client_name: "リンクユーアールエル",
|
548
|
+
}
|
549
|
+
end
|
550
|
+
|
551
|
+
it "gets data about link redirect url" do
|
552
|
+
result = do_api_call
|
553
|
+
expect(result["Deposit_ID"]).to eq(deposit_id)
|
554
|
+
expect(result["Redirect_Url"]).not_to be_nil
|
555
|
+
expect(result["Method"]).to eq("1")
|
556
|
+
end
|
557
|
+
end
|
558
|
+
|
559
|
+
context "with invalid options", :vcr do
|
560
|
+
let(:options) { {} }
|
561
|
+
|
562
|
+
it "got error" do
|
563
|
+
expect { do_api_call }.to raise_error("Required deposit_id, call_back_url, amount, auth_code were not provided.")
|
564
|
+
end
|
565
|
+
end
|
566
|
+
end
|
567
|
+
|
568
|
+
describe "#cancel_link_redirect_url" do
|
569
|
+
subject (:do_api_call) { @service.cancel_link_redirect_url(options) }
|
570
|
+
|
571
|
+
before { @service.create_link_redirect_url(deposit_id: deposit_id, call_back_url: 'https://example.com/callback', amount: '100', auth_code: 'AUTH001') }
|
572
|
+
|
573
|
+
context 'with valid options', :vcr do
|
574
|
+
let(:options) { { deposit_id: deposit_id } }
|
575
|
+
let(:deposit_id) { "dep00001" }
|
576
|
+
|
577
|
+
it "gets data about a link edirect url" do
|
578
|
+
result = do_api_call
|
579
|
+
expect(result["Deposit_ID"]).not_to be_nil
|
580
|
+
expect(result["Method"]).to eq "2"
|
581
|
+
end
|
582
|
+
end
|
583
|
+
|
584
|
+
context "with invalid options", :vcr do
|
585
|
+
let(:options) { {} }
|
586
|
+
let(:deposit_id) { "dep00001" }
|
587
|
+
|
588
|
+
it "got error" do
|
589
|
+
expect { do_api_call }.to raise_error("Required deposit_id were not provided.")
|
590
|
+
end
|
591
|
+
end
|
592
|
+
end
|
506
593
|
end
|
data/spec/gmo/shop_api_spec.rb
CHANGED
@@ -98,6 +98,44 @@ describe "GMO::Payment::ShopAPI" do
|
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
|
+
describe "#entry_tran_paypal" do
|
102
|
+
it "gets data about a transaction", :vcr do
|
103
|
+
order_id = @order_id
|
104
|
+
result = @service.entry_tran_paypal({
|
105
|
+
:order_id => order_id,
|
106
|
+
:job_cd => 'CAPTURE',
|
107
|
+
:amount => 100
|
108
|
+
})
|
109
|
+
result["AccessID"].nil?.should_not be_truthy
|
110
|
+
result["AccessPass"].nil?.should_not be_truthy
|
111
|
+
end
|
112
|
+
|
113
|
+
it "got error if missing options", :vcr do
|
114
|
+
lambda {
|
115
|
+
result = @service.entry_tran_paypal()
|
116
|
+
}.should raise_error("Required order_id, job_cd, amount were not provided.")
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe "#entry_tran_ganb" do
|
121
|
+
it "gets data about a transaction", :vcr do
|
122
|
+
order_id = @order_id
|
123
|
+
result = @service.entry_tran_ganb({
|
124
|
+
:order_id => order_id,
|
125
|
+
:amount => 100
|
126
|
+
})
|
127
|
+
result["AccessID"].nil?.should_not be_truthy
|
128
|
+
result["AccessPass"].nil?.should_not be_truthy
|
129
|
+
end
|
130
|
+
|
131
|
+
it "got error if missing options", :vcr do
|
132
|
+
lambda {
|
133
|
+
result = @service.entry_tran_ganb()
|
134
|
+
}.should raise_error("Required order_id, amount were not provided.")
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
|
101
139
|
describe "#entry_tran_linepay" do
|
102
140
|
it "gets data about a transaction", :vcr do
|
103
141
|
order_id = @order_id
|
@@ -429,6 +467,72 @@ describe "GMO::Payment::ShopAPI" do
|
|
429
467
|
end
|
430
468
|
end
|
431
469
|
|
470
|
+
describe "#exec_tran_paypal" do
|
471
|
+
it "gets data about a transaction", :vcr do
|
472
|
+
order_id = generate_id
|
473
|
+
result = @service.entry_tran_paypal({
|
474
|
+
:order_id => order_id,
|
475
|
+
:job_cd => 'CAPTURE',
|
476
|
+
:amount => 100
|
477
|
+
})
|
478
|
+
access_id = result["AccessID"]
|
479
|
+
access_pass = result["AccessPass"]
|
480
|
+
result = @service.exec_tran_paypal({
|
481
|
+
:order_id => order_id,
|
482
|
+
:access_id => access_id,
|
483
|
+
:access_pass => access_pass,
|
484
|
+
:redirect_url => 'https://example.com/path/to/redirect',
|
485
|
+
:item_name => '購入する商品名'
|
486
|
+
})
|
487
|
+
result["OrderID"].nil?.should_not be_truthy
|
488
|
+
end
|
489
|
+
|
490
|
+
it "got error if missing options", :vcr do
|
491
|
+
lambda {
|
492
|
+
result = @service.exec_tran_paypal()
|
493
|
+
}.should raise_error("Required access_id, access_pass, order_id, item_name, redirect_url were not provided.")
|
494
|
+
end
|
495
|
+
end
|
496
|
+
|
497
|
+
describe "#exec_tran_ganb" do
|
498
|
+
it "gets data about a transaction", :vcr do
|
499
|
+
order_id = generate_id
|
500
|
+
result = @service.entry_tran_ganb({
|
501
|
+
:order_id => order_id,
|
502
|
+
:amount => 100
|
503
|
+
})
|
504
|
+
access_id = result["AccessID"]
|
505
|
+
access_pass = result["AccessPass"]
|
506
|
+
result = @service.exec_tran_ganb({
|
507
|
+
:order_id => order_id,
|
508
|
+
:access_id => access_id,
|
509
|
+
:access_pass => access_pass,
|
510
|
+
:client_field_1 => '加盟店自由項目1です。',
|
511
|
+
:client_field_2 => '加盟店自由項目2です。',
|
512
|
+
:client_field_3 => '加盟店自由項目3です。',
|
513
|
+
:account_holder_optional_name => 'コウザタロウ',
|
514
|
+
:trade_days => '3',
|
515
|
+
:trade_reason => '取引事由です。',
|
516
|
+
:trade_client_name => '依頼花子',
|
517
|
+
:trade_client_mailaddress => 'irai@example.com'
|
518
|
+
})
|
519
|
+
result["BankCode"].nil?.should_not be_truthy
|
520
|
+
result["BankName"].nil?.should_not be_truthy
|
521
|
+
result["BranchCode"].nil?.should_not be_truthy
|
522
|
+
result["BranchName"].nil?.should_not be_truthy
|
523
|
+
result["AccountType"].nil?.should_not be_truthy
|
524
|
+
result["AccountNumber"].nil?.should_not be_truthy
|
525
|
+
result["AccountHolderName"].nil?.should_not be_truthy
|
526
|
+
result["AvailableDate"].nil?.should_not be_truthy
|
527
|
+
end
|
528
|
+
|
529
|
+
it "got error if missing options", :vcr do
|
530
|
+
lambda {
|
531
|
+
result = @service.exec_tran_ganb()
|
532
|
+
}.should raise_error("Required access_id, access_pass, order_id were not provided.")
|
533
|
+
end
|
534
|
+
end
|
535
|
+
|
432
536
|
describe "#exec_tran_linepay" do
|
433
537
|
it "gets data about a transaction", :vcr do
|
434
538
|
order_id = generate_id
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gmo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tatsuo Kaniwa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -112,10 +112,14 @@ files:
|
|
112
112
|
- Rakefile
|
113
113
|
- autotest/discover.rb
|
114
114
|
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_cancel_deposit_gets_data_about_a_deposit.yml
|
115
|
+
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_cancel_link_redirect_url_with_invalid_options_got_error.yml
|
116
|
+
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_cancel_link_redirect_url_with_valid_options_gets_data_about_a_link_edirect_url.yml
|
115
117
|
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_cancel_mail_deposit_gets_data_about_a_mail_deposit.yml
|
116
118
|
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_account_gets_data_about_an_account.yml
|
117
119
|
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_deposit_gets_data_about_a_deposit.yml
|
118
|
-
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/
|
120
|
+
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_link_redirect_url_with_valid_options_gets_data_about_link_redirect_url.yml
|
121
|
+
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_mail_deposit_with_valid_options_gets_data_about_a_mail_deposit.yml
|
122
|
+
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_create_mail_deposit_with_valid_options_makes_request_with_correct_parameters.yml
|
119
123
|
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_delete_account_gets_data_about_an_account.yml
|
120
124
|
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_search_account_gets_data_about_an_account.yml
|
121
125
|
- fixtures/vcr_cassettes/GMO_Payment_RemittanceAPI/_search_balance_gets_data_about_balance.yml
|
@@ -134,10 +138,12 @@ files:
|
|
134
138
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_cvs_got_error_if_missing_options.yml
|
135
139
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_docomo_gets_data_about_a_transaction.yml
|
136
140
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_edy_gets_data_about_a_transaction.yml
|
141
|
+
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_ganb_gets_data_about_a_transaction.yml
|
137
142
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_gets_data_about_a_transaction.yml
|
138
143
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_got_error_if_missing_options.yml
|
139
144
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_linepay_gets_data_about_a_transaction.yml
|
140
145
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_pay_easy_gets_data_about_a_transaction.yml
|
146
|
+
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_paypal_gets_data_about_a_transaction.yml
|
141
147
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_rakuten_id_gets_data_about_a_transaction.yml
|
142
148
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_suica_gets_data_about_a_transaction.yml
|
143
149
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_entry_tran_virtualaccount_gets_data_about_a_transaction.yml
|
@@ -147,11 +153,13 @@ files:
|
|
147
153
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_docomo_gets_data_about_a_transaction.yml
|
148
154
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_doesn_t_require_card_info_if_token_is_present.yml
|
149
155
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_edy_gets_data_about_a_transaction.yml
|
156
|
+
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_ganb_gets_data_about_a_transaction.yml
|
150
157
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_gets_data_about_a_transaction.yml
|
151
158
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_got_error_if_missing_options.yml
|
152
159
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_linepay_gets_data_about_a_transaction.yml
|
153
160
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_parameter_contains_Japanese_characters_should_correctly_handle_Japanese.yml
|
154
161
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_pay_easy_gets_data_about_a_transaction.yml
|
162
|
+
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_paypal_gets_data_about_a_transaction.yml
|
155
163
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_rakuten_id_gets_data_about_a_transaction.yml
|
156
164
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_suica_gets_data_about_a_transaction.yml
|
157
165
|
- fixtures/vcr_cassettes/GMO_Payment_ShopAPI/_exec_tran_virtualaccount_gets_data_about_a_transaction.yml
|
@@ -1,38 +0,0 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: post
|
5
|
-
uri: https://<REMITTANCE_HOST>/api/MailDepositRegistration.idPass
|
6
|
-
body:
|
7
|
-
encoding: Windows-31J
|
8
|
-
string: Deposit_ID=dep0000<SHOP_PASS>&Mail_Address=anyutzy%40demo.com&Amount=<SHOP_PASS>000&Mail_Deposit_Account_Name=An+Yutzy&Expire=5&Shop_Mail_Address=anyutzy%40demo.com&Method=<SHOP_PASS>&Shop_ID=<REMITTANCE_SHOP_ID>&Shop_Pass=<REMITTANCE_SHOP_PASS>
|
9
|
-
headers:
|
10
|
-
Accept-Encoding:
|
11
|
-
- gzip;q=<SHOP_PASS>.0,deflate;q=0.6,identity;q=0.3
|
12
|
-
Accept:
|
13
|
-
- "*/*"
|
14
|
-
User-Agent:
|
15
|
-
- Ruby
|
16
|
-
response:
|
17
|
-
status:
|
18
|
-
code: 200
|
19
|
-
message: OK
|
20
|
-
headers:
|
21
|
-
Server:
|
22
|
-
- nginx
|
23
|
-
Date:
|
24
|
-
- Mon, 0<SHOP_PASS> May 20<SHOP_PASS>7 05:58:27 GMT
|
25
|
-
Content-Type:
|
26
|
-
- text/plain;charset=Windows-3<SHOP_PASS>J
|
27
|
-
Transfer-Encoding:
|
28
|
-
- chunked
|
29
|
-
Connection:
|
30
|
-
- close
|
31
|
-
X-Frame-Options:
|
32
|
-
- SAMEORIGIN
|
33
|
-
body:
|
34
|
-
encoding: Windows-31J
|
35
|
-
string: Deposit_ID=dep00001&Method=1&Amount=1000&Expire=20170503
|
36
|
-
http_version:
|
37
|
-
recorded_at: Mon, 01 May 2017 05:58:27 GMT
|
38
|
-
recorded_with: VCR 3.0.3
|