Module: Adapay
- Defined in:
- lib/adapay.rb,
lib/adapay/version.rb
Overview
Constant Summary collapse
- VERSION =
'1.2.0'
Class Attribute Summary collapse
-
.app_id ⇒ Object
Returns the value of attribute app_id.
-
.app_key ⇒ Object
Returns the value of attribute app_key.
-
.backup_app_id ⇒ Object
Returns the value of attribute backup_app_id.
-
.backup_app_key ⇒ Object
Returns the value of attribute backup_app_key.
-
.merchant_private_key ⇒ Object
Returns the value of attribute merchant_private_key.
-
.platform_public_key ⇒ Object
Returns the value of attribute platform_public_key.
Class Method Summary collapse
-
.balance_pay(params) ⇒ Object
– 余额支付.
-
.balance_pay_list(params) ⇒ Object
Adapay.balance_pay_list({ created_gte: (Date.yesterday.beginning_of_day.to_f * 1000).to_i, created_lte: (Date.yesterday.end_of_day.to_f * 1000).to_i }).
- .balance_refund(params) ⇒ Object
- .build_request_info(method, url, params) ⇒ Object
-
.cash(params) ⇒ Object
– 钱包.
- .close_payment(params) ⇒ Object
- .corp_picture_upload(params, attach_file) ⇒ Object
- .create_corp_member(params) ⇒ Object
- .create_member(params) ⇒ Object
- .create_payment(params) ⇒ Object
- .create_payment_confirm(params) ⇒ Object
- .create_payment_reverse(params) ⇒ Object
-
.create_realname_member(params) ⇒ Object
必填:tel_no 用户手机号 user_name 用户姓名 cert_type 00-身份证 cert_id 证件号.
- .create_refund(params) ⇒ Object
- .create_settle_account(params) ⇒ Object
- .delete_settle_account(params) ⇒ Object
- .endpoint ⇒ Object
- .extra_data_from_body(body) ⇒ Object
- .extra_data_from_response(response) ⇒ Object
- .id_key_map ⇒ Object
- .merchant_public_key ⇒ Object
- .merchant_verify(sign, content) ⇒ Object
- .page_endpoint ⇒ Object
- .payment_confirm_reverse(params) ⇒ Object
- .query_cash(params) ⇒ Object
-
.query_corp_member(params) ⇒ Object
Query an existing corporate member.
- .query_member(params) ⇒ Object
- .query_member_list(**params) ⇒ Object
- .query_payment(params) ⇒ Object
- .query_payment_confirm(params) ⇒ Object
- .query_payment_confirm_list(params) ⇒ Object
- .query_payment_confirm_reverse_detail(params) ⇒ Object
- .query_payment_list ⇒ Object
- .query_payment_reverse(params) ⇒ Object
- .query_payment_reverse_list(params) ⇒ Object
- .query_refund(params) ⇒ Object
- .query_settle_account(params) ⇒ Object
- .query_settle_account_balance(params) ⇒ Object
- .query_settle_account_detail(params) ⇒ Object
- .sdk_version ⇒ Object
- .sign(content) ⇒ Object
- .update_member(params) ⇒ Object
- .update_settle_account(params) ⇒ Object
- .valid_channels ⇒ Object
- .verify(sign, content) ⇒ Object
Class Attribute Details
.app_id ⇒ Object
Returns the value of attribute app_id.
11 12 13 |
# File 'lib/adapay.rb', line 11 def app_id @app_id end |
.app_key ⇒ Object
Returns the value of attribute app_key.
11 12 13 |
# File 'lib/adapay.rb', line 11 def app_key @app_key end |
.backup_app_id ⇒ Object
Returns the value of attribute backup_app_id.
11 12 13 |
# File 'lib/adapay.rb', line 11 def backup_app_id @backup_app_id end |
.backup_app_key ⇒ Object
Returns the value of attribute backup_app_key.
11 12 13 |
# File 'lib/adapay.rb', line 11 def backup_app_key @backup_app_key end |
.merchant_private_key ⇒ Object
Returns the value of attribute merchant_private_key.
12 13 14 |
# File 'lib/adapay.rb', line 12 def merchant_private_key @merchant_private_key end |
.platform_public_key ⇒ Object
Returns the value of attribute platform_public_key.
12 13 14 |
# File 'lib/adapay.rb', line 12 def platform_public_key @platform_public_key end |
Class Method Details
.balance_pay(params) ⇒ Object
– 余额支付
279 280 281 282 283 284 285 286 287 |
# File 'lib/adapay.rb', line 279 def balance_pay(params) path = '/v1/settle_accounts/balancePay' params = { app_id: app_id }.merge(params) send_request(:post, path, params) end |
.balance_pay_list(params) ⇒ Object
Adapay.balance_pay_list({ created_gte: (Date.yesterday.beginning_of_day.to_f * 1000).to_i,
created_lte: (Date.yesterday.end_of_day.to_f * 1000).to_i })
301 302 303 304 305 306 307 308 309 |
# File 'lib/adapay.rb', line 301 def balance_pay_list(params) path = '/v1/settle_accounts/balancePayList' params = { app_id: app_id }.merge(params) send_request(:get, path, params) end |
.balance_refund(params) ⇒ Object
289 290 291 292 293 294 295 296 297 |
# File 'lib/adapay.rb', line 289 def balance_refund(params) path = '/v1/settle_accounts/balanceRefund' params = { app_id: app_id }.merge(params) send_request(:post, path, params) end |
.build_request_info(method, url, params) ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/adapay.rb', line 91 def build_request_info(method, url, params) headers = build_common_headers(params[:app_id]) if method.to_s.downcase == 'post' plain_text = url + params.to_json signature = sign(plain_text) headers.merge({ 'Content-type' => 'application/json', signature: signature }) else plain_text = url + get_original_str(params) signature = sign(plain_text) headers.merge({ signature: signature }) end end |
.cash(params) ⇒ Object
– 钱包
313 314 315 316 317 318 319 320 321 |
# File 'lib/adapay.rb', line 313 def cash(params) path = '/v1/cashs' params = { app_id: app_id }.merge(params) send_request(:post, path, params) end |
.close_payment(params) ⇒ Object
136 137 138 139 140 141 |
# File 'lib/adapay.rb', line 136 def close_payment(params) payment_id = params.delete(:payment_id) path = "/v1/payments/#{payment_id}/close" send_request(:post, path, params) end |
.corp_picture_upload(params, attach_file) ⇒ Object
414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 |
# File 'lib/adapay.rb', line 414 def corp_picture_upload(params, attach_file) required_fields = [:file_type] raise ArgumentError, 'missing required parameters' if params.empty? required_fields.each do |field| raise ArgumentError, "#{field} is required" unless params.key?(field) end path = '/v1/corp/pictureUpload' params = { app_id: app_id }.merge(params) # 带文件上传的接口会比较特殊:https://docs.adapay.tech/help/console.html#generatecert url = endpoint + path headers = build_request_info(:get, url, params) url += "?#{get_original_str(params)}" payload = { attach_file: File.new(attach_file, 'rb') } RestClient::Request.execute(method: :post, url: url, headers: headers, payload: payload) end |
.create_corp_member(params) ⇒ Object
441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 |
# File 'lib/adapay.rb', line 441 def create_corp_member(params) # Validate required parameters required_fields = %i[member_id order_no name] raise ArgumentError, 'missing required parameters' if params.empty? required_fields.each do |field| raise ArgumentError, "#{field} is required" unless params.key?(field) end path = '/v1/corp/createMembers' params = { app_id: app_id }.merge(params) send_request(:post, path, params) end |
.create_member(params) ⇒ Object
161 162 163 164 165 166 167 168 169 |
# File 'lib/adapay.rb', line 161 def create_member(params) path = '/v1/members' params = { app_id: app_id }.merge(params) send_request(:post, path, params) end |
.create_payment(params) ⇒ Object
128 129 130 131 132 133 134 |
# File 'lib/adapay.rb', line 128 def create_payment(params) path = '/v1/payments' params = { app_id: app_id }.merge(params) send_request(:post, path, params) end |
.create_payment_confirm(params) ⇒ Object
364 365 366 367 368 369 370 371 |
# File 'lib/adapay.rb', line 364 def create_payment_confirm(params) params = { app_id: app_id }.merge(params) path = '/v1/payments/confirm' send_request(:post, path, params) end |
.create_payment_reverse(params) ⇒ Object
336 337 338 339 340 341 342 343 344 |
# File 'lib/adapay.rb', line 336 def create_payment_reverse(params) path = '/v1/payments/reverse' params = { app_id: app_id }.merge(params) send_request(:post, path, params) end |
.create_realname_member(params) ⇒ Object
必填:tel_no 用户手机号 user_name 用户姓名 cert_type 00-身份证 cert_id 证件号
172 173 174 175 176 177 178 179 180 |
# File 'lib/adapay.rb', line 172 def create_realname_member(params) path = '/v1/members/realname' params = { app_id: app_id }.merge(params) send_request(:post, path, params) end |
.create_refund(params) ⇒ Object
112 113 114 115 116 117 |
# File 'lib/adapay.rb', line 112 def create_refund(params) payment_id = params.delete(:payment_id) path = "/v1/payments/#{payment_id}/refunds" send_request(:post, path, params) end |
.create_settle_account(params) ⇒ Object
215 216 217 218 219 220 221 222 223 |
# File 'lib/adapay.rb', line 215 def create_settle_account(params) path = '/v1/settle_accounts' params = { app_id: app_id, channel: 'bank_account' }.merge(params) send_request(:post, path, params) end |
.delete_settle_account(params) ⇒ Object
238 239 240 241 242 243 244 245 246 |
# File 'lib/adapay.rb', line 238 def delete_settle_account(params) path = '/v1/settle_accounts/delete' params = { app_id: app_id }.merge(params) send_request(:post, path, params) end |
.endpoint ⇒ Object
50 51 52 |
# File 'lib/adapay.rb', line 50 def endpoint 'https://api.adapay.tech' end |
.extra_data_from_body(body) ⇒ Object
18 19 20 21 |
# File 'lib/adapay.rb', line 18 def extra_data_from_body(body) data = JSON.parse(body)['data'] JSON.parse(data) end |
.extra_data_from_response(response) ⇒ Object
14 15 16 |
# File 'lib/adapay.rb', line 14 def extra_data_from_response(response) extra_data_from_body(response.body) end |
.id_key_map ⇒ Object
84 85 86 87 88 89 |
# File 'lib/adapay.rb', line 84 def id_key_map { app_id => app_key, backup_app_id => backup_app_key } end |
.merchant_public_key ⇒ Object
58 59 60 |
# File 'lib/adapay.rb', line 58 def merchant_public_key merchant_private_key.public_key end |
.merchant_verify(sign, content) ⇒ Object
79 80 81 82 |
# File 'lib/adapay.rb', line 79 def merchant_verify(sign, content) sign_string = Base64.strict_decode64(sign) merchant_public_key.public_key.verify('SHA1', sign_string, content) end |
.page_endpoint ⇒ Object
54 55 56 |
# File 'lib/adapay.rb', line 54 def page_endpoint 'https://page.adapay.tech' end |
.payment_confirm_reverse(params) ⇒ Object
373 374 375 376 377 378 379 380 |
# File 'lib/adapay.rb', line 373 def payment_confirm_reverse(params) params = { app_id: app_id }.merge(params) path = '/v1/payments/confirm/reverse' send_request(:post, path, params) end |
.query_cash(params) ⇒ Object
323 324 325 326 327 328 329 330 331 |
# File 'lib/adapay.rb', line 323 def query_cash(params) path = '/v1/cashs/stat' params = { app_id: app_id }.merge(params) send_request(:get, path, params) end |
.query_corp_member(params) ⇒ Object
Query an existing corporate member
460 461 462 463 464 465 466 467 468 |
# File 'lib/adapay.rb', line 460 def query_corp_member(params) path = "/v1/corp_members/#{params[:member_id]}" params = { app_id: app_id }.merge(params) send_request(:get, path, params) end |
.query_member(params) ⇒ Object
183 184 185 186 187 188 189 190 191 192 193 |
# File 'lib/adapay.rb', line 183 def query_member(params) member_id = params.delete(:member_id) params = { app_id: app_id }.merge(params) path = "/v1/members/#{member_id}" send_request(:get, path, params) end |
.query_member_list(**params) ⇒ Object
207 208 209 210 211 212 213 |
# File 'lib/adapay.rb', line 207 def query_member_list(**params) path = '/v1/members/list' params = { app_id: app_id }.merge(params) send_request(:get, path, params) end |
.query_payment(params) ⇒ Object
151 152 153 154 155 156 |
# File 'lib/adapay.rb', line 151 def query_payment(params) payment_id = params.delete(:payment_id) path = "/v1/payments/#{payment_id}" send_request(:get, path, params) end |
.query_payment_confirm(params) ⇒ Object
392 393 394 395 396 397 398 399 400 401 402 |
# File 'lib/adapay.rb', line 392 def query_payment_confirm(params) payment_confirm_id = params.delete(:payment_confirm_id) path = "/v1/payments/confirm/#{payment_confirm_id}" params = { app_id: app_id }.merge(params) send_request(:get, path, params) end |
.query_payment_confirm_list(params) ⇒ Object
404 405 406 407 408 409 410 411 412 |
# File 'lib/adapay.rb', line 404 def query_payment_confirm_list(params) path = '/v1/payments/confirm/list' params = { app_id: app_id }.merge(params) send_request(:get, path, params) end |
.query_payment_confirm_reverse_detail(params) ⇒ Object
382 383 384 385 386 387 388 389 |
# File 'lib/adapay.rb', line 382 def query_payment_confirm_reverse_detail(params) params = { app_id: app_id }.merge(params) path = '/v1/payments/confirm/reverse/details' send_request(:get, path, params) end |
.query_payment_list ⇒ Object
143 144 145 146 147 148 149 |
# File 'lib/adapay.rb', line 143 def query_payment_list path = '/v1/payments/list' params = { app_id: app_id } send_request(:get, path, params) end |
.query_payment_reverse(params) ⇒ Object
346 347 348 349 350 351 |
# File 'lib/adapay.rb', line 346 def query_payment_reverse(params) reverse_id = params.delete(:reverse_id) path = "/v1/payments/reverse/#{reverse_id}" send_request(:get, path, params) end |
.query_payment_reverse_list(params) ⇒ Object
353 354 355 356 357 358 359 360 |
# File 'lib/adapay.rb', line 353 def query_payment_reverse_list(params) params = { app_id: app_id }.merge(params) path = '/v1/payments/reverse/list' send_request(:get, path, params) end |
.query_refund(params) ⇒ Object
120 121 122 123 124 125 126 |
# File 'lib/adapay.rb', line 120 def query_refund(params) path = '/v1/payments/refunds' params = { app_id: app_id }.merge(params) send_request(:get, path, params) end |
.query_settle_account(params) ⇒ Object
225 226 227 228 229 230 231 232 233 234 235 |
# File 'lib/adapay.rb', line 225 def query_settle_account(params) settle_account_id = params.delete(:settle_account_id) path = "/v1/settle_accounts/#{settle_account_id}" params = { app_id: app_id }.merge(params) send_request(:get, path, params) end |
.query_settle_account_balance(params) ⇒ Object
267 268 269 270 271 272 273 274 275 |
# File 'lib/adapay.rb', line 267 def query_settle_account_balance(params) path = '/v1/settle_accounts/balance' params = { app_id: app_id }.merge(params) send_request(:get, path, params) end |
.query_settle_account_detail(params) ⇒ Object
258 259 260 261 262 263 264 265 |
# File 'lib/adapay.rb', line 258 def query_settle_account_detail(params) path = '/v1/settle_accounts/settle_details' params = { app_id: app_id }.merge(params) send_request(:get, path, params) end |
.sdk_version ⇒ Object
46 47 48 |
# File 'lib/adapay.rb', line 46 def sdk_version "ruby_#{VERSION}" end |
.sign(content) ⇒ Object
70 71 72 |
# File 'lib/adapay.rb', line 70 def sign(content) Base64.strict_encode64(merchant_private_key.sign('SHA1', content)) end |
.update_member(params) ⇒ Object
196 197 198 199 200 201 202 203 204 |
# File 'lib/adapay.rb', line 196 def update_member(params) path = '/v1/members/update' params = { app_id: app_id }.merge(params) send_request(:post, path, params) end |
.update_settle_account(params) ⇒ Object
249 250 251 252 253 254 255 256 |
# File 'lib/adapay.rb', line 249 def update_settle_account(params) path = '/v1/settle_accounts/modify' params = { app_id: app_id }.merge(params) send_request(:post, path, params) end |
.valid_channels ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/adapay.rb', line 23 def valid_channels # https://docs.adapay.tech/api/appendix.html#id2 %i[ alipay alipay_qr alipay_wap alipay_lite alipay_pub alipay_scan wx_pub wx_lite wx_scan union union_qr union_wap union_scan union_online fast_pay b2c b2b ] end |
.verify(sign, content) ⇒ Object
74 75 76 77 |
# File 'lib/adapay.rb', line 74 def verify(sign, content) sign_string = Base64.strict_decode64(sign) platform_public_key.public_key.verify('SHA1', sign_string, content) end |