bootpay 1.2.0 → 3.1.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.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +8 -9
  3. data/.rspec +2 -0
  4. data/CHANGELOG.md +107 -21
  5. data/CODE_OF_CONDUCT.md +1 -1
  6. data/Gemfile +1 -3
  7. data/LICENSE.txt +1 -1
  8. data/README.md +309 -196
  9. data/Rakefile +3 -3
  10. data/bin/console +1 -1
  11. data/bootpay.gemspec +22 -20
  12. data/lib/bootpay/bootpay-rest-client.rb +51 -0
  13. data/lib/bootpay/concern/authenticate.rb +69 -0
  14. data/lib/bootpay/concern/cash_receipt.rb +83 -0
  15. data/lib/bootpay/concern/easy.rb +18 -0
  16. data/lib/bootpay/concern/escrow.rb +25 -0
  17. data/lib/bootpay/concern/payment.rb +126 -0
  18. data/lib/bootpay/concern/reseller.rb +97 -0
  19. data/lib/bootpay/concern/rest.rb +56 -0
  20. data/lib/bootpay/concern/sdk.rb +52 -0
  21. data/lib/bootpay/concern/seller.rb +15 -0
  22. data/lib/bootpay/concern/service.rb +15 -0
  23. data/lib/bootpay/concern/subscription.rb +211 -0
  24. data/lib/bootpay/concern/token.rb +33 -0
  25. data/lib/bootpay/concern/user_token.rb +23 -0
  26. data/lib/bootpay/concern/wallet.rb +20 -0
  27. data/lib/bootpay/concern/webhook.rb +18 -0
  28. data/lib/bootpay/concern.rb +35 -0
  29. data/lib/bootpay-backend-ruby.rb +6 -0
  30. data/lib/bootpay.rb +10 -66
  31. data/lib/bootpay_storage/bootpay-storage-rest-client.rb +46 -0
  32. data/lib/bootpay_storage/concern/csv.rb +18 -0
  33. data/lib/bootpay_storage/concern/image.rb +30 -0
  34. data/lib/bootpay_storage/concern/rest.rb +176 -0
  35. data/lib/bootpay_storage/concern/token.rb +9 -0
  36. data/lib/bootpay_storage/concern.rb +12 -0
  37. data/lib/bootpay_storage/response.rb +14 -0
  38. data/lib/bootpay_store/bootpay-store-rest-client.rb +62 -0
  39. data/lib/bootpay_store/concern/alimtalk_message.rb +67 -0
  40. data/lib/bootpay_store/concern/alimtalk_official.rb +63 -0
  41. data/lib/bootpay_store/concern/alimtalk_optout.rb +72 -0
  42. data/lib/bootpay_store/concern/alimtalk_send.rb +92 -0
  43. data/lib/bootpay_store/concern/alimtalk_sender.rb +105 -0
  44. data/lib/bootpay_store/concern/alimtalk_template.rb +215 -0
  45. data/lib/bootpay_store/concern/alimtalk_webhook.rb +84 -0
  46. data/lib/bootpay_store/concern/faq.rb +97 -0
  47. data/lib/bootpay_store/concern/inquiry.rb +138 -0
  48. data/lib/bootpay_store/concern/invoice.rb +102 -0
  49. data/lib/bootpay_store/concern/mall_setting.rb +385 -0
  50. data/lib/bootpay_store/concern/notice.rb +100 -0
  51. data/lib/bootpay_store/concern/order.rb +74 -0
  52. data/lib/bootpay_store/concern/order_subscription.rb +391 -0
  53. data/lib/bootpay_store/concern/payment.rb +119 -0
  54. data/lib/bootpay_store/concern/product.rb +175 -0
  55. data/lib/bootpay_store/concern/product_qna.rb +149 -0
  56. data/lib/bootpay_store/concern/product_review.rb +145 -0
  57. data/lib/bootpay_store/concern/rest.rb +139 -0
  58. data/lib/bootpay_store/concern/store.rb +31 -0
  59. data/lib/bootpay_store/concern/supervisor.rb +211 -0
  60. data/lib/bootpay_store/concern/token.rb +24 -0
  61. data/lib/bootpay_store/concern/user.rb +325 -0
  62. data/lib/bootpay_store/concern/user_group.rb +221 -0
  63. data/lib/bootpay_store/concern/webhook.rb +17 -0
  64. data/lib/bootpay_store/concern.rb +55 -0
  65. data/lib/bootpay_store/response.rb +14 -0
  66. data/lib/version.rb +9 -0
  67. metadata +82 -49
  68. data/.DS_Store +0 -0
  69. data/.env.example +0 -23
  70. data/lib/.DS_Store +0 -0
  71. data/lib/bootpay/.DS_Store +0 -0
  72. data/lib/bootpay/authentication.rb +0 -61
  73. data/lib/bootpay/automatic_transfer.rb +0 -56
  74. data/lib/bootpay/billing.rb +0 -157
  75. data/lib/bootpay/cancel.rb +0 -29
  76. data/lib/bootpay/cash_receipt.rb +0 -77
  77. data/lib/bootpay/commerce/cart.rb +0 -20
  78. data/lib/bootpay/commerce/category.rb +0 -39
  79. data/lib/bootpay/commerce/commerce_resource.rb +0 -196
  80. data/lib/bootpay/commerce/coupon.rb +0 -41
  81. data/lib/bootpay/commerce/invoice.rb +0 -46
  82. data/lib/bootpay/commerce/order.rb +0 -61
  83. data/lib/bootpay/commerce/order_cancel.rb +0 -52
  84. data/lib/bootpay/commerce/order_subscription.rb +0 -117
  85. data/lib/bootpay/commerce/order_subscription_adjustment.rb +0 -29
  86. data/lib/bootpay/commerce/order_subscription_bill.rb +0 -50
  87. data/lib/bootpay/commerce/order_subscription_request.rb +0 -60
  88. data/lib/bootpay/commerce/point.rb +0 -36
  89. data/lib/bootpay/commerce/product.rb +0 -63
  90. data/lib/bootpay/commerce/store.rb +0 -21
  91. data/lib/bootpay/commerce/user.rb +0 -75
  92. data/lib/bootpay/commerce/user_group.rb +0 -70
  93. data/lib/bootpay/easy.rb +0 -25
  94. data/lib/bootpay/escrow.rb +0 -24
  95. data/lib/bootpay/link.rb +0 -60
  96. data/lib/bootpay/naverpay.rb +0 -17
  97. data/lib/bootpay/payment_resource.rb +0 -31
  98. data/lib/bootpay/reseller.rb +0 -12
  99. data/lib/bootpay/rest.rb +0 -46
  100. data/lib/bootpay/submit.rb +0 -20
  101. data/lib/bootpay/token.rb +0 -33
  102. data/lib/bootpay/verification.rb +0 -55
  103. data/lib/bootpay/version.rb +0 -25
  104. data/lib/bootpay/wallet.rb +0 -56
  105. data/lib/bootpay_commerce.rb +0 -152
  106. /data/lib/{response.rb → bootpay/response.rb} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9857f52bec71aa5dd18ebc6348be24579e75dcb786adad6179f9abe628363cc5
