pokepay_partner_ruby_sdk 0.1.1 → 0.1.2

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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +7 -7
  3. data/README.md +14 -0
  4. data/docs/index.md +285 -72
  5. data/examples/examples.rb +178 -13
  6. data/lib/pokepay_partner_ruby_sdk/client.rb +9 -7
  7. data/lib/pokepay_partner_ruby_sdk/parameter/product.rb +21 -0
  8. data/lib/pokepay_partner_ruby_sdk/request/create_check.rb +15 -0
  9. data/lib/pokepay_partner_ruby_sdk/request/create_cpm_transaction.rb +17 -0
  10. data/lib/pokepay_partner_ruby_sdk/request/create_customer_account.rb +15 -0
  11. data/lib/pokepay_partner_ruby_sdk/request/create_exchange_transaction.rb +18 -0
  12. data/lib/pokepay_partner_ruby_sdk/request/create_organization.rb +18 -0
  13. data/lib/pokepay_partner_ruby_sdk/request/create_payment_transaction.rb +18 -0
  14. data/lib/pokepay_partner_ruby_sdk/request/create_shop.rb +15 -0
  15. data/lib/pokepay_partner_ruby_sdk/request/create_topup_transaction.rb +17 -0
  16. data/lib/pokepay_partner_ruby_sdk/request/create_topup_transaction_with_check.rb +16 -0
  17. data/lib/pokepay_partner_ruby_sdk/request/create_transaction.rb +5 -5
  18. data/lib/pokepay_partner_ruby_sdk/request/get_account.rb +15 -0
  19. data/lib/pokepay_partner_ruby_sdk/request/get_ping.rb +15 -0
  20. data/lib/pokepay_partner_ruby_sdk/request/get_private_money_organization_summaries.rb +15 -0
  21. data/lib/pokepay_partner_ruby_sdk/request/get_transaction.rb +15 -0
  22. data/lib/pokepay_partner_ruby_sdk/request/get_user.rb +15 -0
  23. data/lib/pokepay_partner_ruby_sdk/request/list_account_balances.rb +15 -0
  24. data/lib/pokepay_partner_ruby_sdk/request/list_transactions.rb +7 -4
  25. data/lib/pokepay_partner_ruby_sdk/request/list_transfers.rb +15 -0
  26. data/lib/pokepay_partner_ruby_sdk/request/send_echo.rb +4 -1
  27. data/lib/pokepay_partner_ruby_sdk/response/account.rb +2 -0
  28. data/lib/pokepay_partner_ruby_sdk/response/account_balance.rb +15 -0
  29. data/lib/pokepay_partner_ruby_sdk/response/account_detail.rb +24 -0
  30. data/lib/pokepay_partner_ruby_sdk/response/account_with_user.rb +21 -0
  31. data/lib/pokepay_partner_ruby_sdk/response/account_without_private_money_detail.rb +20 -0
  32. data/lib/pokepay_partner_ruby_sdk/response/admin_user_with_shops_and_private_moneys.rb +26 -0
  33. data/lib/pokepay_partner_ruby_sdk/response/bad_request.rb +11 -0
  34. data/lib/pokepay_partner_ruby_sdk/response/check.rb +37 -0
  35. data/lib/pokepay_partner_ruby_sdk/response/echo.rb +6 -3
  36. data/lib/pokepay_partner_ruby_sdk/response/invalid_parameters.rb +15 -0
  37. data/lib/pokepay_partner_ruby_sdk/response/organization.rb +3 -0
  38. data/lib/pokepay_partner_ruby_sdk/response/organization_summary.rb +19 -0
  39. data/lib/pokepay_partner_ruby_sdk/response/paginated_account_balance.rb +16 -0
  40. data/lib/pokepay_partner_ruby_sdk/response/paginated_private_money_organization_summaries.rb +16 -0
  41. data/lib/pokepay_partner_ruby_sdk/response/paginated_transaction.rb +16 -0
  42. data/lib/pokepay_partner_ruby_sdk/response/paginated_transfers.rb +16 -0
  43. data/lib/pokepay_partner_ruby_sdk/response/pagination.rb +9 -6
  44. data/lib/pokepay_partner_ruby_sdk/response/partner_client_not_found.rb +13 -0
  45. data/lib/pokepay_partner_ruby_sdk/response/partner_decryption_failed.rb +13 -0
  46. data/lib/pokepay_partner_ruby_sdk/response/partner_request_already_done.rb +13 -0
  47. data/lib/pokepay_partner_ruby_sdk/response/partner_request_expired.rb +13 -0
  48. data/lib/pokepay_partner_ruby_sdk/response/pong.rb +11 -0
  49. data/lib/pokepay_partner_ruby_sdk/response/private_money.rb +8 -0
  50. data/lib/pokepay_partner_ruby_sdk/response/private_money_organization_summary.rb +17 -0
  51. data/lib/pokepay_partner_ruby_sdk/response/response.rb +3 -3
  52. data/lib/pokepay_partner_ruby_sdk/response/transaction.rb +5 -1
  53. data/lib/pokepay_partner_ruby_sdk/response/transfer.rb +31 -0
  54. data/lib/pokepay_partner_ruby_sdk/response/user.rb +3 -0
  55. data/lib/pokepay_partner_ruby_sdk/response/user_transaction.rb +33 -0
  56. data/lib/pokepay_partner_ruby_sdk/version.rb +1 -1
  57. data/lib/pokepay_partner_ruby_sdk.rb +43 -6
  58. data/pokepay_partner_ruby_sdk.gemspec +4 -4
  59. metadata +47 -10
  60. 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: b462bd0f2ea7bce3ec40b034bb138999de416b4618f956042d97cce6ab592ffa
