@nhnpayco-dev/mcp-devcenter 1.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.
Files changed (68) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +197 -0
  3. package/dist/data/api-specs.json +8135 -0
  4. package/dist/data/error-codes.json +2212 -0
  5. package/dist/data/guides/calculate.md +164 -0
  6. package/dist/data/guides/calculate.meta.json +22 -0
  7. package/dist/data/guides/membership-api.md +967 -0
  8. package/dist/data/guides/membership-api.meta.json +27 -0
  9. package/dist/data/guides/membership-check.md +30 -0
  10. package/dist/data/guides/membership-check.meta.json +24 -0
  11. package/dist/data/guides/membership-code.md +59 -0
  12. package/dist/data/guides/membership-code.meta.json +22 -0
  13. package/dist/data/guides/membership-sample.md +23 -0
  14. package/dist/data/guides/membership-sample.meta.json +22 -0
  15. package/dist/data/guides/membership-start.md +74 -0
  16. package/dist/data/guides/membership-start.meta.json +26 -0
  17. package/dist/data/guides/membership-vmem.md +512 -0
  18. package/dist/data/guides/membership-vmem.meta.json +24 -0
  19. package/dist/data/guides/offline-api.md +743 -0
  20. package/dist/data/guides/offline-api.meta.json +50 -0
  21. package/dist/data/guides/offline-authapi.md +1170 -0
  22. package/dist/data/guides/offline-authapi.meta.json +81 -0
  23. package/dist/data/guides/offline-check.md +33 -0
  24. package/dist/data/guides/offline-check.meta.json +24 -0
  25. package/dist/data/guides/offline-code.md +138 -0
  26. package/dist/data/guides/offline-code.meta.json +22 -0
  27. package/dist/data/guides/offline-sample.md +34 -0
  28. package/dist/data/guides/offline-sample.meta.json +22 -0
  29. package/dist/data/guides/offline-start.md +99 -0
  30. package/dist/data/guides/offline-start.meta.json +25 -0
  31. package/dist/data/guides/offline-vcat.md +370 -0
  32. package/dist/data/guides/offline-vcat.meta.json +35 -0
  33. package/dist/data/guides/online-autopay.md +495 -0
  34. package/dist/data/guides/online-autopay.meta.json +50 -0
  35. package/dist/data/guides/online-check.md +57 -0
  36. package/dist/data/guides/online-check.meta.json +24 -0
  37. package/dist/data/guides/online-code.md +367 -0
  38. package/dist/data/guides/online-code.meta.json +22 -0
  39. package/dist/data/guides/online-easypay.md +530 -0
  40. package/dist/data/guides/online-easypay.meta.json +50 -0
  41. package/dist/data/guides/online-etc.md +167 -0
  42. package/dist/data/guides/online-etc.meta.json +36 -0
  43. package/dist/data/guides/online-extra.md +190 -0
  44. package/dist/data/guides/online-extra.meta.json +35 -0
  45. package/dist/data/guides/online-extradata.md +103 -0
  46. package/dist/data/guides/online-extradata.meta.json +54 -0
  47. package/dist/data/guides/online-sample.md +23 -0
  48. package/dist/data/guides/online-sample.meta.json +22 -0
  49. package/dist/data/guides/online-start.md +122 -0
  50. package/dist/data/guides/online-start.meta.json +25 -0
  51. package/dist/data/guides/order-check.md +35 -0
  52. package/dist/data/guides/order-check.meta.json +24 -0
  53. package/dist/data/guides/order-code.md +143 -0
  54. package/dist/data/guides/order-code.meta.json +22 -0
  55. package/dist/data/guides/order-sample.md +31 -0
  56. package/dist/data/guides/order-sample.meta.json +22 -0
  57. package/dist/data/guides/order-start.md +94 -0
  58. package/dist/data/guides/order-start.meta.json +25 -0
  59. package/dist/data/guides/order-vorder.md +326 -0
  60. package/dist/data/guides/order-vorder.meta.json +24 -0
  61. package/dist/data/index.json +782 -0
  62. package/dist/data/sitemap.json +302 -0
  63. package/dist/data.js +42 -0
  64. package/dist/excel.js +320 -0
  65. package/dist/index.js +25 -0
  66. package/dist/tools.js +929 -0
  67. package/dist/validation-buffer.js +29 -0
  68. package/package.json +58 -0