4
- data.tar.gz: c45ef8873b722b9ff22a5edfec482be0ccd5b5c953733d48d5e9b31a6bd4f62d
3
+ metadata.gz: c451a531a23a1a127987e92afb1980687ebd31a484326da574520dc41e78da87
4
+ data.tar.gz: 0d0e6b71cd59143809355360bedd0f9f43da13a6a02cf9c9d8952edbecb6c7d0
5
5
  SHA512:
6
- metadata.gz: aff54ec2aa4f15e611171cc5741a5f7c3d1d9d67c3dc846db396d11c13339b93ec4c1be02fc90bf0d6340ab8620ec5c61c8207b4cbfd3518f4511dcf6dcf368c
7
- data.tar.gz: 6bbb59991a54f12a2b260dac55c71c043ad5da7e3d65e6f67e10f7cf22bc30072be912678afb31da4bb940482657bac530ba2bb5b0e7d8778319643e716fffbd
6
+ metadata.gz: 0ff9f2a74b66f0644633b605edff8e440ea29546cffba5cf7432597ea5b6ebbf8172cdc1598989b64d48c3bfd5091cbe9cec4f048965ccd032e93328faf5a4f6
7
+ data.tar.gz: 9ef546f66306f41e58e8fcaffc5ac1595eab60140056a1552d8a0f7b78ecd27c6c7843803fb1015149d4b86ac98a22d3350be6e1146eccd42514cedf4a146c41
data/.gitignore CHANGED
@@ -7,18 +7,17 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
 
10
-
11
10
  # rspec failure tracking
12
11
  .rspec_status
13
12
  *.idea
14
13
  *.iml
15
- Gemfile.lock
16
14
  *.gem
17
-
18
- # Environment files
15
+ Gemfile.lock
16
+ /spec/bootpay/card_billing/request_rest_billing_key_spec.rb
17
+ /spec/bootpay/__stage_test_unit_spec.rb
18
+ /spec/bootpay/__development_test_unit_spec.rb
19
+ /spec/bootpay/
20
+ .DS_Store
21
+ # 실 API 키가 들어가는 로컬 설정 — 커밋 금지 (26-08-24 추가)
19
22
  .env
