bootpay 1.2.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +8 -9
- data/.rspec +2 -0
- data/CHANGELOG.md +63 -21
- data/CODE_OF_CONDUCT.md +1 -1
- data/Gemfile +2 -4
- data/LICENSE.txt +1 -1
- data/README.md +309 -196
- data/Rakefile +3 -3
- data/bin/console +1 -1
- data/bootpay.gemspec +23 -20
- data/lib/bootpay/bootpay-rest-client.rb +51 -0
- data/lib/bootpay/concern/authenticate.rb +69 -0
- data/lib/bootpay/concern/cash_receipt.rb +83 -0
- data/lib/bootpay/concern/easy.rb +18 -0
- data/lib/bootpay/concern/escrow.rb +25 -0
- data/lib/bootpay/concern/payment.rb +126 -0
- data/lib/bootpay/concern/reseller.rb +97 -0
- data/lib/bootpay/concern/rest.rb +56 -0
- data/lib/bootpay/concern/sdk.rb +52 -0
- data/lib/bootpay/concern/seller.rb +15 -0
- data/lib/bootpay/concern/service.rb +15 -0
- data/lib/bootpay/concern/subscription.rb +211 -0
- data/lib/bootpay/concern/token.rb +33 -0
- data/lib/bootpay/concern/user_token.rb +23 -0
- data/lib/bootpay/concern/wallet.rb +20 -0
- data/lib/bootpay/concern/webhook.rb +18 -0
- data/lib/bootpay/concern.rb +35 -0
- data/lib/bootpay-backend-ruby.rb +6 -0
- data/lib/bootpay.rb +10 -66
- data/lib/bootpay_storage/bootpay-storage-rest-client.rb +46 -0
- data/lib/bootpay_storage/concern/csv.rb +18 -0
- data/lib/bootpay_storage/concern/image.rb +30 -0
- data/lib/bootpay_storage/concern/rest.rb +176 -0
- data/lib/bootpay_storage/concern/token.rb +9 -0
- data/lib/bootpay_storage/concern.rb +12 -0
- data/lib/bootpay_storage/response.rb +14 -0
- data/lib/bootpay_store/bootpay-store-rest-client.rb +47 -0
- data/lib/bootpay_store/concern/alimtalk_message.rb +67 -0
- data/lib/bootpay_store/concern/alimtalk_official.rb +63 -0
- data/lib/bootpay_store/concern/alimtalk_optout.rb +72 -0
- data/lib/bootpay_store/concern/alimtalk_send.rb +83 -0
- data/lib/bootpay_store/concern/alimtalk_sender.rb +105 -0
- data/lib/bootpay_store/concern/alimtalk_template.rb +215 -0
- data/lib/bootpay_store/concern/alimtalk_webhook.rb +84 -0
- data/lib/bootpay_store/concern/invoice.rb +102 -0
- data/lib/bootpay_store/concern/mall_setting.rb +385 -0
- data/lib/bootpay_store/concern/order.rb +74 -0
- data/lib/bootpay_store/concern/order_subscription.rb +391 -0
- data/lib/bootpay_store/concern/payment.rb +119 -0
- data/lib/bootpay_store/concern/product.rb +175 -0
- data/lib/bootpay_store/concern/rest.rb +128 -0
- data/lib/bootpay_store/concern/store.rb +31 -0
- data/lib/bootpay_store/concern/supervisor.rb +211 -0
- data/lib/bootpay_store/concern/token.rb +24 -0
- data/lib/bootpay_store/concern/user.rb +325 -0
- data/lib/bootpay_store/concern/user_group.rb +221 -0
- data/lib/bootpay_store/concern/webhook.rb +17 -0
- data/lib/bootpay_store/concern.rb +45 -0
- data/lib/bootpay_store/response.rb +14 -0
- data/lib/version.rb +9 -0
- metadata +77 -49
- data/.DS_Store +0 -0
- data/.env.example +0 -23
- data/lib/.DS_Store +0 -0
- data/lib/bootpay/.DS_Store +0 -0
- data/lib/bootpay/authentication.rb +0 -61
- data/lib/bootpay/automatic_transfer.rb +0 -56
- data/lib/bootpay/billing.rb +0 -157
- data/lib/bootpay/cancel.rb +0 -29
- data/lib/bootpay/cash_receipt.rb +0 -77
- data/lib/bootpay/commerce/cart.rb +0 -20
- data/lib/bootpay/commerce/category.rb +0 -39
- data/lib/bootpay/commerce/commerce_resource.rb +0 -196
- data/lib/bootpay/commerce/coupon.rb +0 -41
- data/lib/bootpay/commerce/invoice.rb +0 -46
- data/lib/bootpay/commerce/order.rb +0 -61
- data/lib/bootpay/commerce/order_cancel.rb +0 -52
- data/lib/bootpay/commerce/order_subscription.rb +0 -117
- data/lib/bootpay/commerce/order_subscription_adjustment.rb +0 -29
- data/lib/bootpay/commerce/order_subscription_bill.rb +0 -50
- data/lib/bootpay/commerce/order_subscription_request.rb +0 -60
- data/lib/bootpay/commerce/point.rb +0 -36
- data/lib/bootpay/commerce/product.rb +0 -63
- data/lib/bootpay/commerce/store.rb +0 -21
- data/lib/bootpay/commerce/user.rb +0 -75
- data/lib/bootpay/commerce/user_group.rb +0 -70
- data/lib/bootpay/easy.rb +0 -25
- data/lib/bootpay/escrow.rb +0 -24
- data/lib/bootpay/link.rb +0 -60
- data/lib/bootpay/naverpay.rb +0 -17
- data/lib/bootpay/payment_resource.rb +0 -31
- data/lib/bootpay/reseller.rb +0 -12
- data/lib/bootpay/rest.rb +0 -46
- data/lib/bootpay/submit.rb +0 -20
- data/lib/bootpay/token.rb +0 -33
- data/lib/bootpay/verification.rb +0 -55
- data/lib/bootpay/version.rb +0 -25
- data/lib/bootpay/wallet.rb +0 -56
- data/lib/bootpay_commerce.rb +0 -152
- /data/lib/{response.rb → bootpay/response.rb} +0 -0
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'uri'
|
|
4
|
-
|
|
5
|
-
module Bootpay
|
|
6
|
-
module Commerce
|
|
7
|
-
class ProductModule
|
|
8
|
-
def initialize(bootpay)
|
|
9
|
-
@bootpay = bootpay
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# 상품 목록 조회
|
|
13
|
-
def list(params = {})
|
|
14
|
-
query_params = {}
|
|
15
|
-
query_params[:page] = params[:page] unless params[:page].nil?
|
|
16
|
-
query_params[:limit] = params[:limit] unless params[:limit].nil?
|
|
17
|
-
query_params[:keyword] = params[:keyword] if params[:keyword]
|
|
18
|
-
query_params[:type] = params[:type] unless params[:type].nil?
|
|
19
|
-
query_params[:period_type] = params[:period_type] if params[:period_type]
|
|
20
|
-
query_params[:s_at] = params[:s_at] if params[:s_at]
|
|
21
|
-
query_params[:e_at] = params[:e_at] if params[:e_at]
|
|
22
|
-
query_params[:category_code] = params[:category_code] if params[:category_code]
|
|
23
|
-
|
|
24
|
-
query = build_query(query_params)
|
|
25
|
-
@bootpay.get("products#{query}")
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# 상품 생성 (이미지 포함)
|
|
29
|
-
def create(product, image_paths = nil)
|
|
30
|
-
@bootpay.post_multipart('products', product, image_paths)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# 상품 상세 조회
|
|
34
|
-
def detail(product_id)
|
|
35
|
-
@bootpay.get("products/#{product_id}")
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# 상품 수정
|
|
39
|
-
def update(product)
|
|
40
|
-
raise ArgumentError, 'product_id is required' unless product[:product_id]
|
|
41
|
-
@bootpay.put("products/#{product[:product_id]}", product)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
# 상품 상태 변경
|
|
45
|
-
def status(params)
|
|
46
|
-
raise ArgumentError, 'product_id is required' unless params[:product_id]
|
|
47
|
-
@bootpay.put("products/#{params[:product_id]}/status", params)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# 상품 삭제
|
|
51
|
-
def delete(product_id)
|
|
52
|
-
@bootpay.delete("products/#{product_id}")
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
private
|
|
56
|
-
|
|
57
|
-
def build_query(params)
|
|
58
|
-
return '' if params.empty?
|
|
59
|
-
"?#{URI.encode_www_form(params)}"
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Bootpay
|
|
4
|
-
module Commerce
|
|
5
|
-
class StoreModule
|
|
6
|
-
def initialize(bootpay)
|
|
7
|
-
@bootpay = bootpay
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
# 가맹점 기본 정보 조회
|
|
11
|
-
def info
|
|
12
|
-
@bootpay.get('store')
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# 가맹점 상세 정보 조회
|
|
16
|
-
def detail
|
|
17
|
-
@bootpay.get('store/detail')
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'uri'
|
|
4
|
-
|
|
5
|
-
module Bootpay
|
|
6
|
-
module Commerce
|
|
7
|
-
class UserModule
|
|
8
|
-
def initialize(bootpay)
|
|
9
|
-
@bootpay = bootpay
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# 사용자 토큰 발급
|
|
13
|
-
def token(user_id)
|
|
14
|
-
@bootpay.post('users/login/token', { user_id: user_id })
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# 회원가입
|
|
18
|
-
def join(user)
|
|
19
|
-
@bootpay.post('users/join', user)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# 중복 체크
|
|
23
|
-
def check_exist(key, value)
|
|
24
|
-
encoded_value = URI.encode_www_form_component(value)
|
|
25
|
-
@bootpay.get("users/join/#{key}?pk=#{encoded_value}")
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# 본인인증 데이터 조회
|
|
29
|
-
def authentication_data(stand_id)
|
|
30
|
-
@bootpay.get("users/authenticate/#{stand_id}")
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# 로그인
|
|
34
|
-
def login(login_id, login_pw)
|
|
35
|
-
@bootpay.post('users/login', { login_id: login_id, login_pw: login_pw })
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# 사용자 목록 조회
|
|
39
|
-
def list(params = {})
|
|
40
|
-
query_params = {}
|
|
41
|
-
query_params[:page] = params[:page] unless params[:page].nil?
|
|
42
|
-
query_params[:limit] = params[:limit] unless params[:limit].nil?
|
|
43
|
-
query_params[:keyword] = params[:keyword] if params[:keyword]
|
|
44
|
-
query_params[:member_type] = params[:member_type] unless params[:member_type].nil?
|
|
45
|
-
query_params[:type] = params[:type] if params[:type]
|
|
46
|
-
|
|
47
|
-
query = build_query(query_params)
|
|
48
|
-
@bootpay.get("users#{query}")
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# 사용자 상세 조회
|
|
52
|
-
def detail(user_id)
|
|
53
|
-
@bootpay.get("users/#{user_id}")
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
# 사용자 정보 수정
|
|
57
|
-
def update(user)
|
|
58
|
-
raise ArgumentError, 'user_id is required' unless user[:user_id]
|
|
59
|
-
@bootpay.put("users/#{user[:user_id]}", user)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
# 사용자 삭제
|
|
63
|
-
def delete(user_id)
|
|
64
|
-
@bootpay.delete("users/#{user_id}")
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
private
|
|
68
|
-
|
|
69
|
-
def build_query(params)
|
|
70
|
-
return '' if params.empty?
|
|
71
|
-
"?#{URI.encode_www_form(params)}"
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'uri'
|
|
4
|
-
|
|
5
|
-
module Bootpay
|
|
6
|
-
module Commerce
|
|
7
|
-
class UserGroupModule
|
|
8
|
-
def initialize(bootpay)
|
|
9
|
-
@bootpay = bootpay
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# 사용자 그룹 생성
|
|
13
|
-
def create(user_group)
|
|
14
|
-
@bootpay.post('user-groups', user_group)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# 사용자 그룹 목록 조회
|
|
18
|
-
def list(params = {})
|
|
19
|
-
query_params = {}
|
|
20
|
-
query_params[:page] = params[:page] unless params[:page].nil?
|
|
21
|
-
query_params[:limit] = params[:limit] unless params[:limit].nil?
|
|
22
|
-
query_params[:keyword] = params[:keyword] if params[:keyword]
|
|
23
|
-
query_params[:corporate_type] = params[:corporate_type] unless params[:corporate_type].nil?
|
|
24
|
-
|
|
25
|
-
query = build_query(query_params)
|
|
26
|
-
@bootpay.get("user-groups#{query}")
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# 사용자 그룹 상세 조회
|
|
30
|
-
def detail(user_group_id)
|
|
31
|
-
@bootpay.get("user-groups/#{user_group_id}")
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# 사용자 그룹 수정
|
|
35
|
-
def update(user_group)
|
|
36
|
-
raise ArgumentError, 'user_group_id is required' unless user_group[:user_group_id]
|
|
37
|
-
@bootpay.put("user-groups/#{user_group[:user_group_id]}", user_group)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# 그룹에 사용자 추가
|
|
41
|
-
def user_create(user_group_id, user_id)
|
|
42
|
-
@bootpay.post("user-groups/#{user_group_id}/user", { user_id: user_id })
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# 그룹에서 사용자 제거
|
|
46
|
-
def user_delete(user_group_id, user_id)
|
|
47
|
-
@bootpay.delete("user-groups/#{user_group_id}/user/#{user_id}")
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# 그룹 제한 설정
|
|
51
|
-
def limit(params)
|
|
52
|
-
raise ArgumentError, 'user_group_id is required' unless params[:user_group_id]
|
|
53
|
-
@bootpay.put("user-groups/#{params[:user_group_id]}/limit", params)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
# 그룹 거래 집계
|
|
57
|
-
def aggregate_transaction(params)
|
|
58
|
-
raise ArgumentError, 'user_group_id is required' unless params[:user_group_id]
|
|
59
|
-
@bootpay.put("user-groups/#{params[:user_group_id]}/aggregate-transaction", params)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
private
|
|
63
|
-
|
|
64
|
-
def build_query(params)
|
|
65
|
-
return '' if params.empty?
|
|
66
|
-
"?#{URI.encode_www_form(params)}"
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
data/lib/bootpay/easy.rb
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
module Bootpay::Easy
|
|
2
|
-
extend ActiveSupport::Concern
|
|
3
|
-
|
|
4
|
-
included do
|
|
5
|
-
# 회원 Token을 요청한다
|
|
6
|
-
# Comment by ehowlsla
|
|
7
|
-
# Date: 2021-08-230
|
|
8
|
-
|
|
9
|
-
def get_user_token(user_id: nil, email: nil, name: nil, gender: nil, birth: nil, phone: nil)
|
|
10
|
-
raise 'user_id 값을 입력해주세요.' if user_id.blank?
|
|
11
|
-
|
|
12
|
-
request(
|
|
13
|
-
uri: 'request/user/token',
|
|
14
|
-
payload: {
|
|
15
|
-
user_id: user_id, # 개발사에서 관리하는 회원 고유 id
|
|
16
|
-
email: email, # 회원 email
|
|
17
|
-
name: name, # 회원명
|
|
18
|
-
gender: gender, # 0:여자, 1:남자
|
|
19
|
-
birth: birth, # 생일 901004
|
|
20
|
-
phone: phone # 01012341234
|
|
21
|
-
}.compact
|
|
22
|
-
)
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
data/lib/bootpay/escrow.rb
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
module Bootpay::Escrow
|
|
2
|
-
extend ActiveSupport::Concern
|
|
3
|
-
|
|
4
|
-
included do
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
# @deprecated, 사용되지 않는 api
|
|
8
|
-
# Comment by Gosomi
|
|
9
|
-
# Date: 2020-06-18
|
|
10
|
-
# @return [Hash]
|
|
11
|
-
def delivery_start(receipt_id, delivery_no, delivery_corp)
|
|
12
|
-
raise 'receipt_id 값을 설정해주세요.' if receipt_id.blank?
|
|
13
|
-
request(
|
|
14
|
-
method: :put,
|
|
15
|
-
uri: "delivery/start/#{receipt_id}",
|
|
16
|
-
payload:
|
|
17
|
-
{
|
|
18
|
-
delivery_no: delivery_no,
|
|
19
|
-
delivery_corp: delivery_corp
|
|
20
|
-
}.compact
|
|
21
|
-
)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
data/lib/bootpay/link.rb
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Comment by ehowlsla
|
|
3
|
-
# Date: 2021-08-31
|
|
4
|
-
# @return [Hash]
|
|
5
|
-
module Bootpay::Link
|
|
6
|
-
extend ActiveSupport::Concern
|
|
7
|
-
|
|
8
|
-
included do
|
|
9
|
-
# item 모델 설명
|
|
10
|
-
# {
|
|
11
|
-
# item_name: '', # 상품명
|
|
12
|
-
# qty: 1, # 수량
|
|
13
|
-
# unique: '', # 상품 고유키
|
|
14
|
-
# price: 1000, # 상품단가
|
|
15
|
-
# cat1: '', # 카테고리 상
|
|
16
|
-
# cat2: '', # 카테고리 중
|
|
17
|
-
# cat3: '' # 카테고리 하
|
|
18
|
-
# }
|
|
19
|
-
def request_link(pg: nil, method: nil, methods: nil, price: nil, order_id: nil, params: nil, tax_free: nil, name: nil,
|
|
20
|
-
user_info: {
|
|
21
|
-
id: nil, # 개발사에서 관리하는 회원 고유 id
|
|
22
|
-
username: nil, # 구매자 이름
|
|
23
|
-
email: nil, # 구매자 email
|
|
24
|
-
phone: nil, # 01012341234
|
|
25
|
-
gender: nil, # 0:여자, 1:남자
|
|
26
|
-
area: nil, # 서울|인천|대구|광주|부산|울산|경기|강원|충청북도|충북|충청남도|충남|전라북도|전북|전라남도|전남|경상북도|경북|경상남도|경남|제주|세종|대전 중 택 1
|
|
27
|
-
birth: nil # 생일 901004
|
|
28
|
-
},
|
|
29
|
-
items: nil, # item array
|
|
30
|
-
extra: {
|
|
31
|
-
escrow: nil, # 에스크로 연동 시 true, 기본값 false
|
|
32
|
-
quota: nil, #List<int> 형태, 결제금액이 5만원 이상시 할부개월 허용범위를 설정할 수 있음, ex) "0,2,3" 지정시 - [0(일시불), 2개월, 3개월] 허용, 미설정시 PG사별 기본값 적용, 1 지정시 에러가 발생할 수 있음
|
|
33
|
-
disp_cash_result: nil, # 현금영수증 노출할지 말지 (가상계좌 이용시)
|
|
34
|
-
offer_period: nil, # 통합결제창, PG 정기결제창에서 표시되는 '월 자동결제'에 해당하는 문구를 지정한 값으로 변경, 지원하는 PG사만 적용 가능
|
|
35
|
-
theme: nil, # 통합결제창 테마, [ red, purple(기본), custom ] 중 택 1
|
|
36
|
-
custom_background: nil, # 통합결제창 배경색, ex) "#00a086" theme가 custom 일 때 background 색상 지정 가능
|
|
37
|
-
custom_font_color: nil # 통합결제창 글자색, ex) "#ffffff" theme가 custom 일 때 font color 색상 지정 가능
|
|
38
|
-
}
|
|
39
|
-
)
|
|
40
|
-
request(
|
|
41
|
-
uri: 'request/payment',
|
|
42
|
-
payload:
|
|
43
|
-
{
|
|
44
|
-
pg: pg, # [PG 결제] 사용하고자 하는 PG사의 Alias를 입력. ex) danal, kcp, inicis등, 미 지정시 통합결제창이 오픈
|
|
45
|
-
method: method, # card:카드, phone: 휴대폰, bank: 실시간 계좌이체, vbank: 가상계좌, auth: 본인인증, card_rebill: 정기결제, easy: 카카오,페이코,네이버페이 등의 간편결제, 미지정시 통합결제창 오픈
|
|
46
|
-
methods: methods, # 통합결제시 사용할 method 배열 형태
|
|
47
|
-
price: price, # 결제금액
|
|
48
|
-
order_id: order_id, # 개발사에서 관리하는 고유결제번호
|
|
49
|
-
params: params, # string 형태로 전달 할 값, 결제 후 똑같이 리턴해드림
|
|
50
|
-
tax_free: tax_free, # 비과세 금액
|
|
51
|
-
name: name, # 결제할 상품명
|
|
52
|
-
user_info: user_info, # 구매자 정보
|
|
53
|
-
items: items, # 상품정보
|
|
54
|
-
# return_url: return_url, # 결제후 이동할 페이지 url, 아직 사용하지 않음
|
|
55
|
-
extra: extra.values.any? {|v|v != nil} ? extra : nil # 기타 옵션
|
|
56
|
-
}.compact
|
|
57
|
-
)
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
data/lib/bootpay/naverpay.rb
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# bootpay dev api
|
|
3
|
-
# Comment by Gosomi
|
|
4
|
-
# Date: 2020-06-18
|
|
5
|
-
# @return [Hash]
|
|
6
|
-
module Bootpay::Naverpay
|
|
7
|
-
extend ActiveSupport::Concern
|
|
8
|
-
|
|
9
|
-
included do
|
|
10
|
-
def naverpay_item_response(data)
|
|
11
|
-
request(
|
|
12
|
-
uri: 'npay/product',
|
|
13
|
-
payload: data
|
|
14
|
-
)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# bootpay dev api
|
|
2
|
-
# Comment by Gosomi
|
|
3
|
-
# Date: 2020-06-18
|
|
4
|
-
# @return [Hash]
|
|
5
|
-
module Bootpay::PaymentResource
|
|
6
|
-
extend ActiveSupport::Concern
|
|
7
|
-
|
|
8
|
-
included do
|
|
9
|
-
def update_pg_resource(data)
|
|
10
|
-
request(
|
|
11
|
-
uri: 'project/payment',
|
|
12
|
-
payload: data
|
|
13
|
-
)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
#----------------------------------------------------------
|
|
17
|
-
# 새로운 웹훅을 실행한다
|
|
18
|
-
# Comment by Gosomi
|
|
19
|
-
# Date: 2021-12-21
|
|
20
|
-
#----------------------------------------------------------
|
|
21
|
-
def create_webhook(receipt_id:, webhook_url:)
|
|
22
|
-
request(
|
|
23
|
-
uri: 'webhook',
|
|
24
|
-
payload: {
|
|
25
|
-
receipt_id: receipt_id,
|
|
26
|
-
webhook_url: webhook_url
|
|
27
|
-
}
|
|
28
|
-
)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
data/lib/bootpay/reseller.rb
DELETED
data/lib/bootpay/rest.rb
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
module Bootpay::Rest
|
|
2
|
-
extend ActiveSupport::Concern
|
|
3
|
-
|
|
4
|
-
included do
|
|
5
|
-
private
|
|
6
|
-
|
|
7
|
-
# HTTP Request 기본 Method
|
|
8
|
-
# Comment by Gosomi
|
|
9
|
-
# Date: 2021-05-21
|
|
10
|
-
def authorization_header
|
|
11
|
-
if @client_key.present? && @secret_key.present?
|
|
12
|
-
"Basic #{Base64.strict_encode64("#{@client_key}:#{@secret_key}")}"
|
|
13
|
-
elsif @token.present?
|
|
14
|
-
"Bearer #{@token}"
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def request(method: :post, uri:, payload: {}, headers: {}, params: nil)
|
|
19
|
-
|
|
20
|
-
http_options = { json: payload }
|
|
21
|
-
http_options[:params] = params if params && !params.empty?
|
|
22
|
-
|
|
23
|
-
response = HTTP.headers(
|
|
24
|
-
{
|
|
25
|
-
Authorization: authorization_header,
|
|
26
|
-
content_type: 'application/json',
|
|
27
|
-
accept: 'application/json'
|
|
28
|
-
}.merge!(headers).compact
|
|
29
|
-
).send(
|
|
30
|
-
method.to_sym,
|
|
31
|
-
[Bootpay::Api::API[@mode.to_sym], uri].join('/'),
|
|
32
|
-
**http_options
|
|
33
|
-
)
|
|
34
|
-
Bootpay::Response.new(
|
|
35
|
-
response.status.success?,
|
|
36
|
-
JSON.parse(response.body.to_s, symbolize_names: true)
|
|
37
|
-
)
|
|
38
|
-
rescue Exception => e
|
|
39
|
-
Bootpay::Response.new(
|
|
40
|
-
false,
|
|
41
|
-
message: "부트페이 API 서버와의 통신이 실패하였습니다. 오류 메세지: #{e.message}",
|
|
42
|
-
backtrace: e.backtrace.join("\n")
|
|
43
|
-
)
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
data/lib/bootpay/submit.rb
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Comment by ehowlsla
|
|
3
|
-
# Date: 2021-08-31
|
|
4
|
-
# @return [Hash]
|
|
5
|
-
module Bootpay::Submit
|
|
6
|
-
extend ActiveSupport::Concern
|
|
7
|
-
|
|
8
|
-
included do
|
|
9
|
-
def server_submit(receipt_id)
|
|
10
|
-
raise 'receipt_id 값을 입력해주세요.' if receipt_id.blank?
|
|
11
|
-
|
|
12
|
-
request(
|
|
13
|
-
uri: 'submit',
|
|
14
|
-
payload: {
|
|
15
|
-
receipt_id: receipt_id
|
|
16
|
-
}
|
|
17
|
-
)
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
data/lib/bootpay/token.rb
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
module Bootpay::Token
|
|
2
|
-
extend ActiveSupport::Concern
|
|
3
|
-
|
|
4
|
-
included do
|
|
5
|
-
# Access Token을 요청한다
|
|
6
|
-
# Comment by Gosomi
|
|
7
|
-
# Date: 2021-05-21
|
|
8
|
-
def request_access_token
|
|
9
|
-
# client_key/secret_key 인증은 매 요청에 Basic Auth 헤더가 자동 부착된다.
|
|
10
|
-
# request/token 호출이 불필요하므로 합성 응답을 즉시 반환한다.
|
|
11
|
-
if @client_key.present? && @secret_key.present?
|
|
12
|
-
@token = nil
|
|
13
|
-
return Bootpay::Response.new(true, { access_token: '', expire_in: 0 })
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
response = request(
|
|
17
|
-
uri: 'request/token',
|
|
18
|
-
payload: {
|
|
19
|
-
application_id: @application_id,
|
|
20
|
-
private_key: @private_key
|
|
21
|
-
}
|
|
22
|
-
)
|
|
23
|
-
if response.success?
|
|
24
|
-
# 기존 Ruby PG 응답(data.token)을 우선 유지하되, 다른 SDK/신규 응답(access_token)도
|
|
25
|
-
# 받을 수 있게 확장한다. 기존 응답 구조와 token 값에는 영향을 주지 않는다.
|
|
26
|
-
@token = response.data.dig(:data, :token)
|
|
27
|
-
@token ||= response.data[:access_token]
|
|
28
|
-
@token ||= response.data.dig(:data, :access_token)
|
|
29
|
-
end
|
|
30
|
-
response
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
data/lib/bootpay/verification.rb
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
module Bootpay::Verification
|
|
2
|
-
extend ActiveSupport::Concern
|
|
3
|
-
|
|
4
|
-
included do
|
|
5
|
-
|
|
6
|
-
# 결제 검증하기
|
|
7
|
-
# Comment by ehowlsla
|
|
8
|
-
# Date: 2021-08-31
|
|
9
|
-
def verify(receipt_id)
|
|
10
|
-
raise 'receipt_id 값을 입력해주세요' if receipt_id.nil?
|
|
11
|
-
request(
|
|
12
|
-
method: :get,
|
|
13
|
-
uri: "receipt/#{receipt_id}"
|
|
14
|
-
)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# bootpay dev api
|
|
18
|
-
# Comment by ehowlsla
|
|
19
|
-
# Date: 2021-08-31
|
|
20
|
-
def subscribe_verify(receipt_id)
|
|
21
|
-
raise 'receipt_id 값을 입력해주세요' if receipt_id.nil?
|
|
22
|
-
request(
|
|
23
|
-
method: :get,
|
|
24
|
-
uri: "subscribe/billing/#{receipt_id}"
|
|
25
|
-
)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# 서버 승인하기
|
|
29
|
-
# Comment by ehowlsla
|
|
30
|
-
# Date: 2021-08-31
|
|
31
|
-
def confirm(receipt_id)
|
|
32
|
-
raise 'receipt_id 값을 입력해주세요' if receipt_id.nil?
|
|
33
|
-
request(
|
|
34
|
-
uri: "submit",
|
|
35
|
-
payload: {
|
|
36
|
-
receipt_id: receipt_id
|
|
37
|
-
}.compact
|
|
38
|
-
)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
# 본인인증 검증하기
|
|
42
|
-
# Comment by ehowlsla
|
|
43
|
-
# Date: 2021-08-31
|
|
44
|
-
def certificate(receipt_id)
|
|
45
|
-
raise 'receipt_id 값을 입력해주세요' if receipt_id.nil?
|
|
46
|
-
request(
|
|
47
|
-
method: :get,
|
|
48
|
-
uri: "certificate/#{receipt_id}",
|
|
49
|
-
payload: {
|
|
50
|
-
receipt_id: receipt_id
|
|
51
|
-
}.compact
|
|
52
|
-
)
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
data/lib/bootpay/version.rb
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Bootpay
|
|
4
|
-
VERSION = "1.2.0"
|
|
5
|
-
BANKCODE = {
|
|
6
|
-
"한국은행" => "001",
|
|
7
|
-
"기업은행" => "003",
|
|
8
|
-
"국민은행" => "004",
|
|
9
|
-
"외환은행" => "005",
|
|
10
|
-
"수협은행" => "007",
|
|
11
|
-
"농협은행" => "011",
|
|
12
|
-
"우리은행" => "020",
|
|
13
|
-
"SC은행" => "023",
|
|
14
|
-
"대구은행" => "031",
|
|
15
|
-
"부산은행" => "032",
|
|
16
|
-
"광주은행" => "034",
|
|
17
|
-
"경남은행" => "039",
|
|
18
|
-
"우체국" => "071",
|
|
19
|
-
"KEB하나은행" => "081",
|
|
20
|
-
"신한은행" => "088",
|
|
21
|
-
"케이뱅크" => "089",
|
|
22
|
-
"카카오뱅크" => "090",
|
|
23
|
-
}
|
|
24
|
-
end
|
|
25
|
-
|
data/lib/bootpay/wallet.rb
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
module Bootpay::Wallet
|
|
2
|
-
extend ActiveSupport::Concern
|
|
3
|
-
|
|
4
|
-
included do
|
|
5
|
-
# 사용자 월렛 목록 조회
|
|
6
|
-
# Reference: Go SDK GetUserWallets
|
|
7
|
-
#
|
|
8
|
-
# @deprecated 다음 메이저 버전에서 제거 예정. wallet 엔드포인트는 폐기 예정이며,
|
|
9
|
-
# 결제는 Request::PaymentController#create 의 wallet_id + user_token 으로 처리됩니다.
|
|
10
|
-
def get_user_wallets(user_id:, sandbox: false)
|
|
11
|
-
warn '[DEPRECATION] `get_user_wallets` is deprecated and will be removed in a future major version.'
|
|
12
|
-
raise 'user_id 값을 입력해주세요.' if user_id.blank?
|
|
13
|
-
|
|
14
|
-
request(
|
|
15
|
-
method: :get,
|
|
16
|
-
uri: "wallet?user_id=#{user_id}&sandbox=#{sandbox}"
|
|
17
|
-
)
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
# 월렛 결제 요청
|
|
21
|
-
# Reference: Go SDK RequestWalletPayment
|
|
22
|
-
#
|
|
23
|
-
# @deprecated 다음 메이저 버전에서 제거 예정. wallet 엔드포인트는 폐기 예정이며,
|
|
24
|
-
# 결제는 wallet_id + user_token 흐름으로 전환하세요.
|
|
25
|
-
def request_wallet_payment(user_id:, order_name:, price:, order_id:, tax_free: 0, sandbox: false,
|
|
26
|
-
webhook_url: nil, content_type: nil,
|
|
27
|
-
items: nil,
|
|
28
|
-
user_info: nil,
|
|
29
|
-
extra: nil,
|
|
30
|
-
metadata: nil)
|
|
31
|
-
warn '[DEPRECATION] `request_wallet_payment` is deprecated and will be removed in a future major version.'
|
|
32
|
-
raise 'user_id 값을 입력해주세요.' if user_id.blank?
|
|
33
|
-
raise 'order_name 값을 입력해주세요.' if order_name.blank?
|
|
34
|
-
raise 'price 금액을 설정해주세요.' if price.blank?
|
|
35
|
-
raise 'order_id 주문번호를 설정해주세요.' if order_id.blank?
|
|
36
|
-
|
|
37
|
-
request(
|
|
38
|
-
uri: 'wallet/payment',
|
|
39
|
-
payload: {
|
|
40
|
-
user_id: user_id,
|
|
41
|
-
order_name: order_name,
|
|
42
|
-
price: price,
|
|
43
|
-
tax_free: tax_free,
|
|
44
|
-
order_id: order_id,
|
|
45
|
-
sandbox: sandbox,
|
|
46
|
-
webhook_url: webhook_url,
|
|
47
|
-
content_type: content_type,
|
|
48
|
-
items: items,
|
|
49
|
-
user: user_info,
|
|
50
|
-
extra: extra,
|
|
51
|
-
metadata: metadata
|
|
52
|
-
}.compact
|
|
53
|
-
)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|