@portone/mcp-server 0.13.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.
- package/LICENSE-APACHE +201 -0
- package/LICENSE-MIT +21 -0
- package/README.md +165 -0
- package/assets/docs/README.md +27 -0
- package/assets/docs/api/backward-compatibility.md +40 -0
- package/assets/docs/blog/posts/2024-02/v2-oom.md +341 -0
- package/assets/docs/blog/posts/2024-02/v2-webhook.md +314 -0
- package/assets/docs/blog/posts/2024-02/v2-zio.md +529 -0
- package/assets/docs/blog/posts/2024-03/tgs.md +238 -0
- package/assets/docs/blog/posts/2024-04/gcp-datastream.md +307 -0
- package/assets/docs/blog/posts/2024-04/solid.md +558 -0
- package/assets/docs/blog/posts/2024-07/v2-event-sourcing-basic.md +231 -0
- package/assets/docs/help/admin-console/analytics/content32.md +270 -0
- package/assets/docs/help/admin-console/console-account/content31.md +94 -0
- package/assets/docs/help/admin-console/console_home/content34.md +82 -0
- package/assets/docs/help/admin-console/integration/content28.md +79 -0
- package/assets/docs/help/admin-console/payment-service/content29.md +260 -0
- package/assets/docs/help/admin-console/pg-settlement/content30.md +352 -0
- package/assets/docs/help/admin-console/platform-settlement/content33-1.md +201 -0
- package/assets/docs/help/api-sdk-2024-12-19.md +64 -0
- package/assets/docs/help/api-sdk-2025-01-15.md +84 -0
- package/assets/docs/help/applepay.md +46 -0
- package/assets/docs/help/content100000.md +46 -0
- package/assets/docs/help/content100002.md +52 -0
- package/assets/docs/help/content100004.md +29 -0
- package/assets/docs/help/content100014.md +50 -0
- package/assets/docs/help/content100015.md +20 -0
- package/assets/docs/help/content100016.md +28 -0
- package/assets/docs/help/content100020.md +28 -0
- package/assets/docs/help/content100022.md +40 -0
- package/assets/docs/help/content100023.md +21 -0
- package/assets/docs/help/content100024.md +25 -0
- package/assets/docs/help/content100025.md +40 -0
- package/assets/docs/help/content100026.md +20 -0
- package/assets/docs/help/content100027.md +24 -0
- package/assets/docs/help/content100029.md +29 -0
- package/assets/docs/help/content100030.md +82 -0
- package/assets/docs/help/content100033.md +44 -0
- package/assets/docs/help/content100035.md +34 -0
- package/assets/docs/help/content100036.md +14 -0
- package/assets/docs/help/content100037.md +16 -0
- package/assets/docs/help/content100038.md +32 -0
- package/assets/docs/help/content100039.md +28 -0
- package/assets/docs/help/content100040.md +31 -0
- package/assets/docs/help/content100041.md +37 -0
- package/assets/docs/help/content100044.md +15 -0
- package/assets/docs/help/content100045.md +21 -0
- package/assets/docs/help/content100046.md +34 -0
- package/assets/docs/help/content100047.md +32 -0
- package/assets/docs/help/content100048.md +25 -0
- package/assets/docs/help/content100049.md +20 -0
- package/assets/docs/help/content100052.md +147 -0
- package/assets/docs/help/content100053.md +40 -0
- package/assets/docs/help/content100054.md +18 -0
- package/assets/docs/help/content100055.md +37 -0
- package/assets/docs/help/content100056.md +15 -0
- package/assets/docs/help/content100057.md +28 -0
- package/assets/docs/help/content100058.md +36 -0
- package/assets/docs/help/content100059.md +23 -0
- package/assets/docs/help/content100060.md +43 -0
- package/assets/docs/help/content200001.md +21 -0
- package/assets/docs/help/content200002.md +38 -0
- package/assets/docs/help/content200005.md +30 -0
- package/assets/docs/help/content200012.md +91 -0
- package/assets/docs/help/content200013.md +52 -0
- package/assets/docs/help/content200015.md +41 -0
- package/assets/docs/help/content200016.md +30 -0
- package/assets/docs/help/content200017.md +39 -0
- package/assets/docs/help/content200018.md +105 -0
- package/assets/docs/help/content200019.md +59 -0
- package/assets/docs/help/content200020.md +42 -0
- package/assets/docs/help/content200023.md +54 -0
- package/assets/docs/help/content200024.md +49 -0
- package/assets/docs/help/content200025.md +68 -0
- package/assets/docs/help/content200027.md +34 -0
- package/assets/docs/help/content200028.md +70 -0
- package/assets/docs/help/content200029.md +71 -0
- package/assets/docs/help/content200030.md +67 -0
- package/assets/docs/help/content200032.md +39 -0
- package/assets/docs/help/content200033.md +21 -0
- package/assets/docs/help/content200034.md +34 -0
- package/assets/docs/help/content200037.md +38 -0
- package/assets/docs/help/content200038.md +50 -0
- package/assets/docs/help/content200039.md +45 -0
- package/assets/docs/help/content200040.md +15 -0
- package/assets/docs/help/content200043.md +23 -0
- package/assets/docs/help/content200044.md +33 -0
- package/assets/docs/help/content200045.md +25 -0
- package/assets/docs/help/content200046.md +104 -0
- package/assets/docs/help/content200048.md +34 -0
- package/assets/docs/help/content200049.md +54 -0
- package/assets/docs/help/content200050.md +43 -0
- package/assets/docs/help/content200051.md +81 -0
- package/assets/docs/help/content51.md +38 -0
- package/assets/docs/help/content61.md +165 -0
- package/assets/docs/help/core-service/channel-setting/danal.md +170 -0
- package/assets/docs/help/core-service/channel-setting/daou.md +118 -0
- package/assets/docs/help/core-service/channel-setting/eximbay.md +136 -0
- package/assets/docs/help/core-service/channel-setting/inicis.md +340 -0
- package/assets/docs/help/core-service/channel-setting/kakaopay.md +107 -0
- package/assets/docs/help/core-service/channel-setting/kcp_channel.md +235 -0
- package/assets/docs/help/core-service/channel-setting/kicc.md +114 -0
- package/assets/docs/help/core-service/channel-setting/kpn.md +93 -0
- package/assets/docs/help/core-service/channel-setting/ksnet.md +116 -0
- package/assets/docs/help/core-service/channel-setting/mobilians.md +107 -0
- package/assets/docs/help/core-service/channel-setting/naverpay.md +179 -0
- package/assets/docs/help/core-service/channel-setting/nice.md +210 -0
- package/assets/docs/help/core-service/channel-setting/payco.md +124 -0
- package/assets/docs/help/core-service/channel-setting/paymentwall.md +107 -0
- package/assets/docs/help/core-service/channel-setting/paypal.md +247 -0
- package/assets/docs/help/core-service/channel-setting/settle.md +123 -0
- package/assets/docs/help/core-service/channel-setting/smartro.md +164 -0
- package/assets/docs/help/core-service/channel-setting/smilepay.md +83 -0
- package/assets/docs/help/core-service/channel-setting/tosspay.md +168 -0
- package/assets/docs/help/core-service/channel-setting/tosspayments.md +232 -0
- package/assets/docs/help/core-service/channel-setting/welcome.md +110 -0
- package/assets/docs/help/core-service/how-to-use/additional-danal.md +71 -0
- package/assets/docs/help/core-service/how-to-use/additional-daou.md +65 -0
- package/assets/docs/help/core-service/how-to-use/additional-eximbay.md +54 -0
- package/assets/docs/help/core-service/how-to-use/additional-inicis.md +97 -0
- package/assets/docs/help/core-service/how-to-use/additional-kakaopay.md +56 -0
- package/assets/docs/help/core-service/how-to-use/additional-kcp.md +53 -0
- package/assets/docs/help/core-service/how-to-use/additional-kicc.md +67 -0
- package/assets/docs/help/core-service/how-to-use/additional-ksnet.md +68 -0
- package/assets/docs/help/core-service/how-to-use/additional-mobilians.md +71 -0
- package/assets/docs/help/core-service/how-to-use/additional-naverpay-order.md +69 -0
- package/assets/docs/help/core-service/how-to-use/additional-naverpay.md +72 -0
- package/assets/docs/help/core-service/how-to-use/additional-nice.md +112 -0
- package/assets/docs/help/core-service/how-to-use/additional-payco.md +68 -0
- package/assets/docs/help/core-service/how-to-use/additional-settle.md +70 -0
- package/assets/docs/help/core-service/how-to-use/additional-smartro.md +70 -0
- package/assets/docs/help/core-service/how-to-use/additional-tosspay.md +57 -0
- package/assets/docs/help/core-service/how-to-use/additional-tosspayments.md +47 -0
- package/assets/docs/help/core-service/how-to-use/additional-welcome.md +72 -0
- package/assets/docs/help/core-service/how-to-use/cancel-deadline-by-paymethod.md +68 -0
- package/assets/docs/help/core-service/how-to-use/cancel-guide-using-admin-console.md +49 -0
- package/assets/docs/help/core-service/how-to-use/cancel-reversal.md +114 -0
- package/assets/docs/help/core-service/how-to-use/cellphone-identity-verification.md +62 -0
- package/assets/docs/help/core-service/how-to-use/content200000.md +72 -0
- package/assets/docs/help/core-service/how-to-use/content200009.md +83 -0
- package/assets/docs/help/core-service/how-to-use/danal-contract.md +82 -0
- package/assets/docs/help/core-service/how-to-use/daou-contract.md +82 -0
- package/assets/docs/help/core-service/how-to-use/eximbay-contract.md +75 -0
- package/assets/docs/help/core-service/how-to-use/high-risk-industry.md +554 -0
- package/assets/docs/help/core-service/how-to-use/identity-verification-value.md +61 -0
- package/assets/docs/help/core-service/how-to-use/impossible-partial-cancel.md +53 -0
- package/assets/docs/help/core-service/how-to-use/information-pg.md +151 -0
- package/assets/docs/help/core-service/how-to-use/inicis-contract.md +95 -0
- package/assets/docs/help/core-service/how-to-use/inicis-vat.md +45 -0
- package/assets/docs/help/core-service/how-to-use/inicis-vbank-refund.md +45 -0
- package/assets/docs/help/core-service/how-to-use/kakao-contract.md +73 -0
- package/assets/docs/help/core-service/how-to-use/kakaopay-contract.md +41 -0
- package/assets/docs/help/core-service/how-to-use/kcp-contract.md +82 -0
- package/assets/docs/help/core-service/how-to-use/kcp-vat.md +39 -0
- package/assets/docs/help/core-service/how-to-use/kcp-vbank-refund.md +46 -0
- package/assets/docs/help/core-service/how-to-use/kicc-contract.md +81 -0
- package/assets/docs/help/core-service/how-to-use/ksnet-contract.md +78 -0
- package/assets/docs/help/core-service/how-to-use/mobilians-contract.md +81 -0
- package/assets/docs/help/core-service/how-to-use/naverpay-contract.md +86 -0
- package/assets/docs/help/core-service/how-to-use/naverpay-order-1.md +36 -0
- package/assets/docs/help/core-service/how-to-use/naverpay-order-contract.md +88 -0
- package/assets/docs/help/core-service/how-to-use/naverpay-order-diff.md +66 -0
- package/assets/docs/help/core-service/how-to-use/naverpay-order-review-items.md +66 -0
- package/assets/docs/help/core-service/how-to-use/naverpay-review-items.md +199 -0
- package/assets/docs/help/core-service/how-to-use/nice-contract.md +81 -0
- package/assets/docs/help/core-service/how-to-use/open-immediately.md +60 -0
- package/assets/docs/help/core-service/how-to-use/other-hosting-company.md +38 -0
- package/assets/docs/help/core-service/how-to-use/payco-contract.md +74 -0
- package/assets/docs/help/core-service/how-to-use/payment-settlement-method.md +30 -0
- package/assets/docs/help/core-service/how-to-use/paymentwall-contract.md +85 -0
- package/assets/docs/help/core-service/how-to-use/paypal-contract.md +66 -0
- package/assets/docs/help/core-service/how-to-use/point-service.md +293 -0
- package/assets/docs/help/core-service/how-to-use/refund-date.md +66 -0
- package/assets/docs/help/core-service/how-to-use/requirements.md +100 -0
- package/assets/docs/help/core-service/how-to-use/settle-contract.md +79 -0
- package/assets/docs/help/core-service/how-to-use/shopify-available-list.md +65 -0
- package/assets/docs/help/core-service/how-to-use/shopify-guide.md +62 -0
- package/assets/docs/help/core-service/how-to-use/small-business-commission-fee.md +55 -0
- package/assets/docs/help/core-service/how-to-use/smartro-contract.md +77 -0
- package/assets/docs/help/core-service/how-to-use/test-mode-cancel.md +63 -0
- package/assets/docs/help/core-service/how-to-use/tosspay-contract.md +82 -0
- package/assets/docs/help/core-service/how-to-use/tosspayments-contract.md +82 -0
- package/assets/docs/help/core-service/how-to-use/welcome-contract.md +81 -0
- package/assets/docs/help/core-service/how-to-use/withsoft-guide.md +69 -0
- package/assets/docs/help/core-service/how-to-use/wordpress-available-pg.md +49 -0
- package/assets/docs/help/core-service/how-to-use/wordpress-setting.md +50 -0
- package/assets/docs/help/core-service/payment-type/billing-key.md +72 -0
- package/assets/docs/help/core-service/payment-type/content200003.md +39 -0
- package/assets/docs/help/core-service/payment-type/content200007.md +176 -0
- package/assets/docs/help/core-service/payment-type/content200036.md +37 -0
- package/assets/docs/help/core-service/payment-type/content200042.md +150 -0
- package/assets/docs/help/core-service/payment-type/content200047.md +215 -0
- package/assets/docs/help/core-service/payment-type/content200052.md +142 -0
- package/assets/docs/help/core-service/payment-type/content200053.md +128 -0
- package/assets/docs/help/core-service/payment-type/crossborder.md +132 -0
- package/assets/docs/help/core-service/payment-type/eximbay-international.md +96 -0
- package/assets/docs/help/core-service/payment-type/hub-service-fee.md +79 -0
- package/assets/docs/help/core-service/payment-type/inicis-easypay-hub-fee.md +45 -0
- package/assets/docs/help/core-service/payment-type/inicis-international.md +65 -0
- package/assets/docs/help/core-service/payment-type/internationl-high-risk-industry.md +267 -0
- package/assets/docs/help/core-service/payment-type/internationl-pg.md +42 -0
- package/assets/docs/help/core-service/payment-type/kcp-easypay-hub-apply.md +49 -0
- package/assets/docs/help/core-service/payment-type/kcp-international.md +60 -0
- package/assets/docs/help/core-service/payment-type/nice-easypay-hub-fee.md +72 -0
- package/assets/docs/help/core-service/payment-type/nice-international.md +51 -0
- package/assets/docs/help/core-service/payment-type/paymentwall-international.md +84 -0
- package/assets/docs/help/core-service/payment-type/paypal-international.md +86 -0
- package/assets/docs/help/core-service/payment-type/paypal-payment-status.md +55 -0
- package/assets/docs/help/core-service/payment-type/schedule-logic-guide.md +49 -0
- package/assets/docs/help/core-service/payment-type/schedule-requirement.md +111 -0
- package/assets/docs/help/core-service/payment-type/schedule-validity-guide.md +68 -0
- package/assets/docs/help/core-service/payment-type/tosspayment-international.md +54 -0
- package/assets/docs/help/core-service/payment-type/tosspayments-easypay-hub-fee.md +42 -0
- package/assets/docs/help/core-service/payment-type/webhook-re-send.md +41 -0
- package/assets/docs/help/faq/console-faq/2-depth-auth.md +53 -0
- package/assets/docs/help/faq/console-faq/add-admin-account.md +42 -0
- package/assets/docs/help/faq/console-faq/change-console-url.md +51 -0
- package/assets/docs/help/faq/console-faq/impossible-login.md +30 -0
- package/assets/docs/help/faq/console-faq/payment-list.md +45 -0
- package/assets/docs/help/faq/console-faq/sub-store-mgnt.md +97 -0
- package/assets/docs/help/faq/general-inquiry/change-business-number.md +32 -0
- package/assets/docs/help/faq/general-inquiry/confirm-process.md +118 -0
- package/assets/docs/help/faq/general-inquiry/content200004.md +55 -0
- package/assets/docs/help/faq/general-inquiry/content200006.md +86 -0
- package/assets/docs/help/faq/general-inquiry/content200011.md +24 -0
- package/assets/docs/help/faq/general-inquiry/content200031.md +194 -0
- package/assets/docs/help/faq/general-inquiry/content200041.md +21 -0
- package/assets/docs/help/faq/general-inquiry/contract-checkpoint.md +49 -0
- package/assets/docs/help/faq/general-inquiry/main-user.md +56 -0
- package/assets/docs/help/faq/general-inquiry/platform-contract-method.md +67 -0
- package/assets/docs/help/faq/general-inquiry/platform-contract-pg.md +234 -0
- package/assets/docs/help/faq/general-inquiry/portone-advantages.md +71 -0
- package/assets/docs/help/faq/general-inquiry/real-channel-info.md +70 -0
- package/assets/docs/help/faq/general-inquiry/what-is-the-small-business-fee.md +41 -0
- package/assets/docs/help/faq/payment-faq/business-card-available.md +55 -0
- package/assets/docs/help/faq/payment-faq/business-info-change.md +96 -0
- package/assets/docs/help/faq/payment-faq/cancel-deadline.md +32 -0
- package/assets/docs/help/faq/payment-faq/cancel-guide.md +48 -0
- package/assets/docs/help/faq/payment-faq/cash-receipt-guide.md +64 -0
- package/assets/docs/help/faq/payment-faq/content200022.md +73 -0
- package/assets/docs/help/faq/payment-faq/pg-max-min-amount.md +158 -0
- package/assets/docs/help/faq/payment-faq/receipt-guide.md +38 -0
- package/assets/docs/help/faq/payment-faq/tosspayments-cash-receipt.md +32 -0
- package/assets/docs/help/faq/payment-faq/vbank-info.md +35 -0
- package/assets/docs/help/faq/payment-faq/vbank-service-detail.md +67 -0
- package/assets/docs/help/faq/payment-faq/vbank-test-guide.md +65 -0
- package/assets/docs/help/faq/platform-faq/platform_function_partnerbulkupload.md +190 -0
- package/assets/docs/help/faq/platform-faq/platform_infosec.md +56 -0
- package/assets/docs/help/faq/platform-faq/platform_nocode_guide.md +104 -0
- package/assets/docs/help/faq/platform-faq/platform_payout_guide.md +75 -0
- package/assets/docs/help/faq/platform-faq/platform_policymanagement_calculator.md +73 -0
- package/assets/docs/help/faq/platform-faq/platform_settlmentandpayout_guide.md +83 -0
- package/assets/docs/help/faq/platform-faq/platform_tax_setting_guide.md +108 -0
- package/assets/docs/help/faq/platform-faq/taxinvoice_guide.md +107 -0
- package/assets/docs/help/faq/platform-faq/taxinvoice_signupemail.md +67 -0
- package/assets/docs/help/holidays.md +29 -0
- package/assets/docs/help/notice-kakaopay-2025-06-30.md +47 -0
- package/assets/docs/help/platform-2024-11-07.md +73 -0
- package/assets/docs/help/platform-2024-11-25.md +91 -0
- package/assets/docs/help/platform-2024-12-10.md +71 -0
- package/assets/docs/help/platform-2025-03-04.md +54 -0
- package/assets/docs/help/platform-2025-04-03.md +105 -0
- package/assets/docs/help/platform-2025-04-08.md +120 -0
- package/assets/docs/help/platform-2025-05-14.md +70 -0
- package/assets/docs/help/platform-2025-1-16.md +65 -0
- package/assets/docs/help/platform-2025-2-10.md +75 -0
- package/assets/docs/help/platform-2025-2-13.md +43 -0
- package/assets/docs/help/portone-service/portone-service/content50.md +80 -0
- package/assets/docs/help/pricing/pg/domestic-and-oversea-fees.md +34 -0
- package/assets/docs/help/pricing/portone/portone-pricing.md +116 -0
- package/assets/docs/help/procedure/payment-integration/real-integration.md +43 -0
- package/assets/docs/help/procedure/payment-integration/test-integration.md +91 -0
- package/assets/docs/help/procedure/pg-application/content53.md +49 -0
- package/assets/docs/help/procedure/pg-application/content54.md +136 -0
- package/assets/docs/help/procedure/pg-application/content59.md +53 -0
- package/assets/docs/help/procedure/pg-application/start.md +154 -0
- package/assets/docs/help/procedure/recommendation/package.md +98 -0
- package/assets/docs/help/procedure/service-addition/add-service.md +98 -0
- package/assets/docs/help/recon_issue1.md +25 -0
- package/assets/docs/help/recon_issue2.md +29 -0
- package/assets/docs/help/service/identity-verification/identity-verification.md +65 -0
- package/assets/docs/help/service/integration-type/integration-type.md +49 -0
- package/assets/docs/help/service/payment-type/payment-type.md +100 -0
- package/assets/docs/help/service/paymethod/paymethod.md +100 -0
- package/assets/docs/help/service/pg/pg-service-list.md +339 -0
- package/assets/docs/help/service/version/portone-version.md +61 -0
- package/assets/docs/opi/ko/console/guide/account.md +111 -0
- package/assets/docs/opi/ko/console/guide/api-keys.md +34 -0
- package/assets/docs/opi/ko/console/guide/billing-payments.md +312 -0
- package/assets/docs/opi/ko/console/guide/channel-manage.md +303 -0
- package/assets/docs/opi/ko/console/guide/connect.md +84 -0
- package/assets/docs/opi/ko/console/guide/home.md +37 -0
- package/assets/docs/opi/ko/console/guide/integration.md +18 -0
- package/assets/docs/opi/ko/console/guide/list.md +183 -0
- package/assets/docs/opi/ko/console/guide/pay.md +14 -0
- package/assets/docs/opi/ko/console/guide/payments.md +298 -0
- package/assets/docs/opi/ko/console/guide/promotion.md +140 -0
- package/assets/docs/opi/ko/console/guide/readme.md +22 -0
- package/assets/docs/opi/ko/console/guide/reg.md +159 -0
- package/assets/docs/opi/ko/console/guide/smartrouting.md +74 -0
- package/assets/docs/opi/ko/console/pg.md +92 -0
- package/assets/docs/opi/ko/etc/recon.md +286 -0
- package/assets/docs/opi/ko/extra/confirm-process/readme-v1.md +98 -0
- package/assets/docs/opi/ko/extra/confirm-process/readme-v2.md +152 -0
- package/assets/docs/opi/ko/extra/identity-verification/readme-v2.md +261 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/all/0.md +35 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/all/1.md +44 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/all/2.md +75 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/all/3.md +134 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/all/readme.md +17 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/credit-auth/1.md +35 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/credit-auth/2.md +78 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/credit-auth/3.md +75 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/credit-auth/4.md +134 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/credit-auth/readme.md +17 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/phone/1.md +37 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/phone/2.md +86 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/phone/3.md +77 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/phone/4.md +149 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/phone/readme.md +19 -0
- package/assets/docs/opi/ko/extra/identity-verification/v1/readme.md +9 -0
- package/assets/docs/opi/ko/extra/link-pay/readme-v1.md +235 -0
- package/assets/docs/opi/ko/extra/plugins/readme-v1.md +7 -0
- package/assets/docs/opi/ko/extra/plugins/shopify/readme-v1.md +54 -0
- package/assets/docs/opi/ko/extra/plugins/shopify/shopify/shopify-1.md +16 -0
- package/assets/docs/opi/ko/extra/plugins/shopify/shopify/shopify-2.md +32 -0
- package/assets/docs/opi/ko/extra/plugins/shopify/shopify/shopify-3.md +16 -0
- package/assets/docs/opi/ko/extra/plugins/shopify/shopify/shopify-4.md +35 -0
- package/assets/docs/opi/ko/extra/plugins/shopify/shopify/shopify-5.md +27 -0
- package/assets/docs/opi/ko/extra/plugins/wordpress/button.md +166 -0
- package/assets/docs/opi/ko/extra/plugins/wordpress/edd.md +56 -0
- package/assets/docs/opi/ko/extra/plugins/wordpress/readme-v1.md +10 -0
- package/assets/docs/opi/ko/extra/plugins/wordpress/woocommerce/payment.md +62 -0
- package/assets/docs/opi/ko/extra/plugins/wordpress/woocommerce/readme.md +30 -0
- package/assets/docs/opi/ko/extra/plugins/wordpress/woocommerce/subscription.md +60 -0
- package/assets/docs/opi/ko/extra/plugins/wordpress/woocommerce/vbank.md +64 -0
- package/assets/docs/opi/ko/extra/promotion/console-guide.md +148 -0
- package/assets/docs/opi/ko/extra/promotion/integration.md +769 -0
- package/assets/docs/opi/ko/extra/promotion/intro.md +31 -0
- package/assets/docs/opi/ko/extra/promotion/refund.md +316 -0
- package/assets/docs/opi/ko/extra/smart-routing/console-guide.md +73 -0
- package/assets/docs/opi/ko/extra/smart-routing/integration.md +1324 -0
- package/assets/docs/opi/ko/extra/smart-routing/intro.md +155 -0
- package/assets/docs/opi/ko/integration/cancel/v1/basic.md +324 -0
- package/assets/docs/opi/ko/integration/cancel/v1/virtual-account.md +99 -0
- package/assets/docs/opi/ko/integration/cancel/v2/readme.md +378 -0
- package/assets/docs/opi/ko/integration/checklist/readme-v1.md +83 -0
- package/assets/docs/opi/ko/integration/pg/v1/blue.md +99 -0
- package/assets/docs/opi/ko/integration/pg/v1/danal.md +409 -0
- package/assets/docs/opi/ko/integration/pg/v1/daou/readme.md +305 -0
- package/assets/docs/opi/ko/integration/pg/v1/daou/undefined.md +214 -0
- package/assets/docs/opi/ko/integration/pg/v1/eximbay.md +242 -0
- package/assets/docs/opi/ko/integration/pg/v1/hyphen.md +196 -0
- package/assets/docs/opi/ko/integration/pg/v1/inicis.md +444 -0
- package/assets/docs/opi/ko/integration/pg/v1/kakaopay.md +207 -0
- package/assets/docs/opi/ko/integration/pg/v1/kcp-v2-identity-verification.md +188 -0
- package/assets/docs/opi/ko/integration/pg/v1/kg.md +177 -0
- package/assets/docs/opi/ko/integration/pg/v1/kicc.md +308 -0
- package/assets/docs/opi/ko/integration/pg/v1/ksnet/readme.md +533 -0
- package/assets/docs/opi/ko/integration/pg/v1/ksnet/warning.md +175 -0
- package/assets/docs/opi/ko/integration/pg/v1/naver.md +558 -0
- package/assets/docs/opi/ko/integration/pg/v1/newtoss/readme.md +503 -0
- package/assets/docs/opi/ko/integration/pg/v1/newtoss/warning.md +364 -0
- package/assets/docs/opi/ko/integration/pg/v1/nhn-kcp.md +1186 -0
- package/assets/docs/opi/ko/integration/pg/v1/nice-v2/billing-api-caution.md +150 -0
- package/assets/docs/opi/ko/integration/pg/v1/nice-v2/payment-caution.md +429 -0
- package/assets/docs/opi/ko/integration/pg/v1/nice-v2/readme.md +364 -0
- package/assets/docs/opi/ko/integration/pg/v1/nice.md +319 -0
- package/assets/docs/opi/ko/integration/pg/v1/payco.md +201 -0
- package/assets/docs/opi/ko/integration/pg/v1/paymentwall.md +283 -0
- package/assets/docs/opi/ko/integration/pg/v1/paypal.md +158 -0
- package/assets/docs/opi/ko/integration/pg/v1/readme.md +73 -0
- package/assets/docs/opi/ko/integration/pg/v1/rt/readme.md +501 -0
- package/assets/docs/opi/ko/integration/pg/v1/rt/warning.md +297 -0
- package/assets/docs/opi/ko/integration/pg/v1/settle/mybank.md +304 -0
- package/assets/docs/opi/ko/integration/pg/v1/settle/readme.md +185 -0
- package/assets/docs/opi/ko/integration/pg/v1/smartro-v2/api.md +197 -0
- package/assets/docs/opi/ko/integration/pg/v1/smartro-v2/caution.md +387 -0
- package/assets/docs/opi/ko/integration/pg/v1/smartro-v2/readme.md +293 -0
- package/assets/docs/opi/ko/integration/pg/v1/smartro.md +104 -0
- package/assets/docs/opi/ko/integration/pg/v1/smilepay.md +97 -0
- package/assets/docs/opi/ko/integration/pg/v1/spb/readme.md +441 -0
- package/assets/docs/opi/ko/integration/pg/v1/spb/stc.md +226 -0
- package/assets/docs/opi/ko/integration/pg/v1/spb/warning.md +729 -0
- package/assets/docs/opi/ko/integration/pg/v1/toss-brandpay/module.md +227 -0
- package/assets/docs/opi/ko/integration/pg/v1/toss-brandpay/readme.md +404 -0
- package/assets/docs/opi/ko/integration/pg/v1/toss-brandpay/warning.md +81 -0
- package/assets/docs/opi/ko/integration/pg/v1/toss-brandpay/widget.md +152 -0
- package/assets/docs/opi/ko/integration/pg/v1/toss.md +112 -0
- package/assets/docs/opi/ko/integration/pg/v1/tosspay-v2/caution.md +65 -0
- package/assets/docs/opi/ko/integration/pg/v1/tosspay-v2/readme.md +308 -0
- package/assets/docs/opi/ko/integration/pg/v1/tosspay.md +110 -0
- package/assets/docs/opi/ko/integration/pg/v1/welcome/api.md +229 -0
- package/assets/docs/opi/ko/integration/pg/v1/welcome/caution.md +517 -0
- package/assets/docs/opi/ko/integration/pg/v1/welcome/readme.md +795 -0
- package/assets/docs/opi/ko/integration/pg/v2/danal-identity-verification.md +121 -0
- package/assets/docs/opi/ko/integration/pg/v2/eximbay-v2.md +964 -0
- package/assets/docs/opi/ko/integration/pg/v2/hyphen.md +205 -0
- package/assets/docs/opi/ko/integration/pg/v2/inicis-jp.md +403 -0
- package/assets/docs/opi/ko/integration/pg/v2/inicis-unified-identity-verification.md +89 -0
- package/assets/docs/opi/ko/integration/pg/v2/inicis-v2.md +1598 -0
- package/assets/docs/opi/ko/integration/pg/v2/kakaopay.md +108 -0
- package/assets/docs/opi/ko/integration/pg/v2/kcp-v2-identity-verification.md +291 -0
- package/assets/docs/opi/ko/integration/pg/v2/kcp-v2.md +1273 -0
- package/assets/docs/opi/ko/integration/pg/v2/kpn.md +1133 -0
- package/assets/docs/opi/ko/integration/pg/v2/ksnet.md +526 -0
- package/assets/docs/opi/ko/integration/pg/v2/naverpay.md +186 -0
- package/assets/docs/opi/ko/integration/pg/v2/nice-v2.md +868 -0
- package/assets/docs/opi/ko/integration/pg/v2/payletter-global.md +62 -0
- package/assets/docs/opi/ko/integration/pg/v2/paypal-v2.md +1874 -0
- package/assets/docs/opi/ko/integration/pg/v2/readme.md +194 -0
- package/assets/docs/opi/ko/integration/pg/v2/smartro-v2.md +1043 -0
- package/assets/docs/opi/ko/integration/pg/v2/tosspay-v2.md +433 -0
- package/assets/docs/opi/ko/integration/pg/v2/tosspayments.md +551 -0
- package/assets/docs/opi/ko/integration/pg/v2/welcome.md +1441 -0
- package/assets/docs/opi/ko/integration/ready/readme.md +1069 -0
- package/assets/docs/opi/ko/integration/start/v1/auth.md +483 -0
- package/assets/docs/opi/ko/integration/start/v1/non-auth.md +420 -0
- package/assets/docs/opi/ko/integration/start/v1/readme.md +9 -0
- package/assets/docs/opi/ko/integration/start/v2/billing/issue.md +122 -0
- package/assets/docs/opi/ko/integration/start/v2/billing/payment.md +41 -0
- package/assets/docs/opi/ko/integration/start/v2/billing/readme.md +24 -0
- package/assets/docs/opi/ko/integration/start/v2/billing/schedule.md +54 -0
- package/assets/docs/opi/ko/integration/start/v2/checkout.md +258 -0
- package/assets/docs/opi/ko/integration/start/v2/keyin.md +54 -0
- package/assets/docs/opi/ko/integration/start/v2/readme.md +120 -0
- package/assets/docs/opi/ko/integration/using-ai-tools.md +140 -0
- package/assets/docs/opi/ko/integration/virtual-account/readme.md +268 -0
- package/assets/docs/opi/ko/integration/webhook/readme-v1.md +242 -0
- package/assets/docs/opi/ko/integration/webhook/readme-v2.md +599 -0
- package/assets/docs/opi/ko/quick-guide/payment.md +3305 -0
- package/assets/docs/opi/ko/readme.md +193 -0
- package/assets/docs/opi/ko/support/agency-and-tier.md +51 -0
- package/assets/docs/opi/ko/support/code-info/card-code.md +29 -0
- package/assets/docs/opi/ko/support/code-info/code.md +22 -0
- package/assets/docs/opi/ko/support/code-info/pg-1.md +161 -0
- package/assets/docs/opi/ko/support/code-info/pg-2.md +41 -0
- package/assets/docs/opi/ko/support/code-info/pg-3.md +36 -0
- package/assets/docs/opi/ko/support/code-info/pg.md +41 -0
- package/assets/docs/opi/ko/support/code-info/portone-code.md +15 -0
- package/assets/docs/opi/ko/support/code-info/readme.md +20 -0
- package/assets/docs/opi/ko/support/contact.md +23 -0
- package/assets/docs/opi/ko/support/faq/undefined.md +60 -0
- package/assets/docs/opi/ko/support/flow.md +24 -0
- package/assets/docs/opi/ko/support/redirect.md +26 -0
- package/assets/docs/opi/ko/support/tax.md +142 -0
- package/assets/docs/opi/ko/support/tls-support.md +497 -0
- package/assets/docs/platform/ko/guides/dictionary.md +20 -0
- package/assets/docs/platform/ko/guides/process.md +33 -0
- package/assets/docs/platform/ko/guides/webhook.md +171 -0
- package/assets/docs/platform/ko/readme.md +64 -0
- package/assets/docs/platform/ko/usages/client.md +17 -0
- package/assets/docs/platform/ko/usages/contract.md +126 -0
- package/assets/docs/platform/ko/usages/discount.md +89 -0
- package/assets/docs/platform/ko/usages/fee.md +97 -0
- package/assets/docs/platform/ko/usages/order.md +1666 -0
- package/assets/docs/platform/ko/usages/partner.md +115 -0
- package/assets/docs/platform/ko/using-ai-tools.md +140 -0
- package/assets/docs/release-notes/api-sdk/2023-04-24.md +10 -0
- package/assets/docs/release-notes/api-sdk/2023-05-08.md +22 -0
- package/assets/docs/release-notes/api-sdk/2023-05-12.md +24 -0
- package/assets/docs/release-notes/api-sdk/2023-05-22.md +46 -0
- package/assets/docs/release-notes/api-sdk/2023-05-25.md +15 -0
- package/assets/docs/release-notes/api-sdk/2023-06-19.md +20 -0
- package/assets/docs/release-notes/api-sdk/2023-07-03.md +26 -0
- package/assets/docs/release-notes/api-sdk/2023-07-10.md +35 -0
- package/assets/docs/release-notes/api-sdk/2023-07-17.md +31 -0
- package/assets/docs/release-notes/api-sdk/2023-07-31.md +14 -0
- package/assets/docs/release-notes/api-sdk/2023-08-31.md +29 -0
- package/assets/docs/release-notes/api-sdk/2023-12-15.md +12 -0
- package/assets/docs/release-notes/api-sdk/2024-01-08.md +36 -0
- package/assets/docs/release-notes/api-sdk/2024-01-11.md +18 -0
- package/assets/docs/release-notes/api-sdk/2024-01-25.md +35 -0
- package/assets/docs/release-notes/api-sdk/2024-01-30.md +19 -0
- package/assets/docs/release-notes/api-sdk/2024-02-23.md +26 -0
- package/assets/docs/release-notes/api-sdk/2024-03-08.md +12 -0
- package/assets/docs/release-notes/api-sdk/2024-03-15.md +30 -0
- package/assets/docs/release-notes/api-sdk/2024-03-25.md +23 -0
- package/assets/docs/release-notes/api-sdk/2024-04-01.md +37 -0
- package/assets/docs/release-notes/api-sdk/2024-04-05.md +10 -0
- package/assets/docs/release-notes/api-sdk/2024-04-12.md +32 -0
- package/assets/docs/release-notes/api-sdk/2024-05-08.md +34 -0
- package/assets/docs/release-notes/api-sdk/2024-05-14.md +17 -0
- package/assets/docs/release-notes/api-sdk/2024-06-03.md +48 -0
- package/assets/docs/release-notes/api-sdk/2024-06-17.md +37 -0
- package/assets/docs/release-notes/api-sdk/2024-06-19.md +39 -0
- package/assets/docs/release-notes/api-sdk/2024-06-20.md +13 -0
- package/assets/docs/release-notes/api-sdk/2024-07-04.md +15 -0
- package/assets/docs/release-notes/api-sdk/2024-07-11.md +47 -0
- package/assets/docs/release-notes/api-sdk/2024-09-05.md +36 -0
- package/assets/docs/release-notes/api-sdk/2024-09-27.md +27 -0
- package/assets/docs/release-notes/api-sdk/2024-12-19.md +52 -0
- package/assets/docs/release-notes/api-sdk/2025-01-15.md +76 -0
- package/assets/docs/release-notes/api-sdk/2025-05-19.md +49 -0
- package/assets/docs/release-notes/console/2023-04-24.md +41 -0
- package/assets/docs/release-notes/console/2023-05-08.md +6 -0
- package/assets/docs/release-notes/console/2023-05-22.md +15 -0
- package/assets/docs/release-notes/console/2023-07-05.md +29 -0
- package/assets/docs/release-notes/console/2023-07-07.md +25 -0
- package/assets/docs/release-notes/console/2023-07-17.md +16 -0
- package/assets/docs/release-notes/console/2023-08-23.md +17 -0
- package/assets/docs/release-notes/console/2023-09-12.md +16 -0
- package/assets/docs/release-notes/console/2023-12-27.md +24 -0
- package/assets/docs/release-notes/console/2024-09-05.md +23 -0
- package/assets/docs/release-notes/platform/2023-08-31.md +16 -0
- package/assets/docs/release-notes/platform/2023-11-08.md +37 -0
- package/assets/docs/release-notes/platform/2023-11-14.md +28 -0
- package/assets/docs/release-notes/platform/2023-12-15.md +11 -0
- package/assets/docs/release-notes/platform/2024-05-20.md +31 -0
- package/assets/docs/release-notes/platform/2024-05-29.md +159 -0
- package/assets/docs/release-notes/platform/2024-06-05.md +30 -0
- package/assets/docs/release-notes/platform/2024-07-05.md +49 -0
- package/assets/docs/release-notes/platform/2024-07-11.md +62 -0
- package/assets/docs/release-notes/platform/2024-07-30.md +44 -0
- package/assets/docs/release-notes/platform/2024-08-07.md +37 -0
- package/assets/docs/release-notes/platform/2024-08-22.md +111 -0
- package/assets/docs/release-notes/platform/2024-10-21.md +75 -0
- package/assets/docs/release-notes/platform/2024-11-07.md +65 -0
- package/assets/docs/release-notes/platform/2024-11-25.md +82 -0
- package/assets/docs/release-notes/platform/2024-12-10.md +61 -0
- package/assets/docs/release-notes/platform/2025-01-16.md +56 -0
- package/assets/docs/release-notes/platform/2025-02-10.md +67 -0
- package/assets/docs/release-notes/platform/2025-02-13.md +27 -0
- package/assets/docs/release-notes/platform/2025-03-04.md +49 -0
- package/assets/docs/release-notes/platform/2025-03-17.md +40 -0
- package/assets/docs/release-notes/platform/2025-04-03.md +96 -0
- package/assets/docs/release-notes/platform/2025-04-08.md +119 -0
- package/assets/docs/release-notes/platform/2025-05-14.md +77 -0
- package/assets/docs/release-notes/platform/2025-07-02.md +64 -0
- package/assets/docs/release-notes/platform/2025-07-07.md +55 -0
- package/assets/docs/schema/browser-sdk.yml +6349 -0
- package/assets/docs/schema/v1.openapi.json +11632 -0
- package/assets/docs/schema/v1.openapi.yml +11489 -0
- package/assets/docs/schema/v2.graphql +13849 -0
- package/assets/docs/schema/v2.openapi.json +47721 -0
- package/assets/docs/schema/v2.openapi.yml +34749 -0
- package/assets/docs/sdk/ko/readme.md +56 -0
- package/assets/docs/sdk/ko/v1-mobile-sdk/readme.md +31 -0
- package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/cft-rt.md +32 -0
- package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/cft.md +108 -0
- package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/load-module-rt.md +10 -0
- package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/load-module.md +55 -0
- package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/payrq.md +502 -0
- package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/payrt.md +300 -0
- package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/readme.md +46 -0
- package/assets/docs/sdk/ko/v1-sdk/javascript-sdk-old/readme.md +33 -0
- package/assets/docs/sdk/ko/v2-mobile-sdk/android.md +268 -0
- package/assets/docs/sdk/ko/v2-mobile-sdk/react-native.md +239 -0
- package/assets/docs/sdk/ko/v2-mobile-sdk/readme.md +30 -0
- package/assets/docs/sdk/ko/v2-sdk/billing-key-and-pay-request.md +26 -0
- package/assets/docs/sdk/ko/v2-sdk/billing-key-and-pay-response.md +15 -0
- package/assets/docs/sdk/ko/v2-sdk/billing-key-request.md +24 -0
- package/assets/docs/sdk/ko/v2-sdk/billing-key-response.md +15 -0
- package/assets/docs/sdk/ko/v2-sdk/changelog.md +8 -0
- package/assets/docs/sdk/ko/v2-sdk/identity-verification-request.md +15 -0
- package/assets/docs/sdk/ko/v2-sdk/identity-verification-response.md +15 -0
- package/assets/docs/sdk/ko/v2-sdk/load-issue-billing-key-ui-request.md +15 -0
- package/assets/docs/sdk/ko/v2-sdk/load-issue-billing-key-ui-response.md +23 -0
- package/assets/docs/sdk/ko/v2-sdk/load-payment-ui-request.md +15 -0
- package/assets/docs/sdk/ko/v2-sdk/load-payment-ui-response.md +23 -0
- package/assets/docs/sdk/ko/v2-sdk/payment-request.md +15 -0
- package/assets/docs/sdk/ko/v2-sdk/payment-response.md +15 -0
- package/assets/docs/sdk/ko/v2-sdk/readme.md +73 -0
- package/assets/docs/sdk/ko/v2-sdk/update-load-issue-billing-key-ui-request.md +15 -0
- package/assets/docs/sdk/ko/v2-sdk/update-load-payment-ui-request.md +15 -0
- package/assets/docs/sdk/ko/v2-server-sdk/javascript.md +170 -0
- package/assets/docs/sdk/ko/v2-server-sdk/jvm.md +170 -0
- package/assets/docs/sdk/ko/v2-server-sdk/python.md +152 -0
- package/assets/docs/sdk/ko/v2-server-sdk/readme.md +259 -0
- package/assets/docs/v1-docs-full.md +36540 -0
- package/assets/docs/v2-docs-full.md +34980 -0
- package/assets/docs/website-links.md +331 -0
- package/assets/instructions.md +19 -0
- package/manifest.json +50 -0
- package/package.json +66 -0
- package/server/index.js +1764 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 포트원 V2 이야기 - Event Sourcing으로 결제 시스템 만들기 (기본편)
|
|
3
|
+
description: 포트원 V2 시스템의 근간을 이루고 있는 기술 중 하나인 Event Sourcing에 대해 소개합니다.
|
|
4
|
+
author: BaekGeunYoung
|
|
5
|
+
date: 2024-07-07T15:00:00.000Z
|
|
6
|
+
tags:
|
|
7
|
+
- Core V2
|
|
8
|
+
- Backend
|
|
9
|
+
- Event Sourcing
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
안녕하세요. 포트원 V2 이야기로 다시 돌아온 포트원 엔지니어 Kai입니다.
|
|
13
|
+
포트원 V2 시스템을 구성하고 있는 핵심 기술들 중 이번에 소개해 드릴 것은 Event Sourcing이라는 기술입니다.
|
|
14
|
+
Event Sourcing이 무엇인지, 포트원이 결제 시스템을 구축하는 데에 왜 이 기술을 도입하기로 결정했는지,
|
|
15
|
+
도입을 결정하면서 함께 신경 쓴 것들은 무엇인지, 직접 기술을 적용하면서 느낀 챌린지는 무엇인지 등에 대해 정리해 보도록 하겠습니다.
|
|
16
|
+
(참고로 Event Sourcing에 관한 글은 기본편과 심화편으로 나누어 업로드될 예정입니다!)
|
|
17
|
+
|
|
18
|
+
## Event Sourcing이란?
|
|
19
|
+
|
|
20
|
+
Event Sourcing이란 DB에 데이터를 저장하는 방식에 관한 기술입니다.
|
|
21
|
+
일반적으로 백엔드 어플리케이션을 만들 때, DB에는 보통 State(상태)를 저장하곤 합니다.
|
|
22
|
+
이러한 방식은 직관적이어서 이해하기 쉽다는 장점이 있지만, 항상 엔티티의 최종 상태만을 담고 있기 때문에 변경된 기록을 정확하게 추적할 수 없고,
|
|
23
|
+
한 데이터에 대해 검색 및 변경 요청이 빈번하게 발생하기 때문에 동시성으로 인한 문제를 피하려 많은 고민을 해야 합니다.
|
|
24
|
+
|
|
25
|
+
반면 Event Sourcing 방식에서는 종 상태만을 저장하는 것이 아니라, 엔티티의 상태를 변경하기 위해 발생하는 하나하나의 사건(Event)들을 모두 DB에 저장합니다.
|
|
26
|
+
때문에 특정 엔티티에 대한 변경 내역을 모두 추적할 수 있으며, 이벤트는 한 번 발생한 이후 수정되지 않기 때문에 Update나 Delete 없이 항상 Insert 작업만 일어납니다.
|
|
27
|
+
|
|
28
|
+
## 결제와 Event Sourcing
|
|
29
|
+
|
|
30
|
+
포트원은 이러한 Event Sourcing이라는 기술을 왜 도입하기로 결정했을까요?
|
|
31
|
+
아시다시피 포트원은 오랜 시간 동안 PG 통합 결제 모듈을 제공해왔고 그동안 많은 시행착오와 노하우를 쌓아왔습니다.
|
|
32
|
+
Event Sourcing을 사용하기로 결정하는 데에는 기존의 시스템을 운영하면서 가지고 있던 아쉬움들이 큰 영향을 주었는데요,
|
|
33
|
+
크게 두 가지 정도를 소개 드릴 수 있을 것 같습니다.
|
|
34
|
+
|
|
35
|
+
### 1. 정확한 내역 파악의 필요성
|
|
36
|
+
|
|
37
|
+
기존 시스템을 운영하면서 느꼈던 가장 큰 pain point는 결제건에 대한 변경 내역을 정확히 알 수 없다는 것이었는데요,
|
|
38
|
+
아래와 같이 구체적인 변경 내역을 물어오는 문의들이 여러 고객사로부터 자주 있었습니다.
|
|
39
|
+
|
|
40
|
+
- 어떤 결제건에 부분 환불 요청을 총 몇 번 / 각각 언제 했는지
|
|
41
|
+
- 어떤 결제건의 특정 타입의 웹훅이 몇 번 재시도 되었는지
|
|
42
|
+
- 어떤 결제건의 PG사 승인 응답 전문이 무엇인지
|
|
43
|
+
|
|
44
|
+
기존에는 이러한 문의가 들어오면 로그를 확인해 보곤 하는데, 로그는 영원히 검색 엔진에 올려둘 수가 없기 때문에
|
|
45
|
+
시간이 오래 지난 변경 내역은 확인하기가 힘듭니다. 따라서 완벽한 답변을 드릴 수 없었던 경우도 종종 있었는데,
|
|
46
|
+
Event Sourcing을 도입하게 되면 엔티티에 가해진 모든 이벤트가 DB에 저장되기 때문에 이렇게 맥락 파악을 요청하는 문의에 완벽하게 대응할 수 있을 것이라고 생각했습니다.
|
|
47
|
+
또한 포트원은 데이터를 기반으로 여러 가지 인사이트를 제공하고 운영 효율화를 도와줄 수 있는 B2B SaaS 기업으로의 도약을 계획하고 있었는데,
|
|
48
|
+
이러한 상황에서 Event Sourcing 방식으로 쌓인 풍부한 raw data는 앞으로 포트원의 발전을 뒷받침할 든든한 뿌리가 될 것이라고 생각했습니다.
|
|
49
|
+
종합해 보면, 무엇보다 결제라는 행위는 돈을 주고받는 것이기 때문에 결제 서비스를 제공하는 입장에서 데이터를 최대한 정확하게 보관하는 것이 매우 중요하다고 생각하여 Event Sourcing이 매력적인 선택지로 다가왔던 것 같습니다.
|
|
50
|
+
|
|
51
|
+
### 2. 자유로운 스키마 발전의 필요성
|
|
52
|
+
|
|
53
|
+
기존 시스템이 갖고 있던 또 하나의 pain point는 DB Schema에 관한 것인데요,
|
|
54
|
+
아시다시피 포트원은 국내외의 여러 PG사 결제 모듈을 하나의 인터페이스, 하나의 플로우로 통합해 주는 PG 통합 연동 모듈을 제공하고 있습니다.
|
|
55
|
+
때문에 어떤 PG사를 포트원에서 추가적으로 지원하기 위해 작업을 할 땐 해당 PG사에서 지원하는 파라미터 목록을 확인한 후,
|
|
56
|
+
포트원에서 이미 정의한 파라미터로 맵핑할 수 있는지를 검사합니다. 만약 맵핑할만한 파라미터가 마땅히 존재하지 않는다면 포트원에서는 새로이 인터페이스에 파라미터를 추가하고 내부 디비에도 해당 데이터를 저장할 수 있도록 스키마를 발전시켜야 합니다.
|
|
57
|
+
포트원의 기존 시스템은 MySQL을 사용하고 있었고, DB 스키마의 지원을 받아 데이터를 정형화하여 관리하고 있었습니다.
|
|
58
|
+
때문에 스키마에 필드를 추가하고 싶을 땐 `ALTER TABLE ADD COLUMN` 과 같은 DDL을 실행해야 하는데요,
|
|
59
|
+
기술이 많이 발전했다고 해도 Online DDL 실행은 여전히 개발자들에게 어렵고 부담스러운 작업입니다.
|
|
60
|
+
처리해야 할 데이터의 양이 많다면 DDL 실행이 완료되기까지 시간이 굉장히 오래 걸릴 수 있으며,
|
|
61
|
+
그동안 DB Server의 자원을 많이 점유해 실 서비스에 영향을 줄 수도 있습니다.
|
|
62
|
+
|
|
63
|
+
반면 Event Sourcing을 하게 되면 DB Schema에 의존하지 않고 자체적인 Event 포맷 정의 및 직렬화/역직렬화 전략을 구성하게 되기 때문에 이러한 문제로부터 완전히 자유로울 수 있습니다.
|
|
64
|
+
사실 스키마를 자유롭게 구성할 수 있다는 점이 백엔드 개발에서 큰 장점이 되는 경우가 많지는 않은데,
|
|
65
|
+
포트원은 여러 PG사의 인터페이스를 통합하는 특성을 갖고 있기 때문에 이 점을 큰 장점으로 생각하게 되었습니다.
|
|
66
|
+
|
|
67
|
+
## Event Sourcing과 잘 어울리는 DB 고르기
|
|
68
|
+
|
|
69
|
+
### 1. Event Sourcing의 DB 접근 특징
|
|
70
|
+
|
|
71
|
+
Event Sourcing은 한마디로 DB에 최종 상태만을 저장하는 것이 아니라 개별 이벤트를 모두 저장하는 기술인데요,
|
|
72
|
+
이 때문에 어플리케이션에서 DB에 접근하는 패턴이나 DB를 다루는 방식이 어느 정도의 특징을 띠게 됩니다. 이를 대략적으로 정리해보면 아래와 같습니다.
|
|
73
|
+
|
|
74
|
+
- Update/Delete 없이 항상 Insert와 Select만 발생한다.
|
|
75
|
+
- 이벤트의 형태는 매우 다양하므로, DB Schema에 의존하지 않는 자체적인 Event 직렬화 전략이 필요하다.
|
|
76
|
+
- 쿼리가 다양하지 않고 단일하다. (Insert 쿼리 한 개, Select 쿼리 한 개)
|
|
77
|
+
- 상태가 아닌 개별 이벤트를 저장하므로 굉장히 많은 양의 데이터가 쌓인다.
|
|
78
|
+
|
|
79
|
+
### 2. 특징에 어울리는 DB 고르기
|
|
80
|
+
|
|
81
|
+
그리고 이러한 특징들과 잘 어울리는 DB로는 어떤 것이 있을까요?
|
|
82
|
+
이 특징들을 잘 서포트하는 DB를 고르기 위해서는 DB가 갖추어야 하는 기능과 갖추지 않아도 되는 기능을 정리해 볼 필요가 있습니다.
|
|
83
|
+
|
|
84
|
+
- Insert와 Select query만 발생하며 쿼리가 복잡하지 않음 → Transaction 지원이 그다지 필요하지 않음
|
|
85
|
+
- DB Schema를 활용해 데이터를 정형화할 필요가 없음 → Schemaless DB를 사용해도 무방
|
|
86
|
+
- 데이터가 매우 많이 쌓임 → Scale out이 자유로운 DB를 사용해야 함
|
|
87
|
+
|
|
88
|
+
위와 같은 요구사항을 잘 만족하는 DB는 무엇일까요?
|
|
89
|
+
많은 선택지가 있을 수 있겠지만 일반적으로 NoSQL DB를 우선 떠올릴 수 있습니다.
|
|
90
|
+
포트원에서도 Cassandra라는 NoSQL DB를 Event Sourcing을 위한 DB로 사용하고 있는데요,
|
|
91
|
+
Cassandra는 특히 peer-to-peer architecture를 갖는 Dynamo Style의 DB로 이론상 무제한에 가까운 Scalability를 제공하기 때문에 Event Sourcing에서 사용하기에 적합하다고 판단했습니다.
|
|
92
|
+
|
|
93
|
+
### 3. 이외 고려할 것들
|
|
94
|
+
|
|
95
|
+
물론 위에 적은 내용들만을 고려해서 DB를 선택할 수 있는 것은 아닙니다.
|
|
96
|
+
무엇보다 어플리케이션에 존재하는 모든 영속 엔티티를 Event Sourcing 방식으로 관리할 필요는 없기 때문에 보다 일반적인 용례를 커버할 수도 있어야 하는데,
|
|
97
|
+
이 점을 생각한다면 SQL 인터페이스를 제공하며 Transaction 지원도 되고 수평 확장도 용이한 [Google Spanner](https://cloud.google.com/spanner/)나 [CockroachDB](https://github.com/cockroachdb/cockroach) 등을 사용하는 것을 고려해 볼 수도 있습니다.
|
|
98
|
+
이러한 DB를 사용하지 않은 이유를 정리해 보면 크게 아래와 같습니다.
|
|
99
|
+
|
|
100
|
+
**1) 검증되지 않은 DB**
|
|
101
|
+
|
|
102
|
+
Google Spanner나 CochroachDB와 같이 NoSQL과 SQL의 장점을 융합하려는 시도는 비교적 최근에 이루어지고 있는 것이고, 해당 DB에 대해 아주 잘 알고 있는 개발자가 사내에 존재하는 것이 아니라면 충분히 검증된 다른 DB를 사용하는 것이 낫다고 판단했습니다.
|
|
103
|
+
|
|
104
|
+
**2) MSA 환경**
|
|
105
|
+
|
|
106
|
+
저희는 Microservice Architecture를 구성해두었기 때문에 Event Sourcing이 필요한 Bounded Context가 꽤 명확한 편이었습니다.
|
|
107
|
+
따라서 해당 Context 내에서는 Event Sourcing으로 커버하기 힘든 유스케이스가 거의 없다는 점도 의사결정의 주된 고려 사항이었습니다.
|
|
108
|
+
|
|
109
|
+
**3) AuroraDB 도입을 위한 환경이 이미 마련되어 있음**
|
|
110
|
+
|
|
111
|
+
저희 아키텍처의 다른 마이크로 서비스들은 모두 AuroraDB를 활발하게 사용하고 있었기 때문에 NoSQL로 커버할 수 없는 용례가 나타나더라도 언제든 AuroraDB를 쉽게 도입할 수 있었습니다.
|
|
112
|
+
|
|
113
|
+
결과적으로 저희는 대부분의 상황에서 NoSQL을 이용해 Event Sourcing을 하고 있고, 내부적으로 존재하는 사소한 유스케이스에 대해서는 AuroraDB를 사용하여 서비스를 운영하고 있습니다.
|
|
114
|
+
|
|
115
|
+
## Event Sourcing 구현 살펴보기
|
|
116
|
+
|
|
117
|
+
Event Sourcing의 특징과 의사결정 배경을 살펴보았으니, 이제 실제 구현에 대해서도 간단하게 살펴보겠습니다.
|
|
118
|
+
Event Sourcing은 생소한 기술이긴 하지만 핵심 아이디어 자체는 매우 간단합니다.
|
|
119
|
+
로직을 수행하는 과정에서 일어난 사건들을 이벤트로 저장하고, 이 이벤트들을 이용해 외부로 노출될 상태를 만들어내는 것입니다.
|
|
120
|
+
이러한 아이디어를 구현하는 데에 필요한 핵심적인 함수 두 가지가 있습니다.
|
|
121
|
+
|
|
122
|
+
- `commandHandler: (Command, State) => Response`
|
|
123
|
+
- `eventHandler: (State, Seq[Event]) => State`
|
|
124
|
+
|
|
125
|
+
이 두 함수에 대해 알아보기 이전에 `Command`, `Event`, `State`가 무엇인지를 먼저 설명하겠습니다.
|
|
126
|
+
|
|
127
|
+
- `Command`: 특정 로직의 수행을 지시하는 명령입니다. HTTP에 비유하자면 Request의 역할을 한다고 이해하시면 좋을 것 같습니다.
|
|
128
|
+
- `Event`: `Command`를 받아 로직을 수행하는 과정에서 발생하는 사건들을 표현하는 객체입니다. 이 `Event` 들은 DB에 저장되어 Single Source Of Truth의 역할을 합니다.
|
|
129
|
+
- `State`: 일련의 `Event`들이 모여 결과적으로 만들어지는 상태를 뜻합니다. 일반적으로 백엔드 애플리케이션에서 흔히 다루는 도메인 엔티티라고 생각하시면 됩니다.
|
|
130
|
+
|
|
131
|
+
기본적인 개념에 대해 알았으니, 이제 `commandHandler` 와 `eventHandler` 가 무엇인지는 쉽게 이해할 수 있을 것 같습니다.
|
|
132
|
+
|
|
133
|
+
- `commandHandler`: 현재 상태(State)에서 명령(Command)를 받아 도메인 로직을 수행하고, 응답을 리턴하는 함수입니다. 로직을 수행하는 과정에서 이벤트를 쌓을 때마다 `eventHandler`를 호출합니다.
|
|
134
|
+
- `eventHandler`: 현재 상태(State)에서 어떤 이벤트(Event)가 새로 쌓이게 되면 어떤 새로운 상태로 전이할지를 정의하는 함수입니다.
|
|
135
|
+
|
|
136
|
+
그다지 어렵지 않죠? `commandHandler`는 일반적인 어플리케이션에서 작성하는 도메인 로직과 유사하지만 DB에 상태를 직접 업데이트하는 것이 아니라 이벤트를 쌓을 뿐이고,
|
|
137
|
+
새롭게 쌓인 이벤트를 가지고 최신 상태를 만들어내는 코드가 `eventHandler`에 정의되는 것입니다. `commandHandler`의 예시를 하나 들어보겠습니다. 수기 결제 요청을 받아 수행하는 commandHandler입니다.
|
|
138
|
+
|
|
139
|
+
```scala
|
|
140
|
+
// commandHandler: 설명을 위해 단순화한 예시 코드입니다.
|
|
141
|
+
for {
|
|
142
|
+
// 1. 수기결제를 시작한다는 내용의 이벤트 저장
|
|
143
|
+
_ <- persist(Event.CommandReceived(id, form, store, customer))
|
|
144
|
+
|
|
145
|
+
// 2. 사용자가 넘긴 channel key를 이용해 channel 얻어오기
|
|
146
|
+
channel <- channelService
|
|
147
|
+
.fetchChannel(store.id, form.channelKey)
|
|
148
|
+
.flatMapError(e => fail(Event.FetchingChannelFailed(form.channelKey, e)))
|
|
149
|
+
|
|
150
|
+
// 3. 채널 정보 요청 결과를 이벤트로 저장
|
|
151
|
+
_ <- persist(Event.FetchingChannelSucceeded(channel))
|
|
152
|
+
|
|
153
|
+
// 4. 채널을 이용해 PG사에 수기결제 요청하기
|
|
154
|
+
result <- txGatewayService
|
|
155
|
+
.payInstantly(base, channel, paymentMethodForm)
|
|
156
|
+
.flatMapError(e => fail(base, channel, Event.TgsFailed(e)))
|
|
157
|
+
|
|
158
|
+
// 5. 수기 결제 요청 결과를 이벤트로 저장
|
|
159
|
+
_ <- persist(Event.TgsSucceeded(result))
|
|
160
|
+
|
|
161
|
+
...
|
|
162
|
+
} yield Response.Succeeded(result)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
위 코드에서 `persist`함수를 호출할 때마다 DB에 이벤트가 쌓이게 되고, eventHandler를 거쳐 상태가 업데이트되는데요,
|
|
166
|
+
`persist`함수를 어떻게 주입하고 있는지도 확인해 보겠습니다.
|
|
167
|
+
eventHandler 역할을 하는 `handleEvent` 함수에서 상태가 어떻게 전이되는지 확인할 수 있습니다.
|
|
168
|
+
|
|
169
|
+
```scala
|
|
170
|
+
val persist = new Persist[E] {
|
|
171
|
+
def apply(event: E): UIO[Unit] =
|
|
172
|
+
for {
|
|
173
|
+
state <- current.get
|
|
174
|
+
newState = handleEvent(state, event)
|
|
175
|
+
_ <- eventRepository.insert(entityId, state.sequenceNr, event)
|
|
176
|
+
_ <- current.update(_ => newState)
|
|
177
|
+
} yield ()
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// eventHandler: 설명을 위해 단순화한 예시 코드입니다.
|
|
181
|
+
private def handleEvent(state: State, event: Event): State =
|
|
182
|
+
(state, event) match {
|
|
183
|
+
case (_: State.Empty, _: Event.CommandReceived) => State.Initialized(???)
|
|
184
|
+
case (_: State.Empty, _: Event.FetchingChannelSucceeded) => State.ChannelSelected(???)
|
|
185
|
+
case (_: State.ChannelSelected, _: TgsSucceeded) => State.Paid(???)
|
|
186
|
+
|
|
187
|
+
...
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
위 예시에선 설명을 위해 단순화한 부분이 많지만, Event Sourcing 구현의 핵심을 이루는 `commandHandler` 와 `eventHandler` 가 어떻게 구성되는지에 대해 충분히 감을 잡으셨을 것이라고 생각합니다.
|
|
192
|
+
Event Sourcing의 구현에 있어 더 디테일하게 신경 써야 할 부분들에 대해서는 심화편에서 좀 더 깊게 다루어보도록 하겠습니다!
|
|
193
|
+
|
|
194
|
+
## Event Sourcing 도입에 따른 Challenge
|
|
195
|
+
|
|
196
|
+
저희가 Event Sourcing을 도입하게 된 것은 분명 해당 위에서 설명드린 여러 가지 장점을 누리기 위해서이지만,
|
|
197
|
+
반대로 해당 기술을 도입하면서 추가적으로 신경 써야 할 것들 또한 적지 않았습니다.
|
|
198
|
+
혹시 Event Sourcing의 도입을 고려하고 있지만 어떠한 챌린지가 있을지를 몰라 의사결정에 어려움을 겪고 계신 분들이 있다면,
|
|
199
|
+
그런 분들께 도움을 드리고자 제가 느낀 챌린지들을 공유하고자 합니다.
|
|
200
|
+
|
|
201
|
+
### Challenge 1. Event 직렬화/역직렬화에 각별히 신경 써야 한다.
|
|
202
|
+
|
|
203
|
+
글의 윗부분에서 Event Sourcing의 특징에 대해 소개할 때, 해당 기술을 도입하게 되면 DB Schema에 의존하지 않는 자체적인 데이터 포맷 정의 및 직렬화/역직렬화 전략을 구성해야 한다고 말씀드렸는데요,
|
|
204
|
+
이는 장점과 단점이 공존하는 특징인 것 같습니다.
|
|
205
|
+
DB Schema에 얽매이지 않고 자유롭게 데이터의 형식을 정의할 수 있게 되는 대신, 모든 이벤트를 DB에 저장할 수 있는 형태로 직렬화하고, 반대로 역직렬화하는 코드를 모두 수동으로 작성해야 합니다.
|
|
206
|
+
그리고 직렬화 포맷의 특성을 이해하고 이벤트가 하위 호환성을 유지할 수 있도록 많은 신경을 써주어야 합니다.
|
|
207
|
+
|
|
208
|
+
### Challenge 2. DB를 직접 조작하기가 힘들다.
|
|
209
|
+
|
|
210
|
+
일반적으로 DB의 내용은 항상 어플리케이션을 통해서만 수정하는 것이 바람직하지만, 드물게는 개발자가 DB에 직접 접속해 데이터를 강제로 조작하는 경우도 있습니다.
|
|
211
|
+
이는 위험한 행동이긴 하지만 어쩔 수 없는 상황에서는 분명 유용할 수 있는 프랙티스입니다.
|
|
212
|
+
다만 이러한 접근은 DB에 담긴 데이터가 human-readable/human-updatable 할 때만 유용하며, Event Sourcing DB에는 직렬화된 데이터가 담기기 때문에 이 데이터를 사람이 수동으로 조작하는 것에는 한계가 있습니다.
|
|
213
|
+
이런 경우 강제 업데이트를 위한 별도의 기능을 어플리케이션에 개발해야 할 것입니다.
|
|
214
|
+
|
|
215
|
+
### Challenge 3. 조회를 위한 별도의 모델이 필요하다.
|
|
216
|
+
|
|
217
|
+
사용자가 조회를 통해 얻고 싶은 것은 상태이지만, Event Sourcing DB의 record에는 개별 이벤트가 담겨있습니다.
|
|
218
|
+
따라서 Event Sourcing을 도입하게 되면 특정 조건으로 필터를 걸어 조건을 만족하는 엔티티를 한 번에 조회하는 등의 요구사항에 대응할 수 없습니다.
|
|
219
|
+
Event Sourcing을 사용하면서 동시에 이러한 요구사항에 대응하기 위해서는 조회를 위한 별도의 모델이 필요합니다.
|
|
220
|
+
보통 Event Sourcing DB로부터 주기적으로 데이터를 전달받아 조회에 특화된 별도 DB에 데이터를 동기화하고 이 별도 DB를 조회 요구사항을 만족하는 식으로 접근하게 되는데,
|
|
221
|
+
이러한 접근 방식을 CQRS(Command-Query Responsibility Segregation) 패턴이라고 부릅니다.
|
|
222
|
+
CQRS 패턴을 구현하기 위해서는 신뢰성 있는 데이터 동기화 아키텍처를 구성해야 하며, 이 아키텍처가 충분히 성숙해지기까지 꽤 많은 리소스를 들여야 할 것입니다.
|
|
223
|
+
|
|
224
|
+
## 정리
|
|
225
|
+
|
|
226
|
+
포트원 V2 시스템의 근간을 이루고 있는 Event Sourcing 기술의 개념과 도입 배경, 간단한 구현과 Challenge까지 개괄적인 내용을 함께 살펴보았습니다.
|
|
227
|
+
Event Sourcing의 경우 굉장히 낯선 기술이고, 국내에서 해당 기술을 도입한 사례를 거의 찾아볼 수 없었기 때문에 저희도 실제로 이 기술을 도입하면서 많은 시행착오가 있었는데요,
|
|
228
|
+
많은 분들이 본 글을 읽고 Event Sourcing 기술이 가지는 특징과 장단점에 대해 더 깊게 이해하게 되셨기를 바래봅니다.
|
|
229
|
+
|
|
230
|
+
과감한 결정을 한 만큼 장기적으로 그 효과는 강력할 것이라고 생각합니다.
|
|
231
|
+
Event Sourcing이라는 단단한 뿌리 위에서 폭발적으로 성장하는 포트원을 지켜봐 주세요!
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 결제 데이터 분석 가이드
|
|
3
|
+
category: 관리자콘솔 (관리자콘솔 사용 가이드) > 결제 데이터 분석 > 결제 데이터 분석
|
|
4
|
+
seo:
|
|
5
|
+
title: 결제 데이터 분석 가이드
|
|
6
|
+
description: >-
|
|
7
|
+
결제 데이터 기반 인사이트 제공으로, 고객사가 더욱 빠른 의사결정을 할 수 있도록 돕는 결제 데이터 기반 분석 대시보드인 포트원 결제
|
|
8
|
+
데이터 분석을 확인해보세요.
|
|
9
|
+
keywords:
|
|
10
|
+
- 관리자콘솔
|
|
11
|
+
- 애널리틱스
|
|
12
|
+
- 포트원
|
|
13
|
+
- 결제데이터분석
|
|
14
|
+
tags:
|
|
15
|
+
- 공통
|
|
16
|
+
- 결제데이터분석
|
|
17
|
+
pgCompanies:
|
|
18
|
+
- 공통
|
|
19
|
+
searchTags:
|
|
20
|
+
- 기간데이터
|
|
21
|
+
- 거래데이터
|
|
22
|
+
- 결제대시보드
|
|
23
|
+
- 결제모니터링
|
|
24
|
+
- 결제현황
|
|
25
|
+
- 결제분석
|
|
26
|
+
- 결제데이터분석
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
### **결제 데이터 분석 서비스 소개**
|
|
30
|
+
|
|
31
|
+
포트원 결제 데이터 분석은 결제 데이터 기반으로 인사이트를 제공하여 고객사에서 빠른 의사결정을 할 수 있도록 돕는 결제 데이터 기반 분석 대시보드입니다.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### **사용설명서**
|
|
36
|
+
|
|
37
|
+
#### **1.결제 데이터 기반 대시보드**
|
|
38
|
+
|
|
39
|
+
- **조건 지정**
|
|
40
|
+
|
|
41
|
+
<Indent level="1">
|
|
42
|
+
|
|
43
|
+
- 기간 선택
|
|
44
|
+
- 버튼식 날짜 혹은 캘린더 뷰에서 원하는 기간을 선택할 수 있으며, 2014년부터 그 이후의 데이터에 한하여 표기합니다.
|
|
45
|
+
- 통화 선택
|
|
46
|
+
- 통화는 KRW, USD, JPY, EUR, CNY , TWD, AUD, THB, HKD 중에 선택할 수 있습니다.
|
|
47
|
+
- 국내결제(KRW)만 사용하고 계실 경우, KRW 만 노출합니다.
|
|
48
|
+
- 해외결제를 사용하고 계실 경우, KRW, USD, JPY, EUR, CNY , TWD, AUD, THB, HKD가 모두 노출되며, 베타 서비스에서는 실제 사용 통화에 관계없이 대표적 통화 9개 기준으로 표기합니다.
|
|
49
|
+
- 순 거래액 보기 토글: 총 거래액 혹은 순 거래액 표기 기준을 지정합니다.
|
|
50
|
+
- on: 취소 및 환불 완료된 이후의 순 거래액
|
|
51
|
+
- off: 최초 결제 완료된 총 거래액
|
|
52
|
+
- 토글은 거래 건수에는 영향을 주지 않습니다. 거래 건수는 거래 기간 내 승인된 모든 거래 건수를 의미하며, 전체/부분 취소된 거래 건도 포함합니다.
|
|
53
|
+
|
|
54
|
+
</Indent>
|
|
55
|
+
|
|
56
|
+
- **거래 데이터 표기 기준**
|
|
57
|
+
|
|
58
|
+
<Indent level="1">
|
|
59
|
+
|
|
60
|
+
- 데이터 최종 업데이트
|
|
61
|
+
- PG사별 결제 상태 승인 시각을 기준으로 내역이 업데이트 됩니다.
|
|
62
|
+
- 데이터 최종 업데이트 기준은 콘솔 사용자의 진입 시간의 직전 ‘시’의 데이터로 노출됩니다. 예) 12:20 진입 시, 11:00까지의 데이터 호출
|
|
63
|
+
- 결제 데이터 분석에서 제공하는 결제 데이터는 업데이트되는 시간으로 인해 관리자 콘솔 내 결제 - 상세내역조회 → 결제내역 섹션과 데이터가 소폭 상이할 수 있습니다.
|
|
64
|
+
- 거래액
|
|
65
|
+
- 총 거래액 (순 거래액 보기 토글 off) : 검색한 기간 내 발생한 모든 결제승인 거래건의 결제 합계 금액
|
|
66
|
+
- 순 거래액 (순 거래액 보기 토글on) : 검색한 기간 내 발생한 모든 결제승인 거래건의 결제 합계 금액 - 검색한 기간 내 발생한 모든 부분취소/전체취소 승인 거래건의 취소 금액 합계
|
|
67
|
+
- 거래 건수 : 거래 기간 내 승인된 모든 거래 건수 (전체/부분 취소된 거래 건도 포함
|
|
68
|
+
- 기간 내 취소 및 환불률 : 조회된 기간 내 (총 거래액 - 순 거래액) / 총 거래액으로 계산됩니다.
|
|
69
|
+
- 비교 기간: 비교 기간이란, 선택 기간에 해당 하는 길이 만큼의 직전 혹은 상대적 기간 데이터를 기준으로 합니다. 결제 현황 페이지에만 적용됩니다.
|
|
70
|
+
- 일반 (직전 기간 비교) - 최근 4주, 최근 3개월, 최근 6개월 버튼 포함
|
|
71
|
+
- 선택 기간에 포함되는 길이만큼 직전 기간의 동일한 일자 길이를 비교합니다.
|
|
72
|
+
- 오늘 - 버튼식 (상대적 기간 비교)
|
|
73
|
+
- 오늘 00시부터 현재까지와 어제 00시부터 동일 시점까지를 비교합니다.
|
|
74
|
+
- 이번 달 - 버튼식 (상대적 기간 비교)
|
|
75
|
+
- 이번 달 시작 시점 00시부터 어제까지와 지난 달 시작 시점 00시부터 동일한 일자 길이를 비교합니다.
|
|
76
|
+
- 올해 - 버튼식 (상대적 기간 비교)
|
|
77
|
+
- 올해 시작 시점 00시부터 어제까지와, 지난해 시작 시점 00시부터 동일한 일자 길이를 비교합니다.
|
|
78
|
+
- 제외 데이터
|
|
79
|
+
- 거래액, 거래건수 표기에 테스트 결제건, 결제 실패건, 결제 예정건은 제외됩니다.
|
|
80
|
+
- 음수 데이터
|
|
81
|
+
- case) 음수(-) 거래액과 0 건수 발생
|
|
82
|
+
- ‘결제건수’는 결제완료 승인 건을 기준으로 집계되며, 선택한 기간에 결제 전체취소 혹은 결제 부분취소 건만 존재하는 경우, 건수는 0이고 거래액은 음수로 표기될 수 있습니다.
|
|
83
|
+
|
|
84
|
+
</Indent>
|
|
85
|
+
|
|
86
|
+
- **기간 데이터 표기 기준**
|
|
87
|
+
|
|
88
|
+
<Indent level="1">
|
|
89
|
+
|
|
90
|
+
- 기간 데이터 표기는 YYYY/MM/DD 를 기준으로 하며, 시간은 취급하지 않습니다.
|
|
91
|
+
- 최근 xx일
|
|
92
|
+
- 오늘을 제외한 최근 xx일 기준을 표기합니다.
|
|
93
|
+
- 예) 최근 7일은 최근 8일 \~ 어제까지의 데이터를 포함합니다.
|
|
94
|
+
- 이번 달, 올해
|
|
95
|
+
- 오늘을 제외한 1일 \~ 어제까지의 기준을 표기합니다.
|
|
96
|
+
- 예) 8월 15일 기준, 이번 달은 8월 1일 \~ 14일 데이터를 포함합니다.
|
|
97
|
+
- 예) 8월 15일 기준, 올해는 1월 1일 \~ 8월 15일 데이터를 포함합니다.
|
|
98
|
+
- 오늘
|
|
99
|
+
- 선택한 날짜가 ‘오늘’일 경우, 0시 부터 최종 업데이트 시간까지의 기준을 표기합니다.
|
|
100
|
+
- 예) 오늘 15시 검색 기준, 오늘 0시 \~ 15시 데이터를 표기합니다.
|
|
101
|
+
|
|
102
|
+
</Indent>
|
|
103
|
+
|
|
104
|
+
#### **2. 상세 페이지**
|
|
105
|
+
|
|
106
|
+
**Section 1. 결제현황**
|
|
107
|
+
|
|
108
|
+
- 목적
|
|
109
|
+
- 원하는 날짜별로 거래 현황을 확인하고 변화 추이를 그래프로 한눈에 쉽고 간편하게 파악할 수 있습니다.
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
- 요소별 표기 기준
|
|
114
|
+
- 선택한 기간 중 평균 거래액이 가장 많이 혹은 적게 발생하는 월간, 주간, 일간 시간대를 표기합니다.
|
|
115
|
+
- 거래액 인사이트는 상단 필터에서 선택한 기간 내 평균 거래액으로 산출되어 표기되며, 선택한 기간에 발생한 거래액이 충분하지 않을 경우, 표기가 되지 않을 수 있습니다.
|
|
116
|
+
- 동일한 금액의 거래액이 여러 시점에 발생했을 경우, 인사이트는 선택 기간 내 가장 먼저 발생한 시점을 기준으로 표기됩니다.
|
|
117
|
+
|
|
118
|
+
* 그래프
|
|
119
|
+
- 실선: 조회한 날짜에 대해 표기합니다
|
|
120
|
+
- 점선: 조회한 날짜 대비 이전 비교 기간을 표기합니다.
|
|
121
|
+
|
|
122
|
+
- 거래액
|
|
123
|
+
- 순 거래액 보기 `on `: 검색한 기간 내 발생한 모든 결제승인 거래건의 결제 합계 금액 - 검색한 기간 내 발생한 모든 부분취소/전체취소 승인 거래건의 취소 금액 합계
|
|
124
|
+
- 순 거래액 보기 `off`: 검색한 기간 내 발생한 모든 결제승인 거래건의 결제 합계 금액
|
|
125
|
+
|
|
126
|
+
* 거래건수
|
|
127
|
+
- 거래 기간 내 승인된 모든 거래 건수 (전체/부분 취소된 거래 건도 포함)
|
|
128
|
+
|
|
129
|
+
- 건당 평균 거래액
|
|
130
|
+
- (총 거래액 / 총 거래건수)
|
|
131
|
+
|
|
132
|
+
* 고객당 평균 거래액
|
|
133
|
+
- (총 거래액 / 총 고객수)
|
|
134
|
+
- 고객은 휴대폰 번호로 구분되며, 고객당 평균 거래액은 휴대폰 정보 있는 결제 건에 대해서만 집계됩니다.
|
|
135
|
+
- 고객당 평균 거래액 계산은 데이터 베이스의 자동 계산 로직으로 인해 1% 내외의 오차가 있을 수 있습니다.
|
|
136
|
+
|
|
137
|
+
**Section 2. 결제수단**
|
|
138
|
+
|
|
139
|
+
- 목적
|
|
140
|
+
- 사용하고 있는 전체 결제수단별 순위 및 기간별 변화 추이를 확인하고 어떤 결제수단이 인기있는지 파악할 수 있습니다.
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
- **데이터 표기 기준**
|
|
145
|
+
- 카드결제 : 결제 요청시 지정된 결제수단 (pay\_method) 값이 card로 지정된 거래입니다.
|
|
146
|
+
- 간편결제 : 결제요청시 지정된 결제수단 (pay\_method)이나 결제대행사(pg\_provider)가 간편결제(예: naverpay , kakaopay) 로 지정된 거래입니다.
|
|
147
|
+
- 결제 데이터 분석의 간편결제는 허브형 혹은 직계약에 상관없이 최종 상세 결제 수단으로 표기됩니다. (예: 카카오페이, 네이버페이)
|
|
148
|
+
- 참고
|
|
149
|
+
- 간편결제를 허브형으로 이용한 경우, 포트원 관리자 콘솔은 아래와 같이 별도 표기합니다.
|
|
150
|
+
- 결제대행사는 `허브형 계약된 결제대행사`로 노출 (ex: 결제대행사: KCP)
|
|
151
|
+
- 결제내역 상세 모달 내 결제대행사는 결제대행사 허브형ㅣ간편결제로 노출 (ex: 결제대행사: KCP 허브형 ㅣ 네이버페이 결제형)
|
|
152
|
+
|
|
153
|
+
* **\[전체 결제수단] 페이지**
|
|
154
|
+
- **국내결제**
|
|
155
|
+
- 국내 결제수단 종류는 `카드결제` `간편결제` `실시간 계좌이체` `가상계좌` 휴대폰` 소액결제` `상품권` 6가지이며, \
|
|
156
|
+
6가지 결제수단 중 선택한 기간 내에 결제가 발생한 결제수단만 노출합니다.
|
|
157
|
+
- **해외결제**
|
|
158
|
+
- 해외결제 결제수단 종류는 카드결제 계좌이체 기타 3가지이며, \[전체 결제수단] 페이지 내에서는 3가지 결제수단 중 선택한 기간 내에 결제가 발생한 결제수단만 노출합니다.
|
|
159
|
+
- pay\_method = card `카드결제`
|
|
160
|
+
- pay\_method = transfer `계좌이체`
|
|
161
|
+
- pay\_method = card 혹은 transfer가 아닌 것 `기타`
|
|
162
|
+
- 기타 결제수단은 카드와 계좌이체를 제외한 현지 결제수단 및 간편결제를 의미합니다.
|
|
163
|
+
- paymentwall의 경우, paymentwall에서 제공해주는 emb\_pg\_provider 리스트를 기반으로 합니다.
|
|
164
|
+
|
|
165
|
+
<Callout icon="💡" content="alipay, alipayplus, coinbasebitcoin, boostwallet, cherrycredits, danawallet, dokuwallet, ezpay, fasterpay, gcashph, gocpay, gopay, grabpayph, grabpaymalay, jeniuspay, kakaopaykr, lpay, linepay, linkaja, mcash, mercadopago, mobilemoneytanzania, mobilewalletseg, mycardwallet, krnaverepay, ovoid, pagaewallet, paycokr, paymayaph, paypal, paytmwallet, qrisid, linepayth, redcompra, sakuku, samsungpay, shopeepay, shopeepayph, shopeepayth, singteldash, twpay, promptpayth, tosspay, tngewallet, truemoneyth, wechatpayments, yandexmoney, ninepay" title=" emb_pg_provider 리스트" />
|
|
166
|
+
|
|
167
|
+
- **\[카드결제] \[간편결제] 상세 페이지**
|
|
168
|
+
- 카드결제와 간편결제의 경우, 상세 페이지를 통해 각 카드사별, 간편결제사별 날짜별 추이를 파악할 수 있습니다. 소비자가 선호하는 카드사와 간편결제사 측정에 용이합니다.
|
|
169
|
+
- 전체 카드사(혹은 간편결제사) 대비 선택한 카드(혹은 간편결제)가 차지하는 비율을 거래액과 거래건수별로 비교할 수 있습니다.
|
|
170
|
+
- 해외 통화의 경우, \[카드결제] \[간편결제] 상세 페이지는 표기되지 않습니다.
|
|
171
|
+
- 카드결제는 발행사(publisher) 기준으로 표기됩니다.
|
|
172
|
+
- 국내카드
|
|
173
|
+
- 신한, 삼성, 현대, 비씨, KB국민, 롯데, 우리, 하나, NH농협
|
|
174
|
+
- 해외카드
|
|
175
|
+
- Visa, Master, Amex, JCB, Diners, UnionPay, 기타 해외
|
|
176
|
+
- 기타
|
|
177
|
+
- 시티카드, 은행카드, 혹은 카드사명을 알 수 없는 경우, 기타로 표기됩니다.
|
|
178
|
+
- 간편결제는 payment\_method 혹은 pg\_provider가 간편결제로 지정된 경우를 기준으로 표기됩니다.
|
|
179
|
+
- 카카오페이, 네이버페이, KB앱카드, 토스페이, 삼성페이, 애플페이, SSG Pay, 페이코
|
|
180
|
+
- 기타
|
|
181
|
+
- 위 8개 간편결제사 이외의 경우 및 간편결제사 명을 알 수 없는 경우,기타로 표기됩니다.
|
|
182
|
+
|
|
183
|
+
**Section 3. 결제대행사**
|
|
184
|
+
|
|
185
|
+
- 목적
|
|
186
|
+
- 사용하고 있는 전체 결제대행사별 순위 및 기간별 변화 추이를 확인하고 어떤 결제대행사가 인기있는지 파악할 수 있습니다. 여러 결제대행사를 동시에 사용하고 있는 경우, 대행사별 효과 측정에 용이합니다.
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
- 데이터 표기 기준
|
|
191
|
+
- 국내결제, 해외결제 모두 연동되어 있는 결제대행사를 기준으로 표기됩니다.
|
|
192
|
+
|
|
193
|
+
**Section 4. 결제전환율 (coming soon)**
|
|
194
|
+
|
|
195
|
+
- 목적
|
|
196
|
+
- 결제 상태별 현황 및 비중을 파악할 수 있습니다. 결제 상태별 상세 현황과 타사 비교 벤치마크를 통해 현재 자사 결제전환율이 건강한지 파악하고, 결제 실패 사유를 심층 분석합니다.
|
|
197
|
+
|
|
198
|
+
### **결제 모니터링 서비스 (coming soon)**
|
|
199
|
+
|
|
200
|
+
- 목적
|
|
201
|
+
- 실시간 / 기간별 결제 모니터링 서비스를 통해서 결제 이상 유무 및 장애 여부를 파악할 수 있습니다.
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
##### **Section 1. 실시간 결제 모니터링**
|
|
206
|
+
|
|
207
|
+
- 결제 상태 현황
|
|
208
|
+
- 결제 상태별 거래건수를 실시간으로 확인할 수 있습니다.
|
|
209
|
+
- 웹훅 수신 현황
|
|
210
|
+
- 포트원으로부터 수신한 웹훅에 대해 응답한 웹훅의 상태코드를 (http status )확인할 수 있습니다.
|
|
211
|
+
- 결제대행사별 결제성공률
|
|
212
|
+
- 연동한 모든 결제대행사의 결제성공률을 실시간으로 확인할 수 있습니다.
|
|
213
|
+
- 웹훅 발송 현황
|
|
214
|
+
- 웹훅 발송 성공률을 실시간으로 확인할 수 있습니다.
|
|
215
|
+
|
|
216
|
+
##### **Section 2. 기간별 결제 모니터링**
|
|
217
|
+
|
|
218
|
+
- 결제 상태별 거래현황
|
|
219
|
+
- 선택한 날짜에 대한 결제 상태별 거래건수를 확인할 수 있습니다.
|
|
220
|
+
- 시간대별 웹훅 수신 및 발송 현황
|
|
221
|
+
- 선택한 날짜에 대한 고객사 수신 웹훅 건수와 고객사 발송 웹훅 에러코드를 비교할 수 있습니다.
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
### **부가 설명**
|
|
226
|
+
|
|
227
|
+
#### **1.계정 설정**
|
|
228
|
+
|
|
229
|
+
- 권한 부여
|
|
230
|
+
|
|
231
|
+
<Indent level="1">
|
|
232
|
+
|
|
233
|
+
- 표기되는 데이터는 상위 상점 단위를 기준으로 하며, 하위 상점은 상위 상점에에 종속됩니다. 이는 관리자 콘솔과 동일한 방식입니다.
|
|
234
|
+
- 권한
|
|
235
|
+
- Owner/Admin (=상위 상점) 계정이 모든 데이터를 소유합니다.
|
|
236
|
+
- Manager / Dev, Read only(=하위 상점) 계정은 상위 상점에 종속됩니다.
|
|
237
|
+
- Owner 계정이 [관리자콘솔 ↗](https://admin.portone.io/merchant) 접속하여 하위 상점을 추가하는 경우, 하위 상점은 별도의 가입을 하지 않아도 owner 계정은 모든 데이터 볼 수 있습니다.
|
|
238
|
+
|
|
239
|
+
</Indent>
|
|
240
|
+
|
|
241
|
+
- 과금 방식
|
|
242
|
+
|
|
243
|
+
<Indent level="1">
|
|
244
|
+
|
|
245
|
+
- 베타 서비스 기간 중에는 계정 추가 시에도 별도의 추가 과금은 없습니다.
|
|
246
|
+
- 정식 서비스 런칭 이후의 과금 정책은 포트원 어카운트 담당자를 통해서 별도 안내 드릴 예정입니다.
|
|
247
|
+
|
|
248
|
+
</Indent>
|
|
249
|
+
|
|
250
|
+
#### **2. 결제 데이터 분석 FAQ**
|
|
251
|
+
|
|
252
|
+
- **베타 서비스는 유료인가요, 무료인가요?**\
|
|
253
|
+
\> 베타 서비스는 모두 무료입니다! 베타 서비스가 종료되고 정식으로 서비스가 런칭되면 유료로 전환됩니다.
|
|
254
|
+
|
|
255
|
+
* **하위상점이 있는 경우 신청은 한번만 하면 될까요?**\
|
|
256
|
+
\> 네, 하나의 Owner 계정 내 여러개의 하위상점이 있는 경우, 상위 권한의 계정에서 한번만 신청해주시면 됩니다.
|
|
257
|
+
|
|
258
|
+
- **상위상점와 하위상점에서 결제데이터를 볼 수 있는 범위는 어떤 차이가 있을까요?**\
|
|
259
|
+
\> 상위상점 : 상위상점의 거래 + 하위상점의 모든 거래에 대한 데이터 확인 가능\
|
|
260
|
+
\> 하위상점 : 해당 상점(하위)의 데이터만 확인 가능
|
|
261
|
+
|
|
262
|
+
* **결제상태별 정의가 어떻게 되나요?**
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
- **거래데이터는 취소된 금액까지 포함하고 있나요?**\
|
|
267
|
+
\> 기본적으로 취소된 금액을 포함한 데이터를 보여드리고 있으나, 원하시면 토글로 ON/OFF 하여 데이터를 확인하실 수 있습니다.
|
|
268
|
+
|
|
269
|
+
* **관리자콘솔 홈(대시보드) 및 결제내역과의 데이터 차이가 있는데 어떤 이유로 차이가 발생되나요?**
|
|
270
|
+
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 상점·계정관리
|
|
3
|
+
category: 관리자콘솔 (관리자콘솔 사용 가이드) > 상점·계정관리 > 상점·계정관리
|
|
4
|
+
seo:
|
|
5
|
+
title: 상점·계정관리
|
|
6
|
+
description: 사업자 정보, 관리자 계정 관리, 하위 상점 관리 등 관리자콘솔이 제공하는 상점/계정관리를 위한 기능들을 확인해보세요.
|
|
7
|
+
keywords:
|
|
8
|
+
- 계정관리
|
|
9
|
+
- 상점관리
|
|
10
|
+
- 상점·계정관리
|
|
11
|
+
- 관리자콘솔
|
|
12
|
+
- 포트원
|
|
13
|
+
tags:
|
|
14
|
+
- 공통
|
|
15
|
+
- 상점정보
|
|
16
|
+
- 관리자콘솔
|
|
17
|
+
pgCompanies:
|
|
18
|
+
- 공통
|
|
19
|
+
searchTags:
|
|
20
|
+
- 하위상점
|
|
21
|
+
- 관리자권한
|
|
22
|
+
- 마케팅수신
|
|
23
|
+
- 로그아웃
|
|
24
|
+
- 회원탈퇴
|
|
25
|
+
- 2차인증
|
|
26
|
+
- 비밀번호변경
|
|
27
|
+
- 계정변경
|
|
28
|
+
- 이메일변경
|
|
29
|
+
- 계정권한
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
### **상점 · 계정 관리**
|
|
33
|
+
|
|
34
|
+
#### **1.사업자정보**
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
- **로그인 계정** : 현재 로그인하고 계시는 계정 주소
|
|
39
|
+
- **계정 권한** : 로그인하신 계정에 부여된 권한
|
|
40
|
+
- **계정정보 관리**
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
- **이메일 변경** : 로그인하시는 메일주소 변경가능 (이미 가입된 계정을 중복 가입 불가)
|
|
45
|
+
- **비밀번호 변경** : 비밀번호 변경가능
|
|
46
|
+
- **2차 인증** : 관리자콘솔 2차인증(OTP)등록 가능
|
|
47
|
+
- **마케팅 수신 동의 변경**
|
|
48
|
+
- **회원 탈퇴** : <Highlight text="Admin(Owner) 계정은 삭제 시, 연결된 상점 전체도 함께 삭제되니 주의해 주세요" />\
|
|
49
|
+
(탈퇴한 계정의 경우 30일이내에 변경/가입이 불가 합니다. )
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
- **로그아웃** : 좌측 하단 계정을 클릭 후 ‘로그아웃’
|
|
54
|
+
|
|
55
|
+
#### **2. 관리자 계정 관리**
|
|
56
|
+
|
|
57
|
+
- 해당 메뉴에서는 권한별 로그인 가능한 계정을 추가/삭제/변경 하실 수 있습니다.
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
- 권한은 admin, dev, manage, read only 로 4가지이며, 기능은 다음과 같이 구분됩니다.
|
|
62
|
+
|
|
63
|
+
<Indent level="1">
|
|
64
|
+
|
|
65
|
+
- Admin : 모든 내용 조회/수정 가능 (최대 1개 계정 추가가능)
|
|
66
|
+
- Dev : 결제연동 메뉴 수정, 내역 조회 (최대 10개 계정 추가가능)
|
|
67
|
+
- Manager : 모든 내역 조회 및 수정, 리포트 조회, 계정 관리 수정 가능 (계정 갯수 제한 없음)
|
|
68
|
+
- Read only : 내역 조회, 리포트 조회 가능 (계정 갯수 제한 없음)
|
|
69
|
+
|
|
70
|
+
</Indent>
|
|
71
|
+
|
|
72
|
+
#### 3. **하위 상점 관리 (선택)**
|
|
73
|
+
|
|
74
|
+
- 상위 상점과 하위 상점이 구분되어있는 형태의 서비스이실 경우, 하나의 상위 상점에서 하위 상점의 연동 채널/결제내역을 통합 관리하실 수 있습니다. \
|
|
75
|
+
(ex : A상점(상위)에서 지역별 지점이 존재하는 경우, 하위상점에 \[강남 지점],\[삼성 지점],\[역삼 지점] 등으로 구분하여 설정가능)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
- **돋보기 기능** : 등록된 하위상점을 검색하여 조회가능
|
|
80
|
+
- **연결된 계정 권한**
|
|
81
|
+
- 하위상점에 특정 메일계정 연동가능 (연결된 계정은 해당 하위상점의 내역만 조회가능)
|
|
82
|
+
- 하위상점에 매핑되는 계정은 Manager 혹은 Read only 권한으로만 가능합니다.
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
- **상점명** : 하위상점을 구분할 수 있는 이름
|
|
87
|
+
- **사용할 결제채널 선택** : 하위상점으로 연동하고자 하는 PG사와 상점정보를 선택
|
|
88
|
+
- 결제연동 메뉴에서 연동이 필요한 채널을 먼저 설정하신 후 하위상점과 연결합니다.
|
|
89
|
+
- **서비스 URL :** 하위상점의 연동페이지 URL 입력
|
|
90
|
+
- **담당자명** : 하위상점의 담당자님 성함
|
|
91
|
+
- **담당자 휴대폰번호 :** 하위상점의 담당자님 휴대폰번호
|
|
92
|
+
- **티어 코드** : 영문(대문자)와 숫자3자리로 티어코드 설정
|
|
93
|
+
- 하위상점 연동시 티어코드로 구분합니다.
|
|
94
|
+
- **결제알림(Webhook) 설정** : 상위상점의 웹훅 URL과 동일하게 설정하실 경우 체크
|