20
- .env.*
21
- !.env.example
22
-
23
- # Tool runtime dirs
24
- .omj/
23
+ .env.local
data/.rspec CHANGED
@@ -1 +1,3 @@
1
+ --format documentation
2
+ --color
1
3
  --require spec_helper
data/CHANGELOG.md CHANGED
@@ -1,31 +1,117 @@
1
- ### 1.2.0
2
- - NodeJS @bootpay/backend-js@2.6.0 기준 PG API parity 보완. 신규 11개 메서드 추가 (기존 메서드 시그니처/URL 불변, 백워드 호환 유지).
3
- - 본인인증: `request_authentication`, `confirm_authentication`, `realarm_authentication`
4
- - 현금영수증: `cash_receipt_publish_on_receipt`, `cash_receipt_cancel_on_receipt`, `request_cash_receipt`, `cancel_cash_receipt`
5
- - 자동이체 빌링키: `request_subscribe_automatic_transfer_billing_key`, `publish_automatic_transfer_billing_key`
6
- - 단일 조회: `lookup_billing_key`, `subscribe_payment_reserve_lookup`
7
- - `Bootpay::Rest#request` 에 `params:` 옵션 추가 — DELETE 의 query-string (현금영수증 취소의 `cancel_username` / `cancel_message`) 등에 사용. 기존 호출은 영향 없음.
1
+ ### 3.1.0
8
2
 
9
- ### 1.0.6
10
- - request_link api 에 주석 추가
3
+ - 커머스 게시판 API 28종 SDK 메서드 추가 — FAQ · 공지사항 · 1:1 문의 · 상품문의(Q&A) · 상품평.
4
+ `BootpayStore::RestClient` 에 아래 메서드가 생긴다.
5
+ - FAQ(5): `faqs` `faq_detail` `faq_create` `faq_update` `faq_delete`
6
+ - 공지사항(5): `notices` `notice_detail` `notice_create` `notice_update` `notice_delete`
7
+ - 1:1 문의(6): `inquiries` `inquiry_detail` `inquiry_create` `inquiry_update` `inquiry_delete` `inquiry_answer`
8
+ - 상품문의(6): `product_qnas` `product_qna_detail` `product_qna_create` `product_qna_update` `product_qna_delete` `product_qna_answer`
9
+ - 상품평(6): `reviews` `review_detail` `review_create` `review_update` `review_delete` `review_reply`
10
+ 공통 규칙: 목록·단건·삭제 조회 계열은 `supervisor: true` 를 주면 운영자 모드(`Bootpay-Role: supervisor`)로
11
+ 비공개·숨김 글까지 다루고, 기본값은 고객 모드다. 등록·수정 계열 중 `faq_*` · `notice_*` 와
12
+ `*_answer` / `review_reply` 는 운영자 전용이다. 회원 대상 메서드는 `user_id` · `login_id` · `user_jwt`
13
+ 중 하나로 회원을 지정하며, `product_qna_create` 는 몰이 허용할 때 `guest_name` + `guest_password` 로
14
+ 비회원 작성도 된다. 모든 메서드가 `idempotency_key` 를 받고 안 주면 UUID 를 자동 생성한다.
15
+ 기존 상품 상세의 공개 상품평 목록(`GET /v1/products/:id/reviews`)은 그대로 쓴다.
16
+ - `alimtalk_send` / `alimtalk_send_bulk` 에 `webhook_url` 인자 추가(선택). 주면 그 건(bulk 는 요청 전체)의
17
+ 발송 성공·실패·문자 대체발송·예약취소 웹훅이 **이 주소로만** 가고 프로젝트 웹훅 설정은 쓰이지 않는다.
18
+ `https` 만 허용하며 2,000자를 넘으면 `3028` 로 거부된다(bulk 는 요청 전체가 거부). 서명은 프로젝트
19
+ 시크릿으로 하며, 시크릿만 필요하면 `alimtalk_webhook_rotate_secret` 으로 설정 없이 발급받을 수 있다.
20
+ ⚠️ 같은 `ref_id` 로 이미 접수·성공한 건을 다시 요청하면 기존 접수가 그대로 돌아와 새 주소는 무시된다.
21
+ 기본값이 `nil` 이라 기존 호출은 그대로 동작한다.
22
+ - 알림톡 API(`alimtalk_*` 메서드 35종) 요청 호스트 변경 — `/alimtalk/*` 경로는 커머스 API(`api.bootapi.com/v1`)가
23
+ 아니라 메시지 API(`message.bootapi.com`, 경로에 `/v1` 없음)로 보낸다. development 는 `dev-m.bootapi.com`,
24
+ stage 는 `stage-m.bootapi.com`. 경로·파라미터·응답은 그대로이며 메서드 시그니처 변경 없음.
25
+ 옛 주소(`api.bootapi.com/v1/alimtalk/*`)는 410 으로 응답한다.
26
+ - `BootpayStore::RestClient::MESSAGE_API` 상수와 `set_message_api_url(url)` 추가 — 알림톡 호스트만 따로 바꿀 수 있다.
27
+ 그 외 API 는 기존처럼 `API` / `set_api_url` 을 쓴다.
11
28
 
