@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,769 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 프로모션 결제 연동하기
|
|
3
|
+
description: 프로모션 할인금액을 적용하는 방법을 안내합니다.
|
|
4
|
+
targetVersions:
|
|
5
|
+
- v1
|
|
6
|
+
- v2
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 프로모션 결제 연동하기
|
|
10
|
+
|
|
11
|
+
고객사에서 카드사 즉시할인을 쉽게 적용하고 운영 관리하실 수 있도록 프로모션 기능을 제공하고 있습니다.
|
|
12
|
+
포트원 콘솔 내 **프로모션** 메뉴에서 카드사 별 프로모션을 생성 후 결제 요청 시 적용할 수 있으며,
|
|
13
|
+
프로모션에 설정된 예산, 할인방식, 할인금액/할인률에 따라 자동으로 계산되어 결제가 승인됩니다.
|
|
14
|
+
|
|
15
|
+
<div class="hint" data-style="info">
|
|
16
|
+
|
|
17
|
+
프로모션 메뉴의 경우 도입 고객사에 한하여 포트원 콘솔 내에서 확인하실 수 있습니다.
|
|
18
|
+
|
|
19
|
+
프로모션 결제를 연동하시려면 관리자콘솔에서 프로모션을 먼서 생성해야합니다.
|
|
20
|
+
프로모션 생성 방법이 궁금하다면 [프로모션 설정 가이드](https://developers.portone.io/opi/ko/extra/promotion/console-guide)를 확인해 보세요.
|
|
21
|
+
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
### 프로모션 할인 금액 표시하기
|
|
25
|
+
|
|
26
|
+
포트원에서 제공하는 프로모션을 이용하시는 경우 결제 요청 전 고객사에서 주문 페이지를 구현하여 사용하시길 권장드립니다.
|
|
27
|
+
|
|
28
|
+
고객사의 주문 페이지에 프로모션 할인 금액을 표시하시려면 [프로모션 단건 조회 API](https://developers.portone.io/api/rest-v2/promotion?v=v2)를 참고하여
|
|
29
|
+
사용할 프로모션 아이디로 API를 조회한 후 응답 필드의 `discountPolicy.partitions[]` 내의 `scheme`과 `amountFrom` 데이터를 갖고 직접 계산해서 사용하시길 권장드립니다.
|
|
30
|
+
|
|
31
|
+
**프로모션 할인 정책 조회 예시**
|
|
32
|
+
|
|
33
|
+
예를 들어 조회할 프로모션의 할인 정책이 `10000원 이상 결제 시 10% 할인, 50000원 이상 결제 시 20% 할인` 이라면 `discountPolicy` 필드는 아래와 같이 조회가 될 것입니다.
|
|
34
|
+
|
|
35
|
+
```javascript
|
|
36
|
+
const promotion = {
|
|
37
|
+
// ... other fields
|
|
38
|
+
discountPolicy: {
|
|
39
|
+
partitions: [
|
|
40
|
+
{
|
|
41
|
+
amountFrom: 10000,
|
|
42
|
+
scheme: {
|
|
43
|
+
type: "PERCENT",
|
|
44
|
+
percent: 10,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
amountFrom: 50000,
|
|
49
|
+
scheme: {
|
|
50
|
+
type: "PERCENT",
|
|
51
|
+
percent: 20,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
아래와 같은 로직으로 프로모션이 적용된 이후의 금액을 계산하실 수 있습니다.
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
const selectDiscountScheme = (partitions, amount) => {
|
|
63
|
+
const select = (partitions) => {
|
|
64
|
+
const [head, ...tail] = partitions;
|
|
65
|
+
if (tail.length === 0) {
|
|
66
|
+
return head.scheme;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const from = head.amountFrom;
|
|
70
|
+
const to = tail[0].amountFrom;
|
|
71
|
+
|
|
72
|
+
if (from <= amount && amount < to) return head.scheme;
|
|
73
|
+
else return select(tail);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
if (partitions[0].amountFrom > amount) return null;
|
|
77
|
+
else return select(partitions);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const getPaymentAmount = (discountScheme, amount) => {
|
|
81
|
+
if (discountScheme.type == "PERCENT") {
|
|
82
|
+
// 정률 할인
|
|
83
|
+
return amount - (amount * discountScheme.percent) / 100;
|
|
84
|
+
} else {
|
|
85
|
+
// 정액 할인
|
|
86
|
+
return amount - discountScheme.amount;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
const orderAmount = getOrderAmount();
|
|
91
|
+
const response = await fetch(
|
|
92
|
+
`https://api.portone.io/promotions/${promotionId}`,
|
|
93
|
+
{
|
|
94
|
+
method: "GET",
|
|
95
|
+
headers: {
|
|
96
|
+
Authorization: `PortOne ${PORTONE_API_SECRET}`,
|
|
97
|
+
"Content-Type": "application/json",
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
);
|
|
101
|
+
const promotion = await response.json();
|
|
102
|
+
|
|
103
|
+
// 금액 구간에 맞는 할인 정책을 구합니다.
|
|
104
|
+
const discountScheme = selectDiscountScheme(
|
|
105
|
+
promotion.discountPolicy.partitions,
|
|
106
|
+
orderAmount,
|
|
107
|
+
);
|
|
108
|
+
// 프로모션이 적용된 실결제 금액을 구합니다.
|
|
109
|
+
const paymentAmount = getPaymentAmount(discountScheme, orderAmount);
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## SDK(결제창) 인증결제 연동하기
|
|
113
|
+
|
|
114
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
115
|
+
|
|
116
|
+
SDK를 이용하는 경우 결제 호출 시 생성한 프로모션의 ID를 전용 파라미터인 `promotion_id`에 지정하여 사용이 가능합니다.
|
|
117
|
+
|
|
118
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
119
|
+
|
|
120
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
121
|
+
|
|
122
|
+
SDK를 이용하는 경우 결제 호출 시 생성한 프로모션의 ID를 전용 파라미터인 `promotionId`에 지정하여 사용이 가능합니다.
|
|
123
|
+
|
|
124
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
125
|
+
|
|
126
|
+
프로모션 결제의 경우 특정 카드사 결제 시 적용되므로 결제 호출 시 **카드 다이렉트**호출 방식만 지원되며,
|
|
127
|
+
해당 프로모션의 카드사와 다이렉트 호출 카드사가 일치하는 경우에만 프로모션 조건이 적용됩니다.
|
|
128
|
+
|
|
129
|
+
만약, 카드사가 일치하지 않는 경우 에러가 리턴되며 결제 진행이 불가하오니 유의하시길 바랍니다.
|
|
130
|
+
|
|
131
|
+
이 외에 다른 결제 기능들은 기존과 동일하게 사용이 가능합니다.
|
|
132
|
+
|
|
133
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
134
|
+
|
|
135
|
+
인증결제와 관련된 자세한 내용은 [인증 결제 연동하기](https://developers.portone.io/opi/ko/integration/start/v1/auth) 및 [결제요청 파라미터](https://developers.portone.io/sdk/ko/v1-sdk/javascript-sdk/payrq) 문서를 참고하시기 바랍니다.
|
|
136
|
+
|
|
137
|
+
### 예제 코드
|
|
138
|
+
|
|
139
|
+
```ts
|
|
140
|
+
IMP.request_pay(
|
|
141
|
+
{
|
|
142
|
+
isPromotion: true, //프로모션 사용 여부
|
|
143
|
+
promotion_id: "promotion-id-86e1ff2a-2c3a-451c-bdd3-e5cd1664bc3e", //적용할 프로모션 아이디 입력 (Ex. 현대카드 프로모션)
|
|
144
|
+
channelKey: "{콘솔 내 연동 정보의 채널키}",
|
|
145
|
+
pay_method: "card", //결제수단 선택
|
|
146
|
+
card: {
|
|
147
|
+
direct: {
|
|
148
|
+
code: "367", //현대카드 다이렉트 호출
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
merchant_uid: "ORD20180131-0000011", //고객사 주문번호
|
|
152
|
+
name: "Norway swivel chair", //주문명
|
|
153
|
+
amount: 1000, // 결제 금액
|
|
154
|
+
//고객 정보
|
|
155
|
+
buyer_email: "gildong@gmail.com",
|
|
156
|
+
buyer_name: "Hong Gildong",
|
|
157
|
+
buyer_tel: "010-4242-4242",
|
|
158
|
+
buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul",
|
|
159
|
+
buyer_postcode: "01181",
|
|
160
|
+
},
|
|
161
|
+
function (rsp) {
|
|
162
|
+
// callback
|
|
163
|
+
if (rsp.success) {
|
|
164
|
+
// Payment is successful
|
|
165
|
+
} else {
|
|
166
|
+
// Payment failed
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
);
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
173
|
+
|
|
174
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
175
|
+
|
|
176
|
+
인증결제와 관련된 자세한 내용은 [인증결제 연동하기](https://developers.portone.io/opi/ko/integration/start/v2/checkout) 및 [결제요청 파라미터](https://developers.portone.io/sdk/ko/v2-sdk/payment-request) 문서를 참고하시기 바랍니다.
|
|
177
|
+
|
|
178
|
+
### 예제 코드
|
|
179
|
+
|
|
180
|
+
```tsx
|
|
181
|
+
//포트원 인증결제 SDK 호출
|
|
182
|
+
PortOne.requestPayment({
|
|
183
|
+
storeId: "store-4ff4af41-85e3-4559-8eb8-0d08a2c6ceec",
|
|
184
|
+
promotionId: "promotion-id-86e1ff2a-2c3a-451c-bdd3-e5cd1664bc3e", //적용할 프로모션 아이디 입력 (Ex. 현대카드 프로모션)
|
|
185
|
+
//카드 다이렉트 호출
|
|
186
|
+
card: {
|
|
187
|
+
cardCompany: "HYUNDAI_CARD",
|
|
188
|
+
},
|
|
189
|
+
//기타 인증결제 파라미터 설정
|
|
190
|
+
channelKey: "channel-key-f042e8e2-92f1-4f68-ad61-cec6ede41529",
|
|
191
|
+
paymentId: `payment-${crypto.randomUUID()}`,
|
|
192
|
+
orderName: "나이키 와플 트레이너 2 SD",
|
|
193
|
+
totalAmount: 1000,
|
|
194
|
+
currency: "CURRENCY_KRW",
|
|
195
|
+
payMethod: "CARD",
|
|
196
|
+
customer: {
|
|
197
|
+
fullName: "홍길동",
|
|
198
|
+
phoneNumber: "010-1234-5678",
|
|
199
|
+
email: "test@test.com",
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
205
|
+
|
|
206
|
+
### 주요 파라미터
|
|
207
|
+
|
|
208
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
209
|
+
|
|
210
|
+
- promotion\_id?: string
|
|
211
|
+
|
|
212
|
+
**프로모션 ID**
|
|
213
|
+
|
|
214
|
+
관리자 콘솔의 \[프로모션] 메뉴에서 확인할 수 있습니다.
|
|
215
|
+
|
|
216
|
+
프로모션 ID 지정 및 카드 다이렉트 방식으로 결제창을 호출하면, 프로모션 내 설정된 할인 조건 및 금액에 따라
|
|
217
|
+
할인 금액이 적용되어 결제가 진행됩니다.
|
|
218
|
+
|
|
219
|
+
- card?: object
|
|
220
|
+
|
|
221
|
+
**카드 결제 옵션 설정**
|
|
222
|
+
|
|
223
|
+
- direct?: object
|
|
224
|
+
|
|
225
|
+
**카드 다이렉트 호출**
|
|
226
|
+
|
|
227
|
+
- code?: string
|
|
228
|
+
|
|
229
|
+
**카드사 코드**
|
|
230
|
+
|
|
231
|
+
카드 다이렉트 호출 시 [카드사 코드](https://developers.portone.io/opi/ko/support/code-info/card-code) 문서를 참조하여 프로모션과 동일한 카드사로 지정해야 합니다.
|
|
232
|
+
|
|
233
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
234
|
+
|
|
235
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
236
|
+
|
|
237
|
+
- promotionId?: string
|
|
238
|
+
|
|
239
|
+
**프로모션 ID**
|
|
240
|
+
|
|
241
|
+
관리자 콘솔의 \[프로모션] 메뉴에서 확인할 수 있습니다.
|
|
242
|
+
|
|
243
|
+
프로모션 ID 지정 및 카드 다이렉트 방식으로 결제창을 호출하면, 프로모션 내 설정된 할인 조건 및 금액에 따라
|
|
244
|
+
할인 금액이 적용되어 결제가 진행됩니다.
|
|
245
|
+
|
|
246
|
+
- card?: object
|
|
247
|
+
|
|
248
|
+
**카드 정보**
|
|
249
|
+
|
|
250
|
+
- cardCompany?: string
|
|
251
|
+
|
|
252
|
+
**카드사 다이렉트 호출 시 필요한 카드사 식별 값**
|
|
253
|
+
|
|
254
|
+
카드 다이렉트 호출 시 [카드사 식별 값](https://developers.portone.io/sdk/ko/v2-sdk/payment-request?v=v2#card-object) 문서를 참조하여 프로모션과 동일한 카드사로 지정해야 합니다.
|
|
255
|
+
|
|
256
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
257
|
+
|
|
258
|
+
### 유의사항
|
|
259
|
+
|
|
260
|
+
<details>
|
|
261
|
+
|
|
262
|
+
<summary> 프로모션 결제를 이용하는 경우 카드 다이렉트 호출 방식으로 결제를 요청해야합니다. </summary>
|
|
263
|
+
|
|
264
|
+
결제 요청 시 프로모션 아이디를 지정했더라도 카드 다이렉트 방식으로 호출하지 않는 경우 에러가 리턴됩니다.
|
|
265
|
+
|
|
266
|
+
</details>
|
|
267
|
+
|
|
268
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
269
|
+
|
|
270
|
+
<details>
|
|
271
|
+
|
|
272
|
+
<summary> 프로모션 생성시 카드사와 결제 호출시 카드사가 일치해야 합니다. </summary>
|
|
273
|
+
|
|
274
|
+
프로모션 생성시 지정한 카드사와 결제 호출시 `card.direct.code`에 지정한 카드사가 일치하지 않는 경우 에러가 리턴됩니다.
|
|
275
|
+
결제 요청시 동일한 카드사로 매칭하여 호출해야 합니다.
|
|
276
|
+
|
|
277
|
+
</details>
|
|
278
|
+
|
|
279
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
280
|
+
|
|
281
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
282
|
+
|
|
283
|
+
<details>
|
|
284
|
+
|
|
285
|
+
<summary> 프로모션 생성시 카드사와 결제 호출시 카드사가 일치해야 합니다. </summary>
|
|
286
|
+
|
|
287
|
+
프로모션 생성시 지정한 카드사와 결제 호출시 `card.cardCompany`에 지정한 카드사가 일치하지 않는 경우 에러가 리턴됩니다.
|
|
288
|
+
결제 요청시 동일한 카드사로 매칭하여 호출해야 합니다.
|
|
289
|
+
|
|
290
|
+
</details>
|
|
291
|
+
|
|
292
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
293
|
+
|
|
294
|
+
## API 수기(키인)결제 연동하기
|
|
295
|
+
|
|
296
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
297
|
+
|
|
298
|
+
API를 이용하는 경우 결제 호출 시 생성한 프로모션의 ID를 전용 파라미터인 `promotion_id`에 지정하여 사용이 가능합니다.
|
|
299
|
+
|
|
300
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
301
|
+
|
|
302
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
303
|
+
|
|
304
|
+
API를 이용하는 경우 결제 호출 시 생성한 프로모션의 ID를 전용 파라미터인 `promotionId`에 지정하여 사용이 가능합니다.
|
|
305
|
+
|
|
306
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
307
|
+
|
|
308
|
+
해당 프로모션의 카드사와 수기(키인) 결제 요청 시 입력한 카드의 카드사가 일치하는 경우에만 프로모션 조건이 적용됩니다.
|
|
309
|
+
(입력한 카드의 카드사 정보는 카드 BIN번호를 기준으로 체크됩니다.)
|
|
310
|
+
만약, 카드사가 일치하지 않는 경우 에러가 리턴되며 결제 진행이 불가하오니 유의하시길 바랍니다.
|
|
311
|
+
|
|
312
|
+
이 외에 다른 결제 기능들은 기존과 동일하게 사용이 가능합니다.
|
|
313
|
+
|
|
314
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
315
|
+
|
|
316
|
+
수기(키인)결제와 관련된 자세한 내용은 [비인증결제 연동하기](https://developers.portone.io/opi/ko/integration/start/v1/non-auth) 문서를 참고하시기 바랍니다.
|
|
317
|
+
|
|
318
|
+
### 예제 코드
|
|
319
|
+
|
|
320
|
+
```ts
|
|
321
|
+
// card_number, expiry, birth, pwd_2digit 등 정보를 전달받습니다.
|
|
322
|
+
// 포트원 비인증 결제(일회성) API 호출
|
|
323
|
+
const onetimeResponse = await fetch(
|
|
324
|
+
"https://api.iamport.kr/subscribe/payments/onetime",
|
|
325
|
+
{
|
|
326
|
+
method: "POST",
|
|
327
|
+
headers: {
|
|
328
|
+
Authorization: `Bearer ${ACCESS_TOKEN}`,
|
|
329
|
+
"Content-Type": "application/json",
|
|
330
|
+
},
|
|
331
|
+
body: JSON.stringify({
|
|
332
|
+
pg: `${pg_provider}.${pg_mid}`,
|
|
333
|
+
card_number: "YYYY-YYYY-YYYY-YYYY", // 카드 번호 16자리
|
|
334
|
+
expiry: "YYYY-MM", // 카드 유효기간
|
|
335
|
+
birth: "YYMMDD", // 생년 월일. 무기명 법인카드의 경우 사업자 번호 10자리 입력
|
|
336
|
+
pwd_2digit: "NN", //카드 비밀번호 앞 2자리
|
|
337
|
+
promotionId: "promotion-id-86e1ff2a-2c3a-451c-bdd3-e5cd1664bc3e", //적용할 프로모션 아이디 입력
|
|
338
|
+
// 중략...
|
|
339
|
+
}),
|
|
340
|
+
},
|
|
341
|
+
);
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
345
|
+
|
|
346
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
347
|
+
|
|
348
|
+
수기(키인)결제와 관련된 자세한 내용은 [수기(키인)결제 연동하기](https://developers.portone.io/opi/ko/integration/start/v2/keyin) 문서를 참고하시기 바랍니다.
|
|
349
|
+
|
|
350
|
+
### 예제 코드
|
|
351
|
+
|
|
352
|
+
```ts
|
|
353
|
+
// 포트원 수기(키인)결제 API 호출
|
|
354
|
+
const paymentResponse = await fetch(
|
|
355
|
+
`https://api.portone.io/payments/${encodeURIComponent(UNIQUE_PAYMENT_ID)}/instant`,
|
|
356
|
+
{
|
|
357
|
+
method: "POST",
|
|
358
|
+
headers: {
|
|
359
|
+
Authorization: `PortOne ${PORTONE_API_SECRET}`,
|
|
360
|
+
"Content-Type": "application/json",
|
|
361
|
+
},
|
|
362
|
+
body: JSON.stringify({
|
|
363
|
+
channelKey: "channel-key-f042e8e2-92f1-4f68-ad61-cec6ede41529",
|
|
364
|
+
//적용할 프로모션 아이디 입력
|
|
365
|
+
promotionId: "promotion-id-86e1ff2a-2c3a-451c-bdd3-e5cd1664bc3e",
|
|
366
|
+
orderName: "1개월 이용권",
|
|
367
|
+
// 수기 결제 API를 참고해 고객 정보를 채워주세요.
|
|
368
|
+
customer: {
|
|
369
|
+
name: {
|
|
370
|
+
full: "김포트", // 고객 이름을 입력해야 합니다.
|
|
371
|
+
},
|
|
372
|
+
},
|
|
373
|
+
amount: {
|
|
374
|
+
total: 8900,
|
|
375
|
+
},
|
|
376
|
+
currency: "KRW",
|
|
377
|
+
|
|
378
|
+
// 수기(키인)결제 API를 참고해 카드 정보를 채워주세요.
|
|
379
|
+
method: {
|
|
380
|
+
card: {
|
|
381
|
+
cardCredintial: {
|
|
382
|
+
number: "0000123400001234", // 16자리 숫자만 입력해야 합니다.
|
|
383
|
+
expiryYear: "26", // 연도의 뒤 2자리를 입력해야 합니다.
|
|
384
|
+
expiryMonth: "12",
|
|
385
|
+
birthOrBusinessRegistrationNumber: "900101", // 생년월일 6자리 또는 사업자 등록번호 10자리를 입력해야 합니다.
|
|
386
|
+
passwordTwoDigits: "00", // 카드 비밀번호 앞 2자리 입력해야 합니다.
|
|
387
|
+
},
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
}),
|
|
391
|
+
},
|
|
392
|
+
);
|
|
393
|
+
if (!paymentResponse.ok)
|
|
394
|
+
throw new Error(`paymentResponse: ${await paymentResponse.json()}`);
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
398
|
+
|
|
399
|
+
### 주요 파라미터
|
|
400
|
+
|
|
401
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
402
|
+
|
|
403
|
+
- promotion\_id: string
|
|
404
|
+
|
|
405
|
+
**프로모션 ID**
|
|
406
|
+
|
|
407
|
+
관리자 콘솔의 \[프로모션] 메뉴에서 확인할 수 있습니다.
|
|
408
|
+
|
|
409
|
+
프로모션 ID 지정 및 카드 다이렉트 방식으로 결제창을 호출하면, 프로모션 내 설정된 할인 조건 및 금액에 따라
|
|
410
|
+
할인 금액이 적용되어 결제가 진행됩니다.
|
|
411
|
+
|
|
412
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
413
|
+
|
|
414
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
415
|
+
|
|
416
|
+
- promotionId: string
|
|
417
|
+
|
|
418
|
+
**프로모션 ID**
|
|
419
|
+
|
|
420
|
+
관리자 콘솔의 \[프로모션] 메뉴에서 확인할 수 있습니다.
|
|
421
|
+
|
|
422
|
+
프로모션 ID 지정 및 카드 다이렉트 방식으로 결제창을 호출하면, 프로모션 내 설정된 할인 조건 및 금액에 따라
|
|
423
|
+
할인 금액이 적용되어 결제가 진행됩니다.
|
|
424
|
+
|
|
425
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
426
|
+
|
|
427
|
+
### 유의사항
|
|
428
|
+
|
|
429
|
+
<details>
|
|
430
|
+
|
|
431
|
+
<summary> 프로모션 생성시 카드사와 결제 요청시 입력된 카드의 카드사가 일치해야 합니다. </summary>
|
|
432
|
+
|
|
433
|
+
프로모션 생성시 지정한 카드사와 결제 요청시 입력한 카드 정보의 카드사가 일치하지 않는 경우 에러가 리턴되며 결제 실패 처리됩니다.
|
|
434
|
+
|
|
435
|
+
</details>
|
|
436
|
+
|
|
437
|
+
## API 정기결제 연동하기
|
|
438
|
+
|
|
439
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
440
|
+
|
|
441
|
+
발급된 빌링키를 이용하여 단건 결제 API 또는 예약 결제 API를 이용하는 경우
|
|
442
|
+
API 요청시 생성한 프로모션의 ID를 전용 파라미터인 `promotion_id`에 지정하여 사용이 가능합니다.
|
|
443
|
+
|
|
444
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
445
|
+
|
|
446
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
447
|
+
|
|
448
|
+
발급된 빌링키를 이용하여 단건 결제 API 또는 예약 결제 API를 이용하는 경우
|
|
449
|
+
API 요청시 생성한 프로모션의 ID를 전용 파라미터인 `promotionId`에 지정하여 사용이 가능합니다.
|
|
450
|
+
|
|
451
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
452
|
+
|
|
453
|
+
해당 프로모션의 카드사와 발급된 빌링키의 카드사가 일치하는 경우에만 프로모션 조건이 적용됩니다.
|
|
454
|
+
만약, 카드사가 일치하지 않는 경우 에러가 리턴되며 결제 진행이 불가하오니 유의하시길 바랍니다.
|
|
455
|
+
|
|
456
|
+
예약 결제를 사용하시는 경우 결제가 실행되는 시점에 예약 시 입력한 프로모션 아이디를 기반으로 예산 및 조건을 확인한 후
|
|
457
|
+
적용됩니다. 만약 결제가 실행되는 시점에 예산 소진 상태이거나 프로모션이 종료된 상태인 경우 할인이 적용되지 않습니다.
|
|
458
|
+
|
|
459
|
+
이 외에 다른 결제 기능들은 기존과 동일하게 사용이 가능합니다.
|
|
460
|
+
|
|
461
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
462
|
+
|
|
463
|
+
예약 결제와 관련된 자세한 내용은 [결제 예약 API](https://developers.portone.io/api/rest-v1/nonAuthPayment.subscribe#post%20%2Fsubscribe%2Fpayments%2Fschedule) 문서를 참고하시기 바랍니다.
|
|
464
|
+
|
|
465
|
+
### 예제 코드
|
|
466
|
+
|
|
467
|
+
<div class="tabs-container">
|
|
468
|
+
|
|
469
|
+
<div class="tabs-content" data-title="빌링키 결제">
|
|
470
|
+
|
|
471
|
+
```ts
|
|
472
|
+
// 포트원 빌링키 결제 API 호출
|
|
473
|
+
const paymentResponse = await fetch(
|
|
474
|
+
"https://api.iamport.kr/subscribe/payments/again",
|
|
475
|
+
{
|
|
476
|
+
method: "POST",
|
|
477
|
+
headers: {
|
|
478
|
+
Authorization: `Bearer ${ACCESS_TOKEN}`,
|
|
479
|
+
"Content-Type": "application/json",
|
|
480
|
+
},
|
|
481
|
+
body: JSON.stringify({
|
|
482
|
+
customer_uid,
|
|
483
|
+
merchant_uid,
|
|
484
|
+
name: "월간 이용권 정기결제",
|
|
485
|
+
// 빌링키 결제 API를 참고해 고객 정보를 채워주세요.
|
|
486
|
+
amount: {
|
|
487
|
+
total: 8900,
|
|
488
|
+
},
|
|
489
|
+
currency: "KRW",
|
|
490
|
+
//적용할 프로모션 아이디 입력
|
|
491
|
+
promotion_id: "promotion-id-86e1ff2a-2c3a-451c-bdd3-e5cd1664bc3e",
|
|
492
|
+
}),
|
|
493
|
+
},
|
|
494
|
+
);
|
|
495
|
+
if (!paymentResponse.ok)
|
|
496
|
+
throw new Error(`paymentResponse: ${await paymentResponse.json()}`);
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
</div>
|
|
500
|
+
|
|
501
|
+
<div class="tabs-content" data-title="빌링키 예약 결제">
|
|
502
|
+
|
|
503
|
+
```ts
|
|
504
|
+
// 결제 예약
|
|
505
|
+
axios({
|
|
506
|
+
url: `https://api.iamport.kr/subscribe/payments/schedule`,
|
|
507
|
+
method: "post",
|
|
508
|
+
headers: { Authorization: access_token },
|
|
509
|
+
data: {
|
|
510
|
+
customer_uid: "gildong_0001_1234", // 카드(빌링키)와 1:1로 대응하는 값
|
|
511
|
+
promotion_id: "promotion-id-86e1ff2a-2c3a-451c-bdd3-e5cd1664bc3e", //적용할 프로모션 아이디 값
|
|
512
|
+
schedules: [
|
|
513
|
+
{
|
|
514
|
+
merchant_uid: "order_monthly_0001", // 주문 번호
|
|
515
|
+
schedule_at: 1519862400, // 결제 시도 시각 in Unix Time Stamp. 예: 다음 달 1일
|
|
516
|
+
amount: 8900,
|
|
517
|
+
name: "월간 이용권 정기결제",
|
|
518
|
+
buyer_name: "홍길동",
|
|
519
|
+
buyer_tel: "01012345678",
|
|
520
|
+
buyer_email: "gildong@gmail.com",
|
|
521
|
+
},
|
|
522
|
+
],
|
|
523
|
+
},
|
|
524
|
+
});
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
</div>
|
|
528
|
+
|
|
529
|
+
</div>
|
|
530
|
+
|
|
531
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
532
|
+
|
|
533
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
534
|
+
|
|
535
|
+
빌링키 결제와 관련된 자세한 내용은 [빌링결제 연동하기](https://developers.portone.io/opi/ko/integration/start/v2/billing/readme) 문서를 참고하시기 바랍니다.
|
|
536
|
+
|
|
537
|
+
### 예제 코드
|
|
538
|
+
|
|
539
|
+
<div class="tabs-container">
|
|
540
|
+
|
|
541
|
+
<div class="tabs-content" data-title="빌링키 결제">
|
|
542
|
+
|
|
543
|
+
```ts
|
|
544
|
+
const issueResponse = await fetch(
|
|
545
|
+
`https://api.portone.io/payments/${encodeURIComponent(UNIQUE_PAYMENT_ID)}/billing-key`,
|
|
546
|
+
{
|
|
547
|
+
method: "POST",
|
|
548
|
+
headers: {
|
|
549
|
+
Authorization: `PortOne ${PORTONE_API_SECRET}`,
|
|
550
|
+
"Content-Type": "application/json",
|
|
551
|
+
},
|
|
552
|
+
body: JSON.stringify({
|
|
553
|
+
billingKey: "billing-key-018fa367-cdd9-d8fd-2256-c43ce0e475d6", // 발급된 빌링키 값을 입력해야 합니다.
|
|
554
|
+
promotionId: "promotion-id-86e1ff2a-2c3a-451c-bdd3-e5cd1664bc3e", //적용할 프로모션 아이디 입력
|
|
555
|
+
orderName: "후불 결제",
|
|
556
|
+
customer: {
|
|
557
|
+
id: "customerId_2333", // 고객사가 지정한 고객 식별정보를 입력해야 합니다.
|
|
558
|
+
name: {
|
|
559
|
+
full: "김포트", // 고객 이름을 입력해야 합니다.
|
|
560
|
+
},
|
|
561
|
+
phoneNumber: "01000001234", // 고객 전화번호를 입력해야 합니다.
|
|
562
|
+
email: "port@portone.io", // 고객 이메일을 입력해야 합니다.
|
|
563
|
+
},
|
|
564
|
+
amount: {
|
|
565
|
+
total: 8900,
|
|
566
|
+
},
|
|
567
|
+
currency: "KRW",
|
|
568
|
+
}),
|
|
569
|
+
},
|
|
570
|
+
);
|
|
571
|
+
if (!issueResponse.ok)
|
|
572
|
+
throw new Error(`issueResponse: ${await issueResponse.json()}`);
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
</div>
|
|
576
|
+
|
|
577
|
+
<div class="tabs-content" data-title="빌링키 예약 결제">
|
|
578
|
+
|
|
579
|
+
```ts
|
|
580
|
+
const issueResponse = await fetch(
|
|
581
|
+
`https://api.portone.io/payments/${encodeURIComponent(UNIQUE_PAYMENT_ID)}/schedule`,
|
|
582
|
+
{
|
|
583
|
+
method: "POST",
|
|
584
|
+
headers: {
|
|
585
|
+
Authorization: `PortOne ${PORTONE_API_SECRET}`,
|
|
586
|
+
"Content-Type": "application/json",
|
|
587
|
+
},
|
|
588
|
+
body: JSON.stringify({
|
|
589
|
+
payment: {
|
|
590
|
+
billingKey: "billing-key-018fa367-cdd9-d8fd-2256-c43ce0e475d6", // 발급된 빌링키 값을 입력해야 합니다.
|
|
591
|
+
promotionId: "promotion-id-86e1ff2a-2c3a-451c-bdd3-e5cd1664bc3e", //적용할 프로모션 아이디 입력
|
|
592
|
+
orderName: "월간 이용권 정기 결제",
|
|
593
|
+
customer: {
|
|
594
|
+
id: "customerId_2333", // 고객사가 지정한 고객 식별정보를 입력해야 합니다.
|
|
595
|
+
name: {
|
|
596
|
+
full: "김포트", // 고객 이름을 입력해야 합니다.
|
|
597
|
+
},
|
|
598
|
+
phoneNumber: "01000001234", // 고객 전화번호를 입력해야 합니다.
|
|
599
|
+
email: "port@portone.io", // 고객 이메일을 입력해야 합니다.
|
|
600
|
+
},
|
|
601
|
+
amount: {
|
|
602
|
+
total: 8900,
|
|
603
|
+
},
|
|
604
|
+
currency: "KRW",
|
|
605
|
+
},
|
|
606
|
+
timeToPay: "2024-05-01T00:00:00+09:00", // ISO8601 형식으로 입력해야 합니다.
|
|
607
|
+
}),
|
|
608
|
+
},
|
|
609
|
+
);
|
|
610
|
+
if (!issueResponse.ok)
|
|
611
|
+
throw new Error(`issueResponse: ${await issueResponse.json()}`);
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
</div>
|
|
615
|
+
|
|
616
|
+
</div>
|
|
617
|
+
|
|
618
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
619
|
+
|
|
620
|
+
### 주요 파라미터
|
|
621
|
+
|
|
622
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
623
|
+
|
|
624
|
+
- promotion\_id: string
|
|
625
|
+
|
|
626
|
+
**프로모션 ID**
|
|
627
|
+
|
|
628
|
+
관리자 콘솔의 \[프로모션] 메뉴에서 확인할 수 있습니다.
|
|
629
|
+
|
|
630
|
+
프로모션 ID 지정 및 카드 다이렉트 방식으로 결제창을 호출하면, 프로모션 내 설정된 할인 조건 및 금액에 따라
|
|
631
|
+
할인 금액이 적용되어 결제가 진행됩니다.
|
|
632
|
+
|
|
633
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
634
|
+
|
|
635
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
636
|
+
|
|
637
|
+
- promotionId: string
|
|
638
|
+
|
|
639
|
+
**프로모션 ID**
|
|
640
|
+
|
|
641
|
+
관리자 콘솔의 \[프로모션] 메뉴에서 확인할 수 있습니다.
|
|
642
|
+
|
|
643
|
+
프로모션 ID 지정 및 카드 다이렉트 방식으로 결제창을 호출하면, 프로모션 내 설정된 할인 조건 및 금액에 따라
|
|
644
|
+
할인 금액이 적용되어 결제가 진행됩니다.
|
|
645
|
+
|
|
646
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
647
|
+
|
|
648
|
+
### 유의사항
|
|
649
|
+
|
|
650
|
+
<details>
|
|
651
|
+
|
|
652
|
+
<summary> 프로모션 생성시 카드사와 발급된 빌링키의 카드사가 일치해야 합니다. </summary>
|
|
653
|
+
|
|
654
|
+
프로모션 생성시 지정한 카드사와 발급된 빌링키의 카드사가 일치하지 않는 경우 에러가 리턴되며 결제 실패 처리됩니다.
|
|
655
|
+
|
|
656
|
+
</details>
|
|
657
|
+
|
|
658
|
+
## 공통 유의사항
|
|
659
|
+
|
|
660
|
+
<div class="hint" data-style="info">
|
|
661
|
+
|
|
662
|
+
프로모션 서비스에서 제공하는 로직은 내부 사정에 의해 변동될 수 있으며, 변동 시 고객사에 사전 고지될 예정입니다.
|
|
663
|
+
|
|
664
|
+
</div>
|
|
665
|
+
|
|
666
|
+
<details>
|
|
667
|
+
|
|
668
|
+
<summary> 프로모션이 진행중이 아닌 경우 할인 적용이 되지 않습니다. </summary>
|
|
669
|
+
|
|
670
|
+
결제 요청 시 프로모션 아이디를 지정했더라도 프로모션이 **진행중** 상태가 아닌 경우 프로모션 할인 적용 없이
|
|
671
|
+
일반 결제와 동일한 프로세스로 결제가 진행됩니다.
|
|
672
|
+
|
|
673
|
+
</details>
|
|
674
|
+
|
|
675
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
676
|
+
|
|
677
|
+
<details>
|
|
678
|
+
|
|
679
|
+
<summary> 프로모션 결제 완료 건 취소시 예산이 복구됩니다. </summary>
|
|
680
|
+
|
|
681
|
+
프로모션 할인이 적용된 결제 완료(`status:paid`)건을 취소하는 경우 기본적으로 적용되었던 할인 금액이 프로모션 예산에 복구됩니다.
|
|
682
|
+
만약 예산 복구 기능 사용을 원하지 않는 경우 프로모션 추가/수정시 **프로모션 예산 미복구**를 활성화해 주세요.
|
|
683
|
+
|
|
684
|
+
</details>
|
|
685
|
+
|
|
686
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
687
|
+
|
|
688
|
+
<details>
|
|
689
|
+
|
|
690
|
+
<summary> 프로모션 할인 적용 시점 안내 </summary>
|
|
691
|
+
|
|
692
|
+
결제창을 호출하는 시점에 프로모션 예산에서 할인 금액에 대해 선점하고 있기 때문에, 실제 예산이 모두 소진되지 않더라도 선점된 프로모션 금액을 포함하여
|
|
693
|
+
예산을 초과하는 경우 할인 금액이 적용되지 않습니다.
|
|
694
|
+
|
|
695
|
+
만약 결제 시도 중 결제 실패 혹은 사용자가 결제 승인 전 취소하는 경우 선점되었던 할인 금액은 즉시 예산으로 귀속됩니다.
|
|
696
|
+
이후 결제 요청 고객에게 다시 할인 금액이 적용됩니다.
|
|
697
|
+
|
|
698
|
+
</details>
|
|
699
|
+
|
|
700
|
+
<details>
|
|
701
|
+
|
|
702
|
+
<summary> 프로모션 할인 미적용 케이스 안내 </summary>
|
|
703
|
+
|
|
704
|
+
생성한 프로모션의 최소 결제 금액 조건에 따라 프로모션 할인이 적용되지 않을 수 있습니다.
|
|
705
|
+
또한 할인 조건에 따라 적용되어야 하는 할인 금액보다 예산이 적은 경우 프로모션 할인이 적용되지 않습니다.
|
|
706
|
+
|
|
707
|
+
예시) 프로모션 A의 상태가 남은 예산 금액 : 1,000원, 할인율 : 10%일 때,
|
|
708
|
+
주문 금액이 200,000원인 경우 적용되어야 하는 할인 금액이 2,000원이므로 고객이 결제 요청 시 프로모션 할인이 적용되지 않습니다.
|
|
709
|
+
|
|
710
|
+
</details>
|
|
711
|
+
|
|
712
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
713
|
+
|
|
714
|
+
<details>
|
|
715
|
+
|
|
716
|
+
<summary> 프로모션이 할인 적용 건 부분 취소 안내 </summary>
|
|
717
|
+
|
|
718
|
+
프로모션 할인이 적용된 거래 건을 부분 취소하는 경우 상품의 주문금액(프로모션 할인이 적용되지 않은 원래 금액)
|
|
719
|
+
을 입력해야 합니다.
|
|
720
|
+
|
|
721
|
+
결제 취소 시 콘솔 내 결제취소 상세 모달에서 \[프로모션 예산 설정] 옵션을 선택할 수 있으며, 결제 취소 API 이용시
|
|
722
|
+
`promotionDiscountRetainOption` 파라미터로 옵션을 선택할 수 있습니다.
|
|
723
|
+
|
|
724
|
+
- 프로모션 혜택 조정 (기본설정) : 결제 부분 취소시 잔여 결제 금액이 할인 적용 기준 금액보다 적은 경우
|
|
725
|
+
잔여 결제 금액에 맞추어 프로모션 할인 금액이 차감되어 적용됩니다.
|
|
726
|
+
|
|
727
|
+
- 예시 1 :
|
|
728
|
+
프로모션 할인 조건이 `5천원 이상 결제시 10% 할인`일 때, 6000원 결제 요청시 프로모션 할인이 적용되어 5400원이 실제 결제됩니다.
|
|
729
|
+
이 때, 2000원 부분 취소시 **프로모션 혜택 조정** 옵션을 선택한 경우 프로모션 조건에 부합하지 않아 실제 1400원이 결제 취소 요청되며,
|
|
730
|
+
결제 완료 금액은 4000원이 됩니다.
|
|
731
|
+
|
|
732
|
+
- 예시 2 :
|
|
733
|
+
프로모션 할인 조건이 `5천원 이상 결제시 1000원 할인`일 때, 6000원 결제 요청시 프로모션 할인이 적용되어 5000원이 실제 결제됩니다.
|
|
734
|
+
이 때, 2000원 부분 취소시 **프로모션 혜택 조정** 옵션을 선택한 경우 프로모션 조건에 부합하지 않아 실제 1000원이 결제 취소 요청되며,
|
|
735
|
+
결제 완료 금액은 4000원이 됩니다.
|
|
736
|
+
|
|
737
|
+
- 프로모션 혜택 유지 : 결제 부분 취소시 잔여 결제 금액이 할인 적용 기준 금액보다 적더라도 프로모션 할인 혜택이
|
|
738
|
+
그대로 유지됩니다. 할인 혜택을 동일한 수준으로 유지하기 위해 기존에 적용된 할인 조건을 할인율로 환산하여 적용하게 됩니다.
|
|
739
|
+
|
|
740
|
+
- 예시 1 :
|
|
741
|
+
프로모션 할인 조건이 `5천원 이상 결제시 10% 할인`일 때, 6000원 결제 요청시 프로모션 할인이 적용되어 5400원이 실제 결제됩니다.
|
|
742
|
+
이 때, 2000원 부분 취소시 **프로모션 혜택 유지** 옵션을 선택한 경우 실제 1800원이 결제 취소 요청되며,
|
|
743
|
+
결제 완료 금액은 3600원이 됩니다.
|
|
744
|
+
(주문금액 6000원에서 2000원 부분 취소시 주문금액은 4000원이며 기존 할인 조건인 10% 할인이 유지되어 실 결제 금액은 3600원이 됩니다.)
|
|
745
|
+
|
|
746
|
+
- 예시 2 :
|
|
747
|
+
프로모션 할인 조건이 `5천원 이상 결제시 1000원 할인`일 때 6000원 결제 요청시 프로모션 할인이 적용되어 5000원이 실제 결제됩니다.
|
|
748
|
+
이 때, 2000원 부분 취소시 **프로모션 혜택 유지** 옵션을 선택한 경우 실제 1800원이 결제 취소 요청되며,
|
|
749
|
+
결제 완료 금액은 3200원이 됩니다.
|
|
750
|
+
(본 예시에서 기존에 적용된 할인 조건인 `5천원 이상 결제시 1000원 할인`은 20% 할인으로 환산됩니다. 주문금액 6000원에서 2000원 부분 취소시
|
|
751
|
+
남은 주문금액은 4000원이므로, 취소 이후 결제 완료 금액은 3200원이 되고 실제 취소 금액은 1800원이 됩니다.)
|
|
752
|
+
|
|
753
|
+
</details>
|
|
754
|
+
|
|
755
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
756
|
+
|
|
757
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
758
|
+
|
|
759
|
+
<details>
|
|
760
|
+
|
|
761
|
+
<summary> 프로모션 할인이 적용된 건에 여러번 부분 취소 요청하는 경우 안내 </summary>
|
|
762
|
+
|
|
763
|
+
프로모션 할인이 적용된 거래 건을 여러번 부분 취소하는 경우 처음 선택한 취소 옵션으로만 가능합니다.
|
|
764
|
+
예를 들어 \[프로모션 혜택 유지]로 처음 부분 취소한 경우 동일 거래 건에 대해 부분 취소를 진행하는 경우
|
|
765
|
+
\[프로모션 혜택 유지] 옵션으로만 취소가 가능합니다.
|
|
766
|
+
|
|
767
|
+
</details>
|
|
768
|
+
|
|
769
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|