4
- data.tar.gz: 887c9023e4346498b6ef4cef2e0cebd125d9b28e5d19fe0ff06ad7e489eb645d
3
+ metadata.gz: 5027b7fd2a102a6e077dc1d3d68ce6c65f8b7216c6320fefcbf3882cba87b146
4
+ data.tar.gz: 10a43dad44d77fd654cc0744a17c9996df903ed4f03cc2a671708c2f631a39f8
5
5
  SHA512:
6
- metadata.gz: e1e978f24e716234f533e02221f9e77c6f56f892fa6be91ff998be328fcf231ba47ddad601736bd6df5c6c5a3ec28b143aeabe369dcd33601ab27eb06684c536
7
- data.tar.gz: 5a722a10444c8ac32a2ed0b61408925ffc336d1367b14c2cce51c20a5b41f9d4fbcafe2042bdd16541c3184f5d15957b7cb41b85bacf226910c11f341ab67130
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.1)
4
+ pokepay_partner_ruby_sdk (0.1.2)
5
5
  inifile (~> 3.0.0)
6
- json (~> 2.1.0)
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.1.0)
15
- minitest (5.11.3)
14
+ json (2.3.0)
15
+ minitest (5.14.0)
16
16
  openssl (2.1.2)
17
17
  ipaddr
18
- rake (10.5.0)
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 (~> 10.0)
27
+ rake (~> 13.0)
28
28
 
29
29
  BUNDLED WITH
30
- 2.0.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
- - リクエストオブジェクトを作り、Pokepay::Client オブジェクトのsendメソッドに対して渡す
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ファイルに記述し、 Pokepay::Client のコンストラクタにファイルパスを指定します。
36
+ 設定はINIファイルに記述し、`Pokepay::Client` のコンストラクタにファイルパスを指定します。
37
37
 
38
- SDKプロジェクトルートに config.ini.sample というファイルがありますのでそれを元に必要な情報を記述してください。特に以下の情報は通信の安全性のため必要な項目です。これらはパートナー契約時にお渡ししているものです。
38
+ SDKプロジェクトルートに `config.ini.sample` というファイルがありますのでそれを元に必要な情報を記述してください。特に以下の情報は通信の安全性のため必要な項目です。これらはパートナー契約時にお渡ししているものです。
39
39
 
40
- - CLIENT_ID: パートナーAPI クライアントID
41
- - CLIENT_SECRET: パートナーAPI クライアント秘密鍵
42
- - SSL_KEY_FILE: SSL秘密鍵ファイルパス
43
- - SSL_CERT_FILE: SSL証明書ファイルパス
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: パートナーAPI サーバ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への通信はリクエストオブジェクトを作り、Pokepay::Client.send メソッドに渡すことで行われます。リクエストクラスは名前空間 Pokepay::Request 以下に定義されています。
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
- エラーの場合は Net::HTTPBadRequest などのエラーレスポンスオブジェクトが返ります。エラーレスポンスもステータスコードとレスポンスボディを持ちます。
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::ListTransactions.new(
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
- 成功したときは Pokepay::Response::Transaction を rows に含むページングオブジェクトを返します。
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\User): 送金者情報
149
- - receiver (Response\User): 受取者情報
150
- - sender_account (Response\Account): 送金口座情報
151
- - receiver_account (Response\Account): 受取口座情報
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` には `Pokepay::Response::User` のオブジェクトです。 以下にプロパティを示します。
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\PrivateMoney): 設定マネー情報
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
- ページングクラスは Pokepay::Response::Pagination で定義されています。
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
- - rows : 列挙するレスポンスクラスのオブジェクトの配列
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
- shop_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # 店舗ID
202
- customer_id = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" # エンドユーザーのID
203
- private_money_id = "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz" # 送るマネーのID
204
- money_amount = 1000 # チャージマネー額
205
- point_amount = 0 # チャージするポイント額
206
- description = "初夏のチャージキャンペーン" # 取引履歴に表示する説明文
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
- response = $client.send(Pokepay::Request::CreateTransaction.new(
209
- shop_id, customer_id, private_money_id,
210
- money_amount, point_amount, description))
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::Transaction を持つレスポンスオブジェクトを返します。
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) を参照してください。