12
- ### 1.0.5
13
- - model별 주석 추가, extra에 불필요한 파라미터 제거
29
+ ### 3.0.1
14
30
 
15
- ### 1.0.4
31
+ `bootpay` 이름으로 낸 3.0.0 을 실제 배포본으로 점검하다 나온 수정 2건. **API 변경 없음.**
16
32
 
17
- - cancel에 refund 형식 수정
33
+ - `basic_or_request_access_token` 이 항상 `Bootpay::Response` 를 돌려준다.
34
+ client_key/secret_key 를 쓰면 Basic Auth 라 토큰 요청이 필요 없는데, 그 분기에서
35
+ `success?` 만 정의된 **맨 `Object`** 를 돌려주고 있었다. 다른 메서드처럼 `.data` 를 부르면
36
+ `NoMethodError` 로 죽는다. `success?` 동작은 그대로다(둘 다 true).
37
+ - gemspec 의 `required_ruby_version` 제거. 3.0.0 에서 `>= 2.6.0` 으로 선언했는데 **근거 없는
38
+ 추정값**이었다 — 실제 의존성 체인은 그보다 높은 Ruby 를 요구한다. 정확한 하한을 확인하기 전까지
39
+ 잘못된 값을 박아 두는 대신 선언하지 않는다(3.0.0 이전과 같은 상태).
40
+ - Gemfile 주석의 옛 gemspec 파일명 정정.
18
41
 
19
- ### 1.0.3
42
+ 검증(development, 읽기 전용): PG 토큰·Commerce 토큰·상품 조회·알림톡 수신거부/발신프로필 조회가
43
+ 모두 도메인 응답으로 성공. 알림톡 메서드 35개 로드 확인.
20
44
 
21
- - BankCode 추가
45
+ ### 3.0.0
22
46
 
23
- ### 1.0.2
24
- - certificate data type application/json 으로 수정
47
+ 2025-03 부터 alpha.1~alpha.4 로 쌓아 온 3.0 라인을 **정식 릴리스**한다.
25
48
 
26
- ### 1.0.1
27
- - namespace 변경
49
+ #### ⚠️ gem 이름이 `bootpay` 로 바뀐다
28
50
 
29
- ### 1.0.0
51
+ 이 버전부터 **정본 gem 은 `bootpay`** 다. 같은 코드가 `bootpay-backend-ruby` 3.0.0 으로도
52
+ 배포돼 있지만, **앞으로 신규 릴리스는 `bootpay` 로만 나간다.**
30
53
 