@@ -0,0 +1,512 @@
1
+ # VMEM 연동하기
2
+
3
+ > **원본:** https://devcenter.payco.com/guide/membership/vmem/start?id=220401034
4
+ > **카테고리:** `membership-vmem`
5
+ > **포함 단계 (LNB):**
6
+ > - VMEM 연동하기 (`/guide/membership/vmem/start?id=220401034`)
7
+
8
+ ---
9
+
10
+ ## VMEM 연동하기
11
+
12
+ VMEM을 통한 멤버십 클라우드 연동 상세 내용을 안내합니다.
13
+
14
+ ### 연동 프로세스 이해하기
15
+
16
+ ![vMEM flow 이미지](/img/@vmem_flow.d2e54e73.png)
17
+
18
+
19
+
20
+ 1. #### VMEM 알아보기
21
+
22
+ VMEM 파일 구성도를 참고하여 각 파일 별 기능을 확인해 보세요.
23
+ ※ PAYCO VMEM은 Visual Studio 6.0 MFC DLL로 제작되었으며, DLL 연동을 위한 [윈도우용 샘플소스](/guide/membership/sample?id=220401039)를 제공하고 있습니다.
24
+
25
+ - POS는 VMEM.dll을 통해서 독립된 메인 프로그램인 VMEM.exe 와 연동되게 되며, VMEM.exe는 자체적으로
26
+ PAYCO 멤버십 서버와 통신 및 API요청, 처리를 진행하며 결과값을 수신하여 VMEM.dll로 전달하게 됩니다.
27
+
28
+
29
+
30
+
31
+ ![vMEM 구조도](/img/@vmem_info.1dfdf686.png)
32
+
33
+ - ##### VMEM 파일 구성
34
+
35
+ VMEM 파일명에 관한 설명 테이블
36
+
37
+ | 파일명 | 설명 |
38
+ | --- | --- |
39
+ | vMEM.exe | vMEM 메인프로그램 (모듈의 주요 기능 및 화면 UI 제공) |
40
+ | [vMEM.dll](/guide/membership/vmem/detail?id=220401034) | POS 프로그램과 vMEM 모듈의 인터페이스 연동 DLL |
41
+ | vMEMUpdate.exe | 모듈 자동 업데이트를 수행 |
42
+ | vMEMLogMgr.exe | 로그 수집/관리 및 장애접수 기능 수행 |
43
+ | [vMEM_ENV.ini](/guide/membership/vmem/env?id=220401034) | vMEM 프로그램 관련 환경설정 파일 |
44
+ | vMEM_SHOPINFO.ini | 매장관련 정보 환경설정 파일 |
45
+ | vMEMPinPad.dll | 서명패드 연동 DLL 파일 입니다. |
46
+ | PAYCO_SHOPINFO.ini | 결제 발생할 가맹점정보 파일 입니다. 처음 실행하여 가맹점정보를 입력하면 생성됩니다. |
47
+
48
+ VMEM 패키지 설치를 위해서는 DLL 파일([vMEM.dll](https://paycoscdn.toastoven.net/payco/offline/mem/real/base/vMEM.dll))이 설치되어야 합니다.
49
+ 관련 프로그램들은 DLL 함수 호출 시에 자동 설치가 됩니다. 함수 호출방법은 [DLL 함수사용](/guide/membership/vmem/dll?id=220401034)에서 자세히 확인해 보세요.
50
+ - ##### vMEM_ENV.ini 상세
51
+
52
+ VMEM 구동에 필수적으로 참조하는 환경설정 파일입니다.
53
+
54
+ **잠깐만요!**
55
+
56
+ 운영환경 배포시에 반드시 ENV_MODE(개발, 운영환경 여부)를 확인해서 배포해 주세요.
57
+
58
+ vMEM_ENV.ini에 관한 설명 테이블
59
+
60
+ | 옵션 | 설명 | 옵션값 |
61
+ | --- | --- | --- |
62
+ | ENV_MODE | 개발,운영 환경 모드 구분 설정 값입니다. | T : 개발환경 R : 운영환경 |
63
+ | KIOSK_POS | POS, KIOSK모드 구분 설정 값입니다. | N : POS Y : KIOSK |
64
+ | TLS_PORT | vMEM.exe 와 vMEM.dll간 내부 통신 포트 | |
65
+ | AUTO_REG | POS 정보 자동등록 기능 사용여부 | T : POS 자동등록 F : POS 수동등록 |
66
+ | SIGNPAD_YN | 고객직접입력버튼 사용 여부 | N : 미사용 Y : 사용 |
67
+ 2. #### DLL 함수 사용하기
68
+
69
+ DLL에서 제공하는 함수를 사용하여 멤버십 클라우드를 연동해 보세요.
70
+
71
+ - ##### vMEM.dll 상세
72
+
73
+ 라이브러리 함수 목록입니다. 필수로 사용해야 하는 함수들로 구성되어 있으니 사용순서와 결제 환경에 맞게 사용해 주세요.
74
+
75
+ vMEM_ENV.ini에 관한 설명 테이블
76
+
77
+ | 함수명 | 리턴값 | 파라미터 | 설명 |
78
+ | --- | --- | --- | --- |
79
+ | MemInit | Void | | 모듈에 전달한 값을 모두 초기화 합니다. - 멤버십 호출 시작시 반드시 넣어주세요 기존 거래에 의한 가비지 데이터들이 다음 거래에 영향을 미칠 수 있습니다. ( ExecAsyncApproval Sample 참조 ) |
80
+ | MemSetData | Void | (string, string) | 모듈에 값을 전달하기 위한 함수. 전달형식 : (항목 , 값) |
81
+ | MemGetData | String | (String) | 모듈에서 값을 가져오기 위한 함수 |
82
+ | [ExecDailyRun](/guide/membership/vmem/ed_run?id=220401034) | Void | | vMEM 상태 조회 및 vMEM 실행 함수입니다. 매장환경정보를 수신 및 처리합니다. |
83
+ | [ExecASyncApproval](/guide/membership/vmem/ea_approval?id=220401034) | Void | Window Handle | 비동기 방식의 멤버십 거래승인 화면을 호출합니다. |
84
+ | ExecASyncEnd | Void | Void | 멤버십 거래 승인을 종료합니다. - 멤버십 종료로 인한 Windows Message(45000)를 받으면 MemGetData로 필요한 데이터 수신 후 해당 함수로 멤버십 거래 승인을 종료합니다. ( ExecComplete Sample 참조 ) |
85
+ | [ExecComplete](/guide/membership/vmem/ex_com?id=220401034) | Void | Window Handle | 멤버십 주문 완료 처리를 합니다. |
86
+ | [ExecCancel](/guide/membership/vmem/ex_cancel?id=220401034) | Void | Window Handle | 주문 취소(반품)를 처리합니다. |
87
+ - ##### ExecASyncApproval 상세
88
+
89
+ 정상 주문거래시에 사용하는 승인 함수로 회원조회 및 카드조회를 하여 멤버십 적립(예약), 쿠폰사용, 스탬프사용,
90
+ 충전포인트 사용 등의 승인처리를 합니다. 해당 함수 호출 전 MemInit 호출로 이전 정보 초기화가 필요하며 MemSetData를
91
+ 통해 필요한 데이터를 모듈로 전달해야합니다. 결과값은 MemGetData를 통해 수신하며 ExecASyncApproval은
92
+ 비동기 방식으로 호출됩니다.
93
+
94
+ REQUEST
95
+
96
+ ExecASyncApproval 설명 테이블
97
+
98
+ | Parameter | 필수여부 | 형식 | 설명 |
99
+ | --- | --- | --- | --- |
100
+ | posOrderNo | N | String(30) | POS 주문번호 |
101
+ | orderAmt | Y | Number | 총 주문금액 |
102
+ | afterSaveYn | N | String | 추후 적립 여부 |
103
+ | bizNo | Y | String | 사업자 번호 |
104
+ | vanPosTid | Y | String | POS 식별 키 |
105
+ | orderProducts | Y | Array(string) | 주문 품목 정보 |
106
+
107
+ orderProducts
108
+
109
+ orderProducts에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
110
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
111
+
112
+ | Parameter | 필수여부 | 형식 | 설명 |
113
+ | --- | --- | --- | --- |
114
+ | productClassCd | Y | String(50) | 상품분류코드 |
115
+ | productClassNm | Y | String(50) | 상품분류 명 |
116
+ | productCd | Y | String(50) | 상품코드 |
117
+ | productNm | Y | String(200) | 상품명 |
118
+ | targetUnitPrice | Y | Number | 할인/적립 대상 단가 |
119
+ | unitPrice | Y | Number | 단가 |
120
+ | productCount | Y | Number | 수량 |
121
+ | productIdx | Y | Number | 상품순서 |
122
+ | couponAll | N | String | Y : 전체적용 , N : 개별적용 |
123
+ | srcIdx | N | Number | 파생된 원본 순서 |
124
+
125
+ - couponAll, srcIdx 항목은 값이 빈 값이더라도 항목으로는 반드시 있어야합니다.
126
+ - targetUnitPrice는 제휴사 자체할인 등 멤버십과 무관한 할인이 있다면 해당 할인을 제외한 멤버십이 적용/적립되어야 하는 금액입니다.
127
+
128
+ RESPONSE
129
+
130
+ | Parameter | 필수여부 | 형식 | 설명 |
131
+ | --- | --- | --- | --- |
132
+ | retCode | Y | String(5) | 응답코드 |
133
+ | retMessage | Y | String(1000) | 응답메세지 |
134
+ | membershipOrderNo | Y | String(20) | 멤버십 주문거래번호 |
135
+ | cardNo | N | String | 회원카드번호 (회원카드로 조회시) |
136
+ | memberNo | N | String | 회원번호(회원인 경우) |
137
+ | mediaType | Y | String(10) | 적립매체 구분 |
138
+ | mediaNo | N | String(20) | 적립매체 번호 |
139
+ | savePointUseApprovalNo | N | String(20) | 적립포인트사용 승인번호 |
140
+ | usedSavePoint | N | Number | 사용적립포인트 |
141
+ | couponType | N | String(10) | DISCOUNT / SAVE / PRODUCT |
142
+ | couponId | N | String | 쿠폰 아이디 |
143
+ | couponName | N | String(100) | 사용한 쿠폰 명 |
144
+ | couponNo | N | String(30) | 사용한 쿠폰 번호 |
145
+ | couponUseApprovalNo | N | String(20) | 쿠폰사용 승인번호 |
146
+ | dueSavePoint | N | Number | 적립예정금액 |
147
+ | totalDiscountAmount | N | Number | 총 할인금액 |
148
+ | discountProducts | N | Array(string) | 할인 적용 상품 |
149
+ | payPointUseInfos | N | Array(string) | 충전금 사용 결과 |
150
+ | orderProducts | Y | Array(string) | 주문 품목 정보 |
151
+ | phoneNo | N | String | 전화번호 |
152
+ | cashReceipt | N | Array(string) | 현금영수증 결과 |
153
+
154
+ discountProducts
155
+
156
+ discountProducts에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
157
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
158
+
159
+ | Parameter | 필수여부 | 형식 | 설명 |
160
+ | --- | --- | --- | --- |
161
+ | productClassCode | N | String(50) | 상품분류코드 |
162
+ | productCode | N | String(50) | 상품코드 |
163
+ | discountAmount | N | Number | 할인적용금액 |
164
+
165
+ payPointUseInfos
166
+
167
+ payPointUseInfos에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
168
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
169
+
170
+ | Parameter | 필수여부 | 형식 | 설명 |
171
+ | --- | --- | --- | --- |
172
+ | cardNo | N | String(20) | 카드번호 |
173
+ | payPointUseApprovalNo | N | String(20) | 충전금 사용 승인번호 |
174
+ | usedPayPoint | N | Number | 사용 충전금 |
175
+ | restPayPoint | N | Number | 충전금 잔액 |
176
+ | cashReceiptNoTypeCode | N | String | 현금영수증타입 |
177
+ | cashReceiptNo | N | String | 현금영수증 발행번호 |
178
+ | approvalAmt | N | Number | 현금영수증 금액 |
179
+
180
+ orderProducts
181
+
182
+ orderProducts에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
183
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
184
+
185
+ | Parameter | 필수여부 | 형식 | 설명 |
186
+ | --- | --- | --- | --- |
187
+ | productClassCd | Y | String(50) | 상품 분류 코드 |
188
+ | productClassNm | Y | String(50) | 상품 분류 명 |
189
+ | productCd | Y | String(50) | 상품 코드 |
190
+ | productNm | Y | String(200) | 상품명 |
191
+ | targetUnitPrice | Y | Number | 할인/적립 대상 단가 |
192
+ | unitPrice | Y | Number | 단가 |
193
+ | productCount | Y | Number | 수량 |
194
+ | productIdx | Y | Number | 상품 순서 |
195
+ | couponAll | N | String | Y : 전체적용 , N : 개별적용 |
196
+ | srcIdx | N | Number | 파생된 원본 순번 |
197
+
198
+ cashReceipt
199
+
200
+ cashReceipt에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
201
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
202
+
203
+ | Parameter | 필수여부 | 형식 | 설명 |
204
+ | --- | --- | --- | --- |
205
+ | cashReceiptNoTypeCode | N | String | 현금영수증 타입 |
206
+ | cashReceiptNo | N | String | 현금영수증 발행번호 |
207
+ | approvalAmt | N | Number | 현금영수증 금액 |
208
+
209
+ #### ※ 추가사항
210
+
211
+ - Approval 후 Complete가 실패 할 경우는 추후 적립으로 재적립이 가능해야 합니다.
212
+ - 추후적립은 영수증화면 추후적립 또는 멤버십 적립 버튼을 생성하여 afterSaveYn = Y 로 전달해야합니다.
213
+ - targetunitPrice는 unitPrice 보다 클 수 없습니다.
214
+
215
+ 호출 화면
216
+
217
+ ![호출 포스 화면 이미지](/img/@vmem_cashReceipt.5d02dd36.png)
218
+
219
+ ExecASyncApproval – 호출 Sample
220
+
221
+ **request**
222
+
223
+ ```
224
+ Call MemInit()
225
+ MemSetData("bizNo", "2421154321")
226
+ MemSetData("vanPosTid", "VANTEST-008")
227
+ MemSetData("posOrderNo", "TT_20190307_00003")
228
+ MemSetData("orderAmt", "81000")
229
+ MemSetData("afterSaveYn", "N")
230
+ MemSetData("orderProducts", "M005_전류_P001_모듬전_7500_15000_1_1___M004_중식류_P006_깐풍기_20000_20000_1_2___CP003_ETC_P005_컵보증금_300_0_1_1___")
231
+
232
+ Call ExecASyncApproval()
233
+ ```response**
234
+
235
+ ```
236
+ MemGetData("retCode") = "0"
237
+ MemGetData("retMessage") = "정상처리"
238
+ MemGetData("cardNo") = ""
239
+ MemGetData("couponName") = "SAM_2 증정(A,B분류군 모두 각10%할인)"
240
+ MemGetData("couponNo") = "8001450000000026"
241
+ MemGetData("couponType") = "DISCOUNT"
242
+ MemGetData("couponUseApprovalNo") = "2019030700145662"
243
+ MemGetData("discountProducts") = "M001_P001_540__M001_P001_540__M001_P002_540__M001_P002_540__M001_P004_630__M001_P004_630__"
244
+ MemGetData("dueSavePoint") = "0"
245
+ MemGetData("mediaType") = "PHONE"
246
+ MemGetData("mediaNo") = ""
247
+ MemGetData("memberNo") = "10002000823172004"
248
+ MemGetData("membershipOrderNo") = "2019030700248662"
249
+ MemGetData("orderProducts") = "M005_전류_P001_모듬전_7500_15000_1_1____M004_중식류_P006_깐풍기_20000_20000_1_2____"
250
+ MemGetData("payPointUseInfos") = "778100021000029421_2019030700145664_20000_282500_0_01011112222_1000__"
251
+ MemGetData("cashReceipt") = “0_01011112222_1000__”
252
+ MemGetData("savePointUseApprovalNo") = "2019030700145663"
253
+ MemGetData("totalDiscountAmount") = "3800"
254
+ MemGetData("usedSavePoint") = "7200"
255
+ ```위의 orderProducts와 discountProducts, payPointUseInfos의 _ 는 실제 언더바(_)가 아닌 FS(0x1c) 또는 RS(0x1e)를 표시합니다.
256
+ - ##### ExecComplete 상세
257
+
258
+ ExecASyncApproval 함수를 호출 한 후 다시 POS 프로그램으로 돌아와 외부결제 ( 현금, 카드 등 )를 처리 한 후
259
+ 멤버십 주문 완료처리를 하는 함수입니다. 이후 MemGetData 함수를 이용하여 결과값을 받아옵니다.
260
+
261
+ REQUEST
262
+
263
+ ExecComplete 설명 테이블
264
+
265
+ | Parameter | 필수여부 | 형식 | 설명 |
266
+ | --- | --- | --- | --- |
267
+ | posOrderNo | Y | String(30) | POS 주문번호 |
268
+ | orderAmt | Y | Number | 총 주문금액 |
269
+ | membershipOrderNo | N | String(20) | 멤버십 주문거래번호 |
270
+ | cardNo | N | String | 회원 카드번호 |
271
+ | memberNo | N | String | 회원번호 |
272
+ | mediaType | Y | String(10) | 적립매체 구분 |
273
+ | mediaNo | N | String(20) | 적립매체 번호 |
274
+ | bizNo | Y | String | 사업자 번호 |
275
+ | vanPosTid | Y | String | POS 식별키 |
276
+ | phoneNo | N | String | 전화번호 |
277
+ | orderStampSaveYn | N | String(1) | 스탬프적립여부 |
278
+ | greenDepositAmount | N | Number | 컵보증금 * 컵보증금 상품 UnitPrice의 총 합 |
279
+ | orderProducts | Y | Array(string) | 주문 품목 정보 |
280
+ | outerPayMethods | N | Array(string) | 외부결제 정보 |
281
+
282
+ orderProducts
283
+
284
+ orderProducts에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
285
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
286
+
287
+ orderProducts 상세 파라미터 테이블
288
+
289
+ | Parameter | 필수여부 | 형식 | 설명 |
290
+ | --- | --- | --- | --- |
291
+ | productClassCd | Y | String(50) | 상품분류코드 |
292
+ | productClassNm | Y | String(50) | 상품분류 명 |
293
+ | productCd | Y | String(50) | 상품코드 |
294
+ | productNm | Y | String(200) | 상품명 |
295
+ | targetUnitPrice | Y | Number | 할인/적립 대상 단가 |
296
+ | unitPrice | Y | Number | 단가 |
297
+ | productCount | Y | Number | 수량 |
298
+ | stampSaveYn | Y | String(1) | 스탬프적립여부 |
299
+
300
+ outerPayMethods
301
+
302
+ outerPayMethods에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
303
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
304
+
305
+ outerPayMethods 상세 파라미터 테이블
306
+
307
+ | Parameter | 필수여부 | 형식 | 설명 |
308
+ | --- | --- | --- | --- |
309
+ | payCode | N | String(2) | 외부결제수단 코드 |
310
+ | payAmount | N | Number | 결제금액 |
311
+ | approvalNo | N | String(30) | 승인번호 |
312
+
313
+ RESPONSE
314
+
315
+ RESPONSE 응답 파라미터 테이블
316
+
317
+ | Parameter | 필수여부 | 형식 | 설명 |
318
+ | --- | --- | --- | --- |
319
+ | retCode | Y | String(5) | 응답코드 |
320
+ | retMessage | Y | String(100) | 응답메세지 |
321
+ | membershipOrderNo | Y | String(20) | 멤버십 주문거래번호 |
322
+ | saveTargetMemberNo | N | String(20) | 적립대상 회원번호 |
323
+ | saveTargetCardNo | N | String(20) | 적립대상 카드번호 |
324
+ | memberName | N | String(50) | 회원명 |
325
+ | generatedSavePoint | N | Number | 발생한 적립 포인트 |
326
+ | savePoint | N | Number | 적립포인트 잔액 |
327
+ | saveCount | N | Number | 적립 횟수 |
328
+ | saveTargetPhoneNo | N | String | 적립대상 휴대폰번호 |
329
+ | saveImpossibleCause | N | String | 포인트 적립불가 사유 |
330
+ | stampSaveImpossibleCause | N | String | 스탬프 적립불가 사유 |
331
+ | savedStamps | N | Array(string) | 스탬프 정보 |
332
+
333
+ savedStamps
334
+
335
+ savedStamps에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
336
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
337
+
338
+ savedStamps 상세 파라미터 테이블
339
+
340
+ | Parameter | 필수여부 | 형식 | 설명 |
341
+ | --- | --- | --- | --- |
342
+ | stampId | N | String | 스탬프 아이디 |
343
+ | stampName | Y | String(50) | 스탬프 명 |
344
+ | generatedCount | N | Number | 발생한 스탬프 개수 |
345
+ | accumulatedCount | N | Number | 현재 스탬프 개수 |
346
+ | couponIssueYn | N | String(1) | 쿠폰발급 여부 |
347
+ | stampFinishCount | Y | Number | 1판당 스탬프 수(스탬프 완성 수) |
348
+
349
+ #### ※ 추가사항
350
+
351
+ - Approval 후 외부 결제(신용카드 포함)가 이루어진 뒤 complete 할 때 complete 가 실패를 한다고 해서
352
+ 외부 결제나 Approval까지 취소를 하면 안됩니다. Complete가 실패를 해도 다른 결제 수단에 영향을 주면
353
+ 안되며 실패 시 추후 적립을 통해서 재적립을 하게 하면 됩니다.
354
+
355
+ ExecComplete – 호출 Sample
356
+
357
+ **request**
358
+
359
+ ```
360
+ MemSetData("bizNo", "2421154321")
361
+ MemSetData("vanPosTid", "VANTEST-008")
362
+ MemSetData("posOrderNo", "TT_20190307_00003")
363
+ MemSetData("orderAmt", "81000")
364
+ MemSetData("membershipOrderNo", "2019030700248662")
365
+ MemSetData("cardNo", "")
366
+ MemSetData("memberNo", "10002000823172004")
367
+ MemSetData("mediaType", "PHONE")
368
+ MemSetData("mediaNo", "")
369
+ MemSetData("greenDepositAmount ", "300")
370
+ 2019-03-07 08:59:44 MemSetData("orderProducts", "M005_전류_P001_모듬전_7500_15000_1_1___M004_중식류_P006_깐풍기_20000_20000_1_2___CP003_ETC_P005_컵보증금_300_0_1_1___”)
371
+ 데이터그리드뷰로 부터 PayMethods 생성.
372
+ 데이터그리드뷰로 부터 PayMethods 생성 완료.
373
+ MemSetData("outerPayMethods", "99_7200_2019030700145663_99_20000_2019030700145664_23_50000_44936770_")
374
+ Call ExecComplete()
375
+ ```response**
376
+
377
+ ```
378
+ MemGetData("retCode") = "0"
379
+ MemGetData("retMessage") = "정상처리"
380
+ MemGetData("membershipOrderNo") = "2019030700248662"
381
+ MemGetData("saveTargetMemberNo") = "10002000823172004"
382
+ MemGetData("saveTargetCardNo") = ""
383
+ MemGetData("memberName") = "안재만"
384
+ MemGetData("generatedSavePoint") = "2433"
385
+ MemGetData("savePoint") = "50638"
386
+ MemGetData("saveCount") = "138"
387
+ MemGetData("savedStamps") = "“
388
+
389
+ Call ExecAsyncEnd()
390
+ ```위의 orderProducts와 discountProducts, payPointUseInfos의 _ 는 실제 언더바(_)가 아닌 FS(0x1c) 또는 RS(0x1e)를 표시합니다.
391
+ - ##### ExecCancel 상세
392
+
393
+ 주문 취소를 처리하는 함수입니다. 원 주문의 멤버십 주문 거래번호를 모듈로 전달해야 합니다.
394
+
395
+ REQUEST
396
+
397
+ REQUEST
398
+
399
+ | Parameter | 필수여부 | 형식 | 설명 |
400
+ | --- | --- | --- | --- |
401
+ | membershipOrderNo | Y | String(20) | 멤버십 주문거래 번호 |
402
+ | posOrderCancelNo | N | String(30) | POS 취소 주문번호 |
403
+ | bizNo | Y | String | 사업자 번호 |
404
+ | vanPosTid | Y | String | POS 식별키 |
405
+ | outerPayMethods | Y | Array(string) | 외부결제 정보 |
406
+
407
+ outerPayMethods
408
+
409
+ outerPayMethods에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
410
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
411
+
412
+ REQUEST
413
+
414
+ | Parameter | 필수여부 | 형식 | 설명 |
415
+ | --- | --- | --- | --- |
416
+ | payCode | Y | String(20) | 외부결제수단 코드 |
417
+ | payAmount | Y | Number | 결제금액 |
418
+ | originApprovalNo | N | String(30) | 카드취소시 원 승인번호 |
419
+ | cancelApprovalNo | N | String(30) | 취소승인번호 |
420
+
421
+ RESPONSE
422
+
423
+ RESPONSE
424
+
425
+ | Parameter | 필수여부 | 형식 | 설명 |
426
+ | --- | --- | --- | --- |
427
+ | retCode | Y | String(5) | 응답코드 |
428
+ | retMessage | Y | String(1000) | 응답메세지 |
429
+ | cancelmembershipOrderNo | N | String(20) | 멤버십 취소 주문거래번호 |
430
+ | cancelSavePoint | N | Number | 차감 적립포인트 |
431
+ | savePoint | N | Number | 적립포인트 잔액 |
432
+ | cancelPayMethods | N | Array(String) | 취소 결제 정보 |
433
+ | cancelStamps | N | Array(String) | 취소 스탬프 정보 |
434
+ | cashReceiptList | N | Array(String) | 현금영수증 결과 |
435
+
436
+ cancelPayMethods
437
+
438
+ cancelPayMethods에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
439
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
440
+
441
+ REQUEST
442
+
443
+ | Parameter | 필수여부 | 형식 | 설명 |
444
+ | --- | --- | --- | --- |
445
+ | payCode | Y | String(2) | 결제수단 코드 |
446
+ | payName | Y | String(50) | 결제수단 명 |
447
+ | payInfo | N | String(30) | 매체정보 |
448
+ | cancelAmount | N | Number | 취소금액 |
449
+ | restPoint | N | Number | 충전금 잔액 |
450
+ | originApproveNo | N | Number | 충전금카드 사용시 승인번호 |
451
+ | cancelApproveNo | N | Number | 충전금카드 취소 승인번호 |
452
+
453
+ cancelStamps
454
+
455
+ cancelStamps에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
456
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
457
+
458
+ REQUEST
459
+
460
+ | Parameter | 필수여부 | 형식 | 설명 |
461
+ | --- | --- | --- | --- |
462
+ | stampName | N | String(50) | 스탬프 명 |
463
+ | cancelCount | N | Number | 취소 스탬프 개수 |
464
+ | accumulatedCount | N | Number | 현재 스탬프 개수 |
465
+ | stampFinishCount | N | Number | 1판당 스탬프 수 |
466
+ | couponIssueCancelYn | N | String(1) | 쿠폰발급 취소 여부 |
467
+
468
+ cashReceiptList
469
+
470
+ cashReceiptList에는 FS(0x1c) 구분자를 이용하여 parameter 정보를 연속해서 붙여서 배열을 구성하여 전달합니다.
471
+ Record 구분은 RS(0x1e) 구분자를 이용합니다. 해당 리스트를 결과 건수만큼 반복합니다.
472
+
473
+ REQUEST
474
+
475
+ | Parameter | 필수여부 | 형식 | 설명 |
476
+ | --- | --- | --- | --- |
477
+ | cashReceiptNoTypeCode | N | String | 현금영수증 타입 |
478
+ | cashReceiptNo | N | String | 현금영수증 발행번호 |
479
+ | approvalAmt | N | Number | 현금영수증 금액 |
480
+
481
+ #### ※ 추가사항
482
+
483
+ - 주문 취소의 경우 외부 결제 취소를 먼저 해야 합니다.
484
+
485
+ ExecCancel – 호출 Sample
486
+
487
+ **request**
488
+
489
+ ```
490
+ MemSetData("bizNo", "2421154321")
491
+ MemSetData("vanPosTid", "VANTEST-008")
492
+ MemSetData("membershipOrderNo", "2019031100248789")
493
+ MemSetData("posOrderCancelNo", "TT_20190311_00001")
494
+ MemSetData("outerPayMethods", "23_10000_17652530_")
495
+ Call ExecCancel()
496
+ ```response**
497
+
498
+ ```
499
+ MemGetData("retCode") = "0"
500
+ MemGetData("retMessage") = "정상처리"
501
+ MemGetData("cancelMembershipOrderNo") = "2019031100248789"
502
+ MemGetData("cancelSavePoint") = "1037"
503
+ MemGetData("savePoint") = "51285"
504
+ MemGetData("cancelPayMethods") = "23_신용카드__10000_0____11_충전금 사용_778100021000029421_7500_327500_2019031100145917_2019031100146056__11_충전금 사용_778100021000052657_8500_404000_2019031100145918_2019031100146057__"
505
+ MemGetData("cancelStamps") = ""
506
+ MemGetData("cashReceiptList") = "0_01011112222_7500__0_01033334444_8500__"
507
+ ```- 위의 orderProducts와 discountProducts, payPointUseInfos의 _ 는 실제 언더바(_)가 아닌 FS(0x1c) 또는 RS(0x1e)를 표시합니다.
508
+ - ##### ExecDailyRun 상세
509
+
510
+ 멤버십 프로그램 실행 확인 및 멤버십 사용 상태를 조회하며, 멤버십 프로그램이 실행되어 있지 않으면 멤버십 프로그램을 구동합니다.
511
+ 멤버십 상태가 정상이면 매장환경 정보 수신을 요청하며, 사용은 멤버십 프로그램을 실행하기 위해 POS(솔루션) 실행 시 1회 호출합니다.
512
+ 동기화방식으로 호출되고 함수 호출 완료 후 POS 프로그램을 진행합니다.
@@ -0,0 +1,24 @@
1
+ {
2
+ "slug": "membership-vmem",
3
+ "id": "220401034",
4
+ "url": "https://devcenter.payco.com/guide/membership/vmem/start?id=220401034",
5
+ "path": "/guide/membership/vmem/start",
6
+ "title": "VMEM 연동하기",
7
+ "menu_text": "VMEM 연동하기",
8
+ "sections": [
9
+ {
10
+ "label": "VMEM 연동하기",
11
+ "path": "/guide/membership/vmem/start",
12
+ "id": "220401034"
13
+ }
14
+ ],
15
+ "h2_sections": [
16
+ "VMEM 연동하기"
17
+ ],
18
+ "h3_sections": [
19
+ "연동 프로세스 이해하기"
20
+ ],
21
+ "table_count": 21,
22
+ "code_block_count": 6,
23
+ "text_length": 14063
24
+ }