pokepay_partner_ruby_sdk 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +7 -7
- data/README.md +14 -0
- data/docs/index.md +285 -72
- data/examples/examples.rb +178 -13
- data/lib/pokepay_partner_ruby_sdk/client.rb +9 -7
- data/lib/pokepay_partner_ruby_sdk/parameter/product.rb +21 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_check.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_cpm_transaction.rb +17 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_customer_account.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_exchange_transaction.rb +18 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_organization.rb +18 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_payment_transaction.rb +18 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_shop.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_topup_transaction.rb +17 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_topup_transaction_with_check.rb +16 -0
- data/lib/pokepay_partner_ruby_sdk/request/create_transaction.rb +5 -5
- data/lib/pokepay_partner_ruby_sdk/request/get_account.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/get_ping.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/get_private_money_organization_summaries.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/get_transaction.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/get_user.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/list_account_balances.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/list_transactions.rb +7 -4
- data/lib/pokepay_partner_ruby_sdk/request/list_transfers.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/request/send_echo.rb +4 -1
- data/lib/pokepay_partner_ruby_sdk/response/account.rb +2 -0
- data/lib/pokepay_partner_ruby_sdk/response/account_balance.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/response/account_detail.rb +24 -0
- data/lib/pokepay_partner_ruby_sdk/response/account_with_user.rb +21 -0
- data/lib/pokepay_partner_ruby_sdk/response/account_without_private_money_detail.rb +20 -0
- data/lib/pokepay_partner_ruby_sdk/response/admin_user_with_shops_and_private_moneys.rb +26 -0
- data/lib/pokepay_partner_ruby_sdk/response/bad_request.rb +11 -0
- data/lib/pokepay_partner_ruby_sdk/response/check.rb +37 -0
- data/lib/pokepay_partner_ruby_sdk/response/echo.rb +6 -3
- data/lib/pokepay_partner_ruby_sdk/response/invalid_parameters.rb +15 -0
- data/lib/pokepay_partner_ruby_sdk/response/organization.rb +3 -0
- data/lib/pokepay_partner_ruby_sdk/response/organization_summary.rb +19 -0
- data/lib/pokepay_partner_ruby_sdk/response/paginated_account_balance.rb +16 -0
- data/lib/pokepay_partner_ruby_sdk/response/paginated_private_money_organization_summaries.rb +16 -0
- data/lib/pokepay_partner_ruby_sdk/response/paginated_transaction.rb +16 -0
- data/lib/pokepay_partner_ruby_sdk/response/paginated_transfers.rb +16 -0
- data/lib/pokepay_partner_ruby_sdk/response/pagination.rb +9 -6
- data/lib/pokepay_partner_ruby_sdk/response/partner_client_not_found.rb +13 -0
- data/lib/pokepay_partner_ruby_sdk/response/partner_decryption_failed.rb +13 -0
- data/lib/pokepay_partner_ruby_sdk/response/partner_request_already_done.rb +13 -0
- data/lib/pokepay_partner_ruby_sdk/response/partner_request_expired.rb +13 -0
- data/lib/pokepay_partner_ruby_sdk/response/pong.rb +11 -0
- data/lib/pokepay_partner_ruby_sdk/response/private_money.rb +8 -0
- data/lib/pokepay_partner_ruby_sdk/response/private_money_organization_summary.rb +17 -0
- data/lib/pokepay_partner_ruby_sdk/response/response.rb +3 -3
- data/lib/pokepay_partner_ruby_sdk/response/transaction.rb +5 -1
- data/lib/pokepay_partner_ruby_sdk/response/transfer.rb +31 -0
- data/lib/pokepay_partner_ruby_sdk/response/user.rb +3 -0
- data/lib/pokepay_partner_ruby_sdk/response/user_transaction.rb +33 -0
- data/lib/pokepay_partner_ruby_sdk/version.rb +1 -1
- data/lib/pokepay_partner_ruby_sdk.rb +43 -6
- data/pokepay_partner_ruby_sdk.gemspec +4 -4
- metadata +47 -10
- data/lib/pokepay_partner_ruby_sdk/response/transactions.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5027b7fd2a102a6e077dc1d3d68ce6c65f8b7216c6320fefcbf3882cba87b146
|
4
|
+
data.tar.gz: 10a43dad44d77fd654cc0744a17c9996df903ed4f03cc2a671708c2f631a39f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d430a4b622d7ef751ef766ef7b278688d314157d0477c490096db6a1d81e269e290b3c5dbdd62c725375b4934d830948e3bcc9e60e00376f57060abe4e249af4
|
7
|
+
data.tar.gz: 889991f4824194bd01e404744061857eae3866c571342e775ddd6240c1f103f31bfb2f01459134ac525a3ba312c97fb8439a3846f350e7df239efb1311d95ce5
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
pokepay_partner_ruby_sdk (0.1.
|
4
|
+
pokepay_partner_ruby_sdk (0.1.2)
|
5
5
|
inifile (~> 3.0.0)
|
6
|
-
json (~> 2.
|
6
|
+
json (~> 2.3.0)
|
7
7
|
openssl (~> 2.1.2)
|
8
8
|
|
9
9
|
GEM
|
@@ -11,11 +11,11 @@ GEM
|
|
11
11
|
specs:
|
12
12
|
inifile (3.0.0)
|
13
13
|
ipaddr (1.2.2)
|
14
|
-
json (2.
|
15
|
-
minitest (5.
|
14
|
+
json (2.3.0)
|
15
|
+
minitest (5.14.0)
|
16
16
|
openssl (2.1.2)
|
17
17
|
ipaddr
|
18
|
-
rake (
|
18
|
+
rake (13.0.1)
|
19
19
|
|
20
20
|
PLATFORMS
|
21
21
|
ruby
|
@@ -24,7 +24,7 @@ DEPENDENCIES
|
|
24
24
|
bundler (~> 2.0)
|
25
25
|
minitest (~> 5.0)
|
26
26
|
pokepay_partner_ruby_sdk!
|
27
|
-
rake (~>
|
27
|
+
rake (~> 13.0)
|
28
28
|
|
29
29
|
BUNDLED WITH
|
30
|
-
2.
|
30
|
+
2.1.4
|
data/README.md
CHANGED
@@ -39,6 +39,20 @@ response = c.send(Pokepay::Request::CreateTransaction.new(
|
|
39
39
|
|
40
40
|
## Run test
|
41
41
|
|
42
|
+
Add `~/.pokepay/test-config.ini`
|
43
|
+
|
44
|
+
```
|
45
|
+
CLIENT_ID = aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
|
46
|
+
CLIENT_SECRET = bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
47
|
+
API_BASE_URL = https://partnerapi-dev.pokepay.jp
|
48
|
+
SSL_KEY_FILE = /path/to/key.pem
|
49
|
+
SSL_CERT_FILE = /path/to/cert.pem
|
50
|
+
[testdata]
|
51
|
+
shop_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
52
|
+
customer_id = yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
|
53
|
+
private_money_id = zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
|
54
|
+
```
|
55
|
+
|
42
56
|
```
|
43
57
|
$ bundle exec ruby test/pokepay_partner_ruby_sdk_test.rb
|
44
58
|
```
|
data/docs/index.md
CHANGED
@@ -18,8 +18,8 @@ require "pokepay_partner_ruby_sdk"
|
|
18
18
|
基本的な使い方は次のようになります。
|
19
19
|
|
20
20
|
- ライブラリをロード
|
21
|
-
- 設定ファイル(後述)から Pokepay::Client オブジェクトを作る
|
22
|
-
-
|
21
|
+
- 設定ファイル(後述)から `Pokepay::Client` オブジェクトを作る
|
22
|
+
- リクエストオブジェクトを作り、`Pokepay::Client` オブジェクトの `send` メソッドに対して渡す
|
23
23
|
- レスポンスオブジェクトを得る
|
24
24
|
|
25
25
|
```ruby
|
@@ -33,22 +33,22 @@ response = client.send(request)
|
|
33
33
|
|
34
34
|
## Settings
|
35
35
|
|
36
|
-
設定はINI
|
36
|
+
設定はINIファイルに記述し、`Pokepay::Client` のコンストラクタにファイルパスを指定します。
|
37
37
|
|
38
|
-
SDKプロジェクトルートに config.ini.sample というファイルがありますのでそれを元に必要な情報を記述してください。特に以下の情報は通信の安全性のため必要な項目です。これらはパートナー契約時にお渡ししているものです。
|
38
|
+
SDKプロジェクトルートに `config.ini.sample` というファイルがありますのでそれを元に必要な情報を記述してください。特に以下の情報は通信の安全性のため必要な項目です。これらはパートナー契約時にお渡ししているものです。
|
39
39
|
|
40
|
-
- CLIENT_ID
|
41
|
-
- CLIENT_SECRET
|
42
|
-
- SSL_KEY_FILE
|
43
|
-
- SSL_CERT_FILE
|
40
|
+
- `CLIENT_ID`: パートナーAPI クライアントID
|
41
|
+
- `CLIENT_SECRET`: パートナーAPI クライアント秘密鍵
|
42
|
+
- `SSL_KEY_FILE`: SSL秘密鍵ファイルパス
|
43
|
+
- `SSL_CERT_FILE`: SSL証明書ファイルパス
|
44
44
|
|
45
45
|
この他に接続先のサーバURL情報が必要です。
|
46
46
|
|
47
|
-
- API_BASE_URL
|
47
|
+
- `API_BASE_URL`: パートナーAPI サーバURL
|
48
48
|
|
49
49
|
また、この設定ファイルには認証に必要な情報が含まれるため、ファイルの管理・取り扱いに十分注意してください。
|
50
50
|
|
51
|
-
設定ファイル記述例(config.ini.sample)
|
51
|
+
設定ファイル記述例(`config.ini.sample`)
|
52
52
|
|
53
53
|
```
|
54
54
|
CLIENT_ID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
@@ -62,9 +62,10 @@ SSL_CERT_FILE = /path/to/cert.pem
|
|
62
62
|
|
63
63
|
### APIリクエスト
|
64
64
|
|
65
|
-
Partner API
|
65
|
+
Partner APIへの通信はリクエストオブジェクトを作り、`Pokepay::Client.send` メソッドに渡すことで行われます。
|
66
|
+
リクエストクラスは名前空間 `Pokepay::Request` 以下に定義されています。
|
66
67
|
|
67
|
-
たとえば Pokepay::Request::SendEcho
|
68
|
+
たとえば `Pokepay::Request::SendEcho` は送信した内容をそのまま返す処理です。
|
68
69
|
|
69
70
|
```ruby
|
70
71
|
request = Pokepay::Request::SendEcho.new('hello')
|
@@ -73,7 +74,8 @@ response = client.send(request)
|
|
73
74
|
# => #<Pokepay::Response::Response 200 OK readbody=>
|
74
75
|
```
|
75
76
|
|
76
|
-
|
77
|
+
通信の結果として、レスポンスオブジェクトが得られます。
|
78
|
+
これはステータスコードとレスポンスボディ、各レスポンスクラスのオブジェクトをインスタンス変数に持つオブジェクトです。
|
77
79
|
|
78
80
|
```ruby
|
79
81
|
response.code
|
@@ -89,7 +91,42 @@ response.object.message
|
|
89
91
|
# => "hello"
|
90
92
|
```
|
91
93
|
|
92
|
-
|
94
|
+
利用可能なAPI操作については [API Operations](#api-operations) で紹介します。
|
95
|
+
|
96
|
+
<a name="paging"></a>
|
97
|
+
### ページング
|
98
|
+
|
99
|
+
API操作によっては、大量のデータがある場合に備えてページング処理があります。
|
100
|
+
その処理では以下のようなプロパティを持つレスポンスオブジェクトを返します。
|
101
|
+
|
102
|
+
- rows : 列挙するレスポンスクラスのオブジェクトの配列
|
103
|
+
- count : 全体の要素数
|
104
|
+
- pagination : 以下のインスタンス変数を持つオブジェクト
|
105
|
+
- current : 現在のページ位置(1からスタート)
|
106
|
+
- per_page : 1ページ当たりの要素数
|
107
|
+
- max_page : 最後のページ番号
|
108
|
+
- has_prev : 前ページを持つかどうかの真理値
|
109
|
+
- has_next : 次ページを持つかどうかの真理値
|
110
|
+
|
111
|
+
ページングクラスは `Pokepay::Response::Pagination` で定義されています。
|
112
|
+
|
113
|
+
以下にコード例を示します。
|
114
|
+
|
115
|
+
```ruby
|
116
|
+
request = Pokepay::Request::ListTransactions.new({ "page" => 1, "per_page" => 50 })
|
117
|
+
response = client.send(request)
|
118
|
+
|
119
|
+
if response.object.pagination.has_next then
|
120
|
+
next_page = response.object.pagination.current + 1
|
121
|
+
request = Pokepay::Request::ListTransactions.new({ "page" => next_page, "per_page" => 50 })
|
122
|
+
response = client.send(request)
|
123
|
+
end
|
124
|
+
```
|
125
|
+
|
126
|
+
### エラーハンドリング
|
127
|
+
|
128
|
+
エラーの場合は `Net::HTTPBadRequest` などのエラーレスポンスオブジェクトが返ります。
|
129
|
+
エラーレスポンスもステータスコードとレスポンスボディを持ちます。
|
93
130
|
|
94
131
|
```ruby
|
95
132
|
request = Pokepay::Request::SendEcho.new(-1)
|
@@ -104,58 +141,37 @@ response.body
|
|
104
141
|
# => {"type"=>"invalid_parameters", "message"=>"Invalid parameters", "errors"=>{"invalid"=>["message"]}}
|
105
142
|
```
|
106
143
|
|
144
|
+
<a name="api-operations"></a>
|
107
145
|
## API Operations
|
108
146
|
|
109
|
-
###
|
147
|
+
### Transaction
|
148
|
+
|
149
|
+
<a name="get-transaction"></a>
|
150
|
+
#### 取引情報を取得する
|
110
151
|
|
111
152
|
```ruby
|
112
|
-
response = client.send(Pokepay::Request::
|
113
|
-
|
114
|
-
|
115
|
-
"page" => 1,
|
116
|
-
"per_page" => 50,
|
153
|
+
response = client.send(Pokepay::Request::GetTransaction.new(
|
154
|
+
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # 取引ID
|
155
|
+
))
|
117
156
|
|
118
|
-
# フィルタオプション (すべて任意)
|
119
|
-
# 期間指定 (ISO8601形式の文字列)
|
120
|
-
"from" => "2019-01-01T00:00:00+09:00",
|
121
|
-
"to" => "2019-07-30T18:13:39+09:00",
|
122
|
-
# 検索オプション
|
123
|
-
"customer_id" => "xxxxxxxxxxxxxxxxx", # エンドユーザーID
|
124
|
-
"customer_name" => "福沢", # エンドユーザー名
|
125
|
-
"transaction_id" => "24bba30c......", # 取引ID
|
126
|
-
"shop_id" => "456a820b......", # 店舗ID
|
127
|
-
"terminal_id" => "d8023185......", # 端末ID
|
128
|
-
"organization" => "pocketchange", # 組織コード
|
129
|
-
"private_money" => "9ff644fc......", # マネーID
|
130
|
-
"is_modified" => "true", # キャンセルされた取引のみ検索するか
|
131
|
-
# 取引種別 (複数指定可)、チャージ=topup、支払い=payment
|
132
|
-
"types" => ["topup", "payment"],
|
133
|
-
}))
|
134
157
|
```
|
135
158
|
|
136
|
-
|
137
|
-
取引一覧のような大量のレスポンスが返るエンドポイントでは、一度に取得する量を制限するためにページングされています。
|
138
|
-
|
139
|
-
#### 取引情報
|
140
|
-
|
141
|
-
取引クラスは Pokepay::Response::Transaction で定義されています。
|
142
|
-
|
143
|
-
取引オブジェクトのプロパティは以下のようになっています。
|
159
|
+
成功したときは以下のプロパティを含む `Pokepay::Response::Transaction` オブジェクトをレスポンスとして返します。
|
144
160
|
|
145
161
|
- id (String): 取引ID
|
146
162
|
- type (String): 取引種別 (チャージ=topup, 支払い=payment)
|
147
163
|
- is_modified (真理値): 返金された取引かどうか
|
148
|
-
- sender (Response
|
149
|
-
- receiver (Response
|
150
|
-
- sender_account (Response
|
151
|
-
- receiver_account (Response
|
164
|
+
- sender (Pokepay::Response::User): 送金者情報
|
165
|
+
- receiver (Pokepay::Response::User): 受取者情報
|
166
|
+
- sender_account (Pokepay::Response::Account): 送金口座情報
|
167
|
+
- receiver_account (Pokepay::Response::Account): 受取口座情報
|
152
168
|
- amount (Numeric): 決済総額 (マネー額 + ポイント額)
|
153
169
|
- money_amount (Numeric): 決済マネー額
|
154
170
|
- point_amount (Numeric): 決済ポイント額
|
155
171
|
- done_at (Time): 取引日時
|
156
172
|
- description (String): 取引説明文
|
157
173
|
|
158
|
-
`sender` と `receiver`
|
174
|
+
`sender` と `receiver` は `Pokepay::Response::User` のオブジェクトです。 以下にプロパティを示します。
|
159
175
|
|
160
176
|
- id (String): ユーザー (または店舗) ID
|
161
177
|
- name (String): ユーザー (または店舗) 名
|
@@ -166,7 +182,7 @@ response = client.send(Pokepay::Request::ListTransactions.new(
|
|
166
182
|
- id (String): 口座ID
|
167
183
|
- name (String): 口座名
|
168
184
|
- is_suspended (真理値): 口座が凍結されているかどうか
|
169
|
-
- private_money (Response
|
185
|
+
- private_money (Pokepay::Response::PrivateMoney): 設定マネー情報
|
170
186
|
|
171
187
|
`privateMoney` は `Pokepay::Response::PrivateMoney` のオブジェクトです。以下にプロパティを示します。
|
172
188
|
|
@@ -180,34 +196,231 @@ response = client.send(Pokepay::Request::ListTransactions.new(
|
|
180
196
|
- type (String): マネー種別 (自家型=own, 第三者型=third-party)
|
181
197
|
- expiration_type (String): 有効期限種別 (チャージ日時起算=static, 最終利用日時起算=last-update)
|
182
198
|
|
183
|
-
####
|
199
|
+
#### チャージする
|
184
200
|
|
185
|
-
|
201
|
+
```ruby
|
202
|
+
response = client.send(Pokepay::Request::CreateTopupTransaction.new(
|
203
|
+
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 店舗ID
|
204
|
+
"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", # エンドユーザーのID
|
205
|
+
"zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz", # 送るマネーのID
|
206
|
+
{
|
207
|
+
"money_amount" => 100, # チャージマネー額
|
208
|
+
"point_amount" => 200, # チャージするポイント額 (任意)
|
209
|
+
"description" => "チャージテスト" # 取引履歴に表示する説明文 (任意)
|
210
|
+
}))
|
211
|
+
```
|
186
212
|
|
187
|
-
|
213
|
+
成功したときは `Pokepay::Response::Transaction` を持つレスポンスオブジェクトを返します。
|
214
|
+
プロパティは [取引情報を取得する](#get-transaction) を参照してください。
|
188
215
|
|
189
|
-
|
190
|
-
- count : 全体の要素数
|
191
|
-
- pagination : 以下のインスタンス変数を持つオブジェクト
|
192
|
-
- current : 現在のページ位置(1からスタート)
|
193
|
-
- per_page : 1ページ当たりの要素数
|
194
|
-
- max_page : 最後のページ番号
|
195
|
-
- has_prev : 前ページを持つかどうかの真理値
|
196
|
-
- has_next : 次ページを持つかどうかの真理値
|
216
|
+
#### 支払いする
|
197
217
|
|
198
|
-
|
218
|
+
```ruby
|
219
|
+
response = client.send(Pokepay::Request::CreatePaymentTransaction.new(
|
220
|
+
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 店舗ID
|
221
|
+
"yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", # エンドユーザーのID
|
222
|
+
"zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz", # 支払うマネーのID
|
223
|
+
100, # 支払い額
|
224
|
+
{
|
225
|
+
"description" => "たい焼き(小倉)" # 取引履歴に表示する説明文 (任意)
|
226
|
+
}))
|
227
|
+
```
|
228
|
+
|
229
|
+
成功したときは `Pokepay::Response::Transaction` オブジェクトをレスポンスとして返します。
|
230
|
+
プロパティは [取引情報を取得する](#get-transaction) を参照してください。
|
231
|
+
|
232
|
+
#### チャージ用QRコードを読み取ることでチャージする
|
233
|
+
|
234
|
+
チャージ用QRコードを解析すると次のようなURLになります(URLは環境によって異なります)。
|
235
|
+
|
236
|
+
`https://www-sandbox.pokepay.jp/checks/xxxxxxxx-xxxx-xxxxxxxxx-xxxxxxxxxxxx`
|
237
|
+
|
238
|
+
この `xxxxxxxx-xxxx-xxxxxxxxx-xxxxxxxxxxxx` の部分がチャージ用QRコードのIDです。
|
239
|
+
これを以下のようにエンドユーザIDと共に渡すことでチャージ取引が作られます。
|
199
240
|
|
200
241
|
```ruby
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
242
|
+
response = client.send(Pokepay::Request::CreateTopupTransactionWithCheck.new(
|
243
|
+
"xxxxxxxx-xxxx-xxxxxxxxx-xxxxxxxxxxxx", # チャージ用QRコードのID
|
244
|
+
"yyyyyyyy-yyyy-yyyyyyyyy-yyyyyyyyyyyy" # エンドユーザーのID
|
245
|
+
))
|
246
|
+
```
|
247
|
+
|
248
|
+
成功したときは `Pokepay::Response::Transaction` オブジェクトをレスポンスとして返します。
|
249
|
+
プロパティは [取引情報を取得する](#get-transaction) を参照してください。
|
207
250
|
|
208
|
-
|
209
|
-
|
210
|
-
|
251
|
+
#### 取引履歴を取得する
|
252
|
+
|
253
|
+
```ruby
|
254
|
+
response = client.send(Pokepay::Request::ListTransactions.new(
|
255
|
+
{
|
256
|
+
# ページング
|
257
|
+
"page" => 1,
|
258
|
+
"per_page" => 50,
|
259
|
+
|
260
|
+
# フィルタオプション (すべて任意)
|
261
|
+
# 期間指定 (ISO8601形式の文字列)
|
262
|
+
"from" => "2019-01-01T00:00:00+09:00",
|
263
|
+
"to" => "2019-07-30T18:13:39+09:00",
|
264
|
+
|
265
|
+
# 検索オプション
|
266
|
+
"customer_id" => "xxxxxxxxxxxxxxxxx", # エンドユーザーID
|
267
|
+
"customer_name" => "福沢", # エンドユーザー名
|
268
|
+
"transaction_id" => "24bba30c......", # 取引ID
|
269
|
+
"shop_id" => "456a820b......", # 店舗ID
|
270
|
+
"terminal_id" => "d8023185......", # 端末ID
|
271
|
+
"organization" => "pocketchange", # 組織コード
|
272
|
+
"private_money_id" => "9ff644fc......", # マネーID
|
273
|
+
"is_modified" => true, # キャンセルされた取引のみ検索するか
|
274
|
+
# 取引種別 (複数指定可)、チャージ=topup、支払い=payment
|
275
|
+
"types" => ["topup", "payment"],
|
276
|
+
}))
|
277
|
+
```
|
278
|
+
|
279
|
+
成功したときは `Pokepay::Response::Transaction` を `rows` に含むページングオブジェクトを返します。
|
280
|
+
詳細は [ページング](#paging) を参照してください。
|
281
|
+
|
282
|
+
### Customer
|
283
|
+
|
284
|
+
#### 新規エンドユーザー口座を追加する
|
285
|
+
|
286
|
+
```ruby
|
287
|
+
response = client.send(Pokepay::Request::CreateCustomerAccount.new(
|
288
|
+
"zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz", # マネーのID
|
289
|
+
{
|
290
|
+
"user_name" => "ポケペイ太郎", # ユーザー名 (任意)
|
291
|
+
"account_name" => "ポケペイ太郎のアカウント" # アカウント名 (任意)
|
292
|
+
}))
|
293
|
+
```
|
294
|
+
|
295
|
+
成功したときは以下のプロパティを持つ `Pokepay::Response::AccountWithUser` のオブジェクトをレスポンスとして返します。
|
296
|
+
|
297
|
+
- id (string): 口座ID
|
298
|
+
- name (string): 口座名
|
299
|
+
- isSuspended (bool): 口座が凍結されているかどうか
|
300
|
+
- privateMoney (Response\PrivateMoney): 設定マネー情報
|
301
|
+
- user (Response\User): ユーザーIDなどを含むユーザー情報
|
302
|
+
|
303
|
+
#### エンドユーザーの口座情報を表示する
|
304
|
+
|
305
|
+
```ruby
|
306
|
+
response = client.send(Pokepay::Request::GetAccount.new(
|
307
|
+
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # 口座ID
|
308
|
+
))
|
309
|
+
```
|
310
|
+
|
311
|
+
成功したときは以下のプロパティを持つ `Pokepay::Response::AccountDetail` のオブジェクトをレスポンスとして返します。
|
312
|
+
|
313
|
+
- id (string): 口座ID
|
314
|
+
- name (string): 口座名
|
315
|
+
- isSuspended (bool): 口座が凍結されているかどうか
|
316
|
+
- balance (double): 総残高
|
317
|
+
- moneyBalance (double): 総マネー残高
|
318
|
+
- pointBalance (double): 総ポイント残高
|
319
|
+
- privateMoney (Response\PrivateMoney): 設定マネー情報
|
320
|
+
|
321
|
+
#### エンドユーザーの残高内訳を表示する
|
322
|
+
|
323
|
+
エンドユーザーの残高は有効期限別のリストとして取得できます。
|
324
|
+
|
325
|
+
```ruby
|
326
|
+
response = client.send(Pokepay::Request::ListAccountBalances.new(
|
327
|
+
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", # 口座ID
|
328
|
+
))
|
211
329
|
```
|
212
330
|
|
213
|
-
成功したときは Pokepay::Response::
|
331
|
+
成功したときは `Pokepay::Response::AccountBalance` を `rows` に含むページングオブジェクトを返します。
|
332
|
+
詳細は [ページング](#paging) を参照してください。
|
333
|
+
|
334
|
+
`Pokepay::Response::AccountBalance` のプロパティは以下の通りです。
|
335
|
+
|
336
|
+
- expiresAt (DateTime): 失効日時
|
337
|
+
- moneyAmount (double): マネー額
|
338
|
+
- pointAmount (double): ポイント額
|
339
|
+
|
340
|
+
### Organization
|
341
|
+
|
342
|
+
#### 新規加盟店組織を追加する
|
343
|
+
|
344
|
+
```ruby
|
345
|
+
response = client.send(Pokepay::Request::CreateOrganization.new(
|
346
|
+
"ox_supermarket", # 新規組織コード
|
347
|
+
"oxスーパー", # 新規組織名
|
348
|
+
"pay@xx-issuer-company.jp", # 発行体担当者メールアドレス
|
349
|
+
"admin+pokepay@ox-supermarket.com", # 新規組織担当者メールアドレス
|
350
|
+
{
|
351
|
+
# 追加データ (すべて任意)
|
352
|
+
"bank_name" => "XYZ銀行", # 銀行名
|
353
|
+
"bank_code" => "999X", # 銀行金融機関コード
|
354
|
+
"bank_branch_name" => "ABC支店", # 銀行支店名
|
355
|
+
"bank_banch_code" => "99X", # 銀行支店コード
|
356
|
+
"bank_account_type" => "saving", # 銀行口座種別 (普通=saving, 当座=current, その他=other)
|
357
|
+
"bank_account" => "9999999", # 銀行口座番号
|
358
|
+
"bank_account_holder_name" => "フクザワユキチ", # 口座名義人名
|
359
|
+
}))
|
360
|
+
```
|
361
|
+
|
362
|
+
成功したときには以下のプロパティを持つ `Pokepay::Response::Organization` のオブジェクトをレスポンスとして返します。
|
363
|
+
|
364
|
+
- code (string): 組織コード
|
365
|
+
- name (string): 組織名
|
366
|
+
|
367
|
+
### Shop
|
368
|
+
|
369
|
+
#### 新規店舗を追加する
|
370
|
+
|
371
|
+
```ruby
|
372
|
+
response = client.send(Pokepay::Request::CreateShop.new(
|
373
|
+
"OXスーパー三田店", # 店舗名
|
374
|
+
{
|
375
|
+
# 追加データ (すべて任意)
|
376
|
+
"shop_postal_code" => "108-0014", # 店舗の郵便番号
|
377
|
+
"shop_address" => "東京都港区芝...", # 店舗の住所
|
378
|
+
"shop_tel" => "03-xxxx...", # 店舗の電話番号
|
379
|
+
"shop_email" => "mita@ox-supermarket.com", # 店舗のメールアドレス
|
380
|
+
"shop_external_id" => "mita0309", # 店舗の外部ID
|
381
|
+
}))
|
382
|
+
```
|
383
|
+
|
384
|
+
成功したときは以下のプロパティを持つ `Pokepay::Response::User` のオブジェクトをレスポンスとして返します。
|
385
|
+
|
386
|
+
- id (string): 店舗ID
|
387
|
+
- name (string): 店舗名
|
388
|
+
- isMerchant (bool): 店舗かどうかのフラグ (この場合は常に真)
|
389
|
+
|
390
|
+
### Private Money
|
391
|
+
|
392
|
+
#### 決済加盟店の取引サマリを取得する
|
393
|
+
|
394
|
+
```ruby
|
395
|
+
response = client.send(Pokepay::Request::GetPrivateMoneyOrganizationSummaries.new(
|
396
|
+
"zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz", # マネーのID
|
397
|
+
{
|
398
|
+
# フィルタオプション (すべて任意)
|
399
|
+
# 期間指定 (ISO8601形式の文字列、またはDateTimeオブジェクト)
|
400
|
+
# fromとtoを指定する場合は同時に指定する必要あり。
|
401
|
+
# デフォルトではfromは昨日0時、toは当日0時。
|
402
|
+
"from" => "2019-01-01T00:00:00+09:00",
|
403
|
+
"to" => "2019-07-31T18:13:39+09:00",
|
404
|
+
|
405
|
+
# ページングオプション
|
406
|
+
"page" => 1,
|
407
|
+
"per_page" => 50
|
408
|
+
}))
|
409
|
+
```
|
410
|
+
|
411
|
+
成功したときは `Pokepay::Response::PrivateMoneyOrganizationSummary` を `rows` に含むページングオブジェクトを返します。
|
412
|
+
以下にプロパティを示します。
|
413
|
+
|
414
|
+
- organizationCode (string): 組織コード
|
415
|
+
- topup (Response::OrganizationSummary): チャージのサマリ情報
|
416
|
+
- payment (Response::OrganizationSummary): 支払いのサマリ情報
|
417
|
+
|
418
|
+
`Pokepay::Response::OrganizationSummary` のプロパティを以下に示します。
|
419
|
+
|
420
|
+
- count (integer): 取引数
|
421
|
+
- moneyAmount (double): 取引マネー総額
|
422
|
+
- moneyCount (integer): マネー取引数
|
423
|
+
- pointAmount (double): 取引ポイント総額
|
424
|
+
- pointCount (integer): ポイント取引数
|
425
|
+
|
426
|
+
ページングについての詳細は [ページング](#paging) を参照してください。
|