31
- - 첫 배포
54
+ ```ruby
55
+ # Gemfile
56
+ gem 'bootpay', '~> 3.0'
57
+ ```
58
+ ```bash
59
+ $ gem install bootpay
60
+ ```
61
+
62
+ - **`bootpay-backend-ruby` 사용자**: `require 'bootpay-backend-ruby'` 는 계속 동작한다
63
+ (호환 진입점을 남겨 두었다). Gemfile 만 `gem 'bootpay'` 로 바꾸면 코드 변경은 없다.
64
+ 기존 `bootpay-backend-ruby` 버전들은 RubyGems 에 그대로 남지만 갱신되지 않는다.
65
+ - **`bootpay` 1.x 사용자**: ⚠️ 1.x 와 3.0.0 은 **계보가 다르다.** 진입 클래스부터 바뀐다
66
+ (`Bootpay::Api` → `Bootpay::RestClient`). 1.x 를 계속 쓰려면 `gem 'bootpay', '~> 1.2'`
67
+ 로 버전을 고정하면 된다. 두 계보는 파일 경로가 겹치지 않는다.
68
+ - `Bootpay::VERSION` 이 정본 상수다. `Bootpay::V2_VERSION` 은 같은 값을 가리키는 별칭으로 남는다.
69
+
70
+ #### 추가
71
+ - **알림톡 v1 API 35종** — 발송·발송내역·공식 카탈로그·자체 템플릿·발신프로필·수신거부·알림톡 웹훅 7개 모듈
72
+ - 알림톡 요청은 `Idempotency-Key` 를 싣지 않는다 (멱등은 발송의 `ref_id` 로만 성립)
73
+ - `Bootpay-Role` 은 항상 `user` (스코프 키가 전부 `user:alimtalk_*`)
74
+ - ⚠️ **샌드박스가 없다** — 발송·OTP·발신프로필 등록·템플릿 등록/검수는 실제로 나가고 과금된다
75
+ - ⚠️ 템플릿 버튼은 **등록 API 와 발송 API 의 키 이름이 다르다**.
76
+ 등록은 `linkType`·`linkMo`·`linkPc`·`linkIos`·`linkAnd` 를 쓴다
77
+ (발송 포맷 `type`·`url_mobile` 로 보내면 서버가 거부한다)
78
+ - Commerce store 모듈 — mall_setting · order · order_subscription · supervisor · user ·
79
+ user_group · product · invoice · payment · webhook
80
+ - 내부용 storage 모듈
81
+
82
+ #### 변경
83
+ - 별건 현금영수증의 `pg` 를 **선택 파라미터**로 (미지정 시 가맹점에 설정된 기본 PG 로 발행).
84
+ 종전에는 필수라 기본 PG 를 쓰려는 가맹점도 PG명을 적어 넣어야 했다.
85
+
86
+ #### 배포 산출물
87
+ - gemspec 이 루트의 `tests_*.rb` · `*.gem` · `.env*` 도 제외한다.
88
+ 종전 규칙은 `test/`·`spec/`·`features/` **디렉터리**만 걸러서, 루트의
89
+ `tests_basic_auth_product_info.rb` 가 dev Commerce 키를 하드코딩한 채 gem 에 실려 나갔다.
90
+ - 해당 스크립트는 `BP_CLIENT_KEY`/`BP_SECRET_KEY` 환경변수 전용으로 바뀌었다.
91
+
92
+ #### 알려진 사항
93
+ - spec 스위트는 dev 서버 라이브 호출 기반이라 오프라인 회귀 게이트가 아니다.
94
+
95
+ ### 3.0.0-alpha.4
96
+ - 알림톡 v1 API 35종 추가 — 발송·발송내역·공식 카탈로그·자체 템플릿·발신프로필·수신거부·알림톡 웹훅 7개 모듈
97
+ - 알림톡 요청은 `Idempotency-Key` 를 싣지 않는다 (멱등은 발송의 `ref_id` 로만 성립)
98
+ - `Bootpay-Role` 은 항상 `user` (스코프 키가 전부 `user:alimtalk_*`)
99
+ - ⚠️ 샌드박스가 없다 — 발송·OTP·발신프로필 등록·템플릿 등록/검수는 실제로 나가고 과금된다
100
+ - 별건 현금영수증의 `pg` 를 선택 파라미터로 (미지정 시 가맹점 기본 PG 로 발행)
101
+ - mall_setting · order_subscription · supervisor · user · user_group · product · invoice ·
102
+ payment · order · store · webhook · storage 모듈 확충
103
+ - alpha.3(2025-03-27) 이후 63커밋 누적분을 릴리스한다
104
+
105
+ ### 3.0.0-alpha.1
106
+ - store api 추가
107
+ - 내부용 storage api 추가
108
+
109
+ ### 2.0.5
110
+ - 빌링결제 api 추가
111
+ - 계좌 빌링 결제 api 추가
112
+
113
+ ### 2.0.1
114
+ - readme update and republish
115
+
116
+ ### 2.0.0
117
+ - v1 -> v2 update
data/CODE_OF_CONDUCT.md CHANGED
@@ -39,7 +39,7 @@ This Code of Conduct applies within all community spaces, and also applies when
39
39
 
40
40
  ## Enforcement
41
41
 
42
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at rupy1014@gmail.com. All complaints will be reviewed and investigated promptly and fairly.
42
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at gosomi@udid.co.kr. All complaints will be reviewed and investigated promptly and fairly.
43
43
 
44
44
  All community leaders are obligated to respect the privacy and security of the reporter of any incident.
45
45
 
data/Gemfile CHANGED
@@ -7,6 +7,4 @@ gemspec
7
7
 
8
8
  gem "rake", "~> 13.0"
9
9
 
10
- # gem "rubocop", "~> 1.7"
11
- gem "rspec", "~> 3.0"
12
-
10
+ gem "rspec", "~> 3.0"
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2021 bootpay
3
+ Copyright (c) 2021 gosomi
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal