diff --git a/app.config.timestamp_1737363465597.js b/app.config.timestamp_1737363465597.js new file mode 100644 index 000000000..23847a599 --- /dev/null +++ b/app.config.timestamp_1737363465597.js @@ -0,0 +1,151 @@ +// app.config.ts +import { readFile } from "node:fs/promises"; +import path from "node:path"; +import remarkParamTree from "@portone-io/remark-param-tree"; +import yaml from "@rollup/plugin-yaml"; +import rehypeShiki from "@shikijs/rehype"; +import { transformerMetaHighlight } from "@shikijs/transformers"; +import { defineConfig } from "@solidjs/start/config"; +import vinxiMdxPkg from "@vinxi/plugin-mdx"; +import rehypeSlug from "rehype-slug"; +import remarkFrontmatter from "remark-frontmatter"; +import remarkGfm from "remark-gfm"; +import unocss from "unocss/vite"; +import { imagetools } from "vite-imagetools"; + +// src/misc/contentIndex.ts +var indexFilesMapping = { + ko: { + "\uC6D0 \uD398\uC774\uBA3C\uD2B8 \uC778\uD504\uB77C": "opi/ko/", + "\uD30C\uD2B8\uB108 \uC815\uC0B0 \uC790\uB3D9\uD654": "platform/ko/", + "\uB9B4\uB9AC\uC988 \uB178\uD2B8": "release-notes/(note)/", + "API & SDK": "sdk/ko/" + }, + blog: { + "\uAE30\uC220 \uBE14\uB85C\uADF8": "blog/" + } +}; + +// app.config.ts +var { default: vinxiMdx } = vinxiMdxPkg; +var app_config_default = defineConfig({ + server: { + preset: "vercel", + prerender: { + routes: [ + ...Object.keys(indexFilesMapping).map( + (fileName) => `/content-index/${fileName}.json` + ), + "/blog/rss.xml" + ] + }, + rollupConfig: { + external: ["monaco-editor"] + } + }, + extensions: ["ts", "tsx", "mdx"], + vite: () => ({ + plugins: [ + yaml(), + unocss(), + vinxiMdx.withImports({})({ + jsx: true, + jsxImportSource: "solid-js", + providerImportSource: "solid-mdx", + remarkPlugins: [remarkFrontmatter, remarkGfm, remarkParamTree], + rehypePlugins: [ + rehypeSlug, + [ + rehypeShiki, + { + theme: "github-light", + fallbackLanguage: "text", + defaultLanguage: "text", + transformers: [ + { + name: "remove-trailing-newline", + preprocess(code) { + if (code.endsWith("\n")) { + return code.slice(0, -1); + } + return code; + } + }, + transformerMetaHighlight(), + { + name: "line-number-meta", + code(node) { + if (this.options.meta?.__raw?.includes("showLineNumber")) { + this.addClassToHast(node, "line-numbers"); + } + } + }, + { + name: "title", + pre(node) { + const matches = /title="([^"]+)"/.exec( + this.options.meta?.__raw ?? "" + ); + if (matches?.[1]) { + node.children.unshift({ + type: "element", + tagName: "div", + properties: { + className: ["title"] + }, + children: [{ type: "text", value: matches[1] }] + }); + } + } + } + ] + } + ] + ] + }), + imagetools({ + defaultDirectives: (url) => { + const extname = path.extname(url.pathname); + if ( + // formats supported by Sharp (https://sharp.pixelplumbing.com/#formats) + [ + ".png", + ".jpg", + ".jpeg", + ".webp", + ".gif", + ".avif", + ".tiff", + ".tif", + ".svg" + ].includes(extname) + ) { + return new URLSearchParams([ + ["as", "picture"], + ["format", "webp"], + ...url.searchParams.entries() + ]); + } else + return url.searchParams; + } + }), + { + name: "base64-loader", + async transform(_, id) { + const [path2, query] = id.split("?"); + if (query !== "base64" || !path2) + return null; + const data = await readFile(path2); + const base64 = data.toString("base64"); + return `export default '${base64}';`; + } + } + ] + }), + solid: { + exclude: ["./src/misc/opengraph/**/*"] + } +}); +export { + app_config_default as default +}; diff --git a/app.config.timestamp_1737363499924.js b/app.config.timestamp_1737363499924.js new file mode 100644 index 000000000..23847a599 --- /dev/null +++ b/app.config.timestamp_1737363499924.js @@ -0,0 +1,151 @@ +// app.config.ts +import { readFile } from "node:fs/promises"; +import path from "node:path"; +import remarkParamTree from "@portone-io/remark-param-tree"; +import yaml from "@rollup/plugin-yaml"; +import rehypeShiki from "@shikijs/rehype"; +import { transformerMetaHighlight } from "@shikijs/transformers"; +import { defineConfig } from "@solidjs/start/config"; +import vinxiMdxPkg from "@vinxi/plugin-mdx"; +import rehypeSlug from "rehype-slug"; +import remarkFrontmatter from "remark-frontmatter"; +import remarkGfm from "remark-gfm"; +import unocss from "unocss/vite"; +import { imagetools } from "vite-imagetools"; + +// src/misc/contentIndex.ts +var indexFilesMapping = { + ko: { + "\uC6D0 \uD398\uC774\uBA3C\uD2B8 \uC778\uD504\uB77C": "opi/ko/", + "\uD30C\uD2B8\uB108 \uC815\uC0B0 \uC790\uB3D9\uD654": "platform/ko/", + "\uB9B4\uB9AC\uC988 \uB178\uD2B8": "release-notes/(note)/", + "API & SDK": "sdk/ko/" + }, + blog: { + "\uAE30\uC220 \uBE14\uB85C\uADF8": "blog/" + } +}; + +// app.config.ts +var { default: vinxiMdx } = vinxiMdxPkg; +var app_config_default = defineConfig({ + server: { + preset: "vercel", + prerender: { + routes: [ + ...Object.keys(indexFilesMapping).map( + (fileName) => `/content-index/${fileName}.json` + ), + "/blog/rss.xml" + ] + }, + rollupConfig: { + external: ["monaco-editor"] + } + }, + extensions: ["ts", "tsx", "mdx"], + vite: () => ({ + plugins: [ + yaml(), + unocss(), + vinxiMdx.withImports({})({ + jsx: true, + jsxImportSource: "solid-js", + providerImportSource: "solid-mdx", + remarkPlugins: [remarkFrontmatter, remarkGfm, remarkParamTree], + rehypePlugins: [ + rehypeSlug, + [ + rehypeShiki, + { + theme: "github-light", + fallbackLanguage: "text", + defaultLanguage: "text", + transformers: [ + { + name: "remove-trailing-newline", + preprocess(code) { + if (code.endsWith("\n")) { + return code.slice(0, -1); + } + return code; + } + }, + transformerMetaHighlight(), + { + name: "line-number-meta", + code(node) { + if (this.options.meta?.__raw?.includes("showLineNumber")) { + this.addClassToHast(node, "line-numbers"); + } + } + }, + { + name: "title", + pre(node) { + const matches = /title="([^"]+)"/.exec( + this.options.meta?.__raw ?? "" + ); + if (matches?.[1]) { + node.children.unshift({ + type: "element", + tagName: "div", + properties: { + className: ["title"] + }, + children: [{ type: "text", value: matches[1] }] + }); + } + } + } + ] + } + ] + ] + }), + imagetools({ + defaultDirectives: (url) => { + const extname = path.extname(url.pathname); + if ( + // formats supported by Sharp (https://sharp.pixelplumbing.com/#formats) + [ + ".png", + ".jpg", + ".jpeg", + ".webp", + ".gif", + ".avif", + ".tiff", + ".tif", + ".svg" + ].includes(extname) + ) { + return new URLSearchParams([ + ["as", "picture"], + ["format", "webp"], + ...url.searchParams.entries() + ]); + } else + return url.searchParams; + } + }), + { + name: "base64-loader", + async transform(_, id) { + const [path2, query] = id.split("?"); + if (query !== "base64" || !path2) + return null; + const data = await readFile(path2); + const base64 = data.toString("base64"); + return `export default '${base64}';`; + } + } + ] + }), + solid: { + exclude: ["./src/misc/opengraph/**/*"] + } +}); +export { + app_config_default as default +}; diff --git a/packages/remark-param-tree/package.json b/packages/remark-param-tree/package.json index ab6764e1e..57d42ee87 100644 --- a/packages/remark-param-tree/package.json +++ b/packages/remark-param-tree/package.json @@ -10,6 +10,7 @@ "test": "vitest" }, "dependencies": { + "es-toolkit": "^1.31.0", "mdast-util-from-markdown": "^2.0.1", "mdast-util-mdx": "^3.0.0", "mdast-util-to-string": "^4.0.0", diff --git a/packages/remark-param-tree/src/index.ts b/packages/remark-param-tree/src/index.ts index c68aee6cf..823069b65 100644 --- a/packages/remark-param-tree/src/index.ts +++ b/packages/remark-param-tree/src/index.ts @@ -1,101 +1,62 @@ -import type { - Heading, - ListItem, - Paragraph, - PhrasingContent, - Root, -} from "mdast"; -import { type MdxJsxTextElement } from "mdast-util-mdx"; -import { toString } from "mdast-util-to-string"; +import { takeWhile } from "es-toolkit"; +import type { List, ListItem, Root } from "mdast"; +import { type MdxJsxFlowElement } from "mdast-util-mdx"; import { match, P } from "ts-pattern"; import { type BuildVisitor, SKIP, visit } from "unist-util-visit"; -type TypeDefinition = { - name: string; - type: string; - optional: boolean; -}; +import { transformListItemToTypeDef } from "./transform/typeDef.ts"; + +/** + * ListItem 또는 이미 변환된 MdxJsxFlowElement가 섞여있는 배열에서, + * MdxJsxFlowElement는 분리하고, 연속되는 ListItem만 List로 묶어서 반환 + * + * 예) [JSX, JSX, ListItem, ListItem, ListItem, JSX] + * => [JSX, JSX, List[ListItem, ListItem, ListItem], JSX] + */ +function groupItemsByType( + items: (MdxJsxFlowElement | ListItem)[], +): (MdxJsxFlowElement | List)[] { + if (items.length === 0) { + return []; + } + + const firstType = items[0]?.type; + if (!firstType) { + return []; + } + + const chunk = match(takeWhile(items, (item) => item.type === firstType)) + .with(P.array({ type: "mdxJsxFlowElement" }), (chunk) => chunk) + .with(P.array({ type: "listItem" }), (children) => [ + { + type: "list", + ordered: false, + spread: false, + children, + } satisfies List, + ]) + .otherwise(() => []); + + return [...chunk, ...groupItemsByType(items.slice(chunk.length))]; +} export default function remarkParamTreePlugin() { return function (tree: Root) { visit(tree, "mdxJsxFlowElement", (node) => { - if (node.name === "ParamTree") { - const generateTypeDefinition = ( - node: ListItem | Heading, - ): [node: MdxJsxTextElement, typeDefinition: TypeDefinition] | null => { - const result = match(node) - .with( - { - type: "heading", - }, - (node) => [null, toString(node)] as const, - ) - .with( - { - type: "listItem", - children: [{ type: "paragraph" }, ...P.array()], - }, - (node) => - [node.children.slice(1), toString(node.children[0])] as const, - ) - .otherwise(() => null); - if (result === null) return null; - const [children, typeStr] = result; - - const exec = - /^(?[a-zA-Z_$][a-zA-Z0-9_$]*)(?\?)?:\s*(?[a-zA-Z0-9_$<>[\]{}|&?()\s]+)$/.exec( - typeStr, - ); - if (exec === null) { - return null; - } - - return match(exec.groups) - .with( - { - name: P.string, - type: P.string, - optional: P.optional(P.string), - }, - ({ name, type, optional }) => - [ - { - type: "mdxJsxTextElement", - name: "ParamTree.Parameter", - attributes: [ - { type: "mdxJsxAttribute", name: "ident", value: name }, - { type: "mdxJsxAttribute", name: "type", value: type }, - ], - children: children !== null ? children : [], - // children: [], - }, - { - name, - type, - optional: Boolean(optional), - }, - ] satisfies [ - node: MdxJsxTextElement, - typeDefinition: TypeDefinition, - ], - ) - .otherwise(() => null); - }; + if (node.name === "Parameter") { const transformNode: ( - ...params: Parameters< - | BuildVisitor - | BuildVisitor - > + ...params: Parameters> ) => void = (node, index, parent) => { - if (index === undefined) return; - if (parent === undefined) return; - const _typeDefinition = generateTypeDefinition(node); - if (_typeDefinition === null) return; - const [_node, typeDefinition] = _typeDefinition; - parent.children.splice(index, 1, _node); + const typeDefs = groupItemsByType( + node.children.map(transformListItemToTypeDef), + ); + if (parent && index) { + parent.children.splice(index, 1, ...typeDefs); + return [SKIP, index + typeDefs.length]; + } + return; }; - visit(node, "listItem", transformNode); - visit(node, "heading", transformNode); + visit(node, "list", transformNode); return SKIP; } return; diff --git a/packages/remark-param-tree/src/transform/typeDef.ts b/packages/remark-param-tree/src/transform/typeDef.ts new file mode 100644 index 000000000..9e031be81 --- /dev/null +++ b/packages/remark-param-tree/src/transform/typeDef.ts @@ -0,0 +1,77 @@ +import type { ListItem } from "mdast"; +import type { MdxJsxFlowElement } from "mdast-util-mdx"; +import { toString } from "mdast-util-to-string"; +import { match, P } from "ts-pattern"; + +const TypeDefRegExp = + /^(?[a-zA-Z_$][a-zA-Z0-9_$]*)(?\?)?:\s*(?[a-zA-Z0-9_$<>[\]{}|&?()\s]+)$/; + +type TypeDef = { + name: string; + type: string; + optional: boolean; +}; + +function parseTypeDef(str: string): TypeDef | null { + return match( + TypeDefRegExp.exec(str) as { + groups?: { + [key: string]: string; + }; + } | null, + ) + .with( + { + groups: P.select({ + name: P.string, + type: P.string, + optional: P.optional(P.string), + }), + }, + ({ name, type, optional }) => ({ + name, + type, + optional: !!optional, + }), + ) + .otherwise(() => null); +} + +export function transformListItemToTypeDef( + node: ListItem, +): MdxJsxFlowElement | ListItem { + return match(node) + .with( + { + type: "listItem", + children: [{ type: "paragraph" }, ...P.array()], + }, + ({ children }) => { + const [paragraph, ...restChildren] = children; + const typeDefText = toString(paragraph); + + const parsed = parseTypeDef(typeDefText); + if (!parsed) return node; + + const { name, type, optional } = parsed; + return { + type: "mdxJsxFlowElement", + name: "Parameter.TypeDef", + attributes: ( + [ + { type: "mdxJsxAttribute", name: "ident", value: name }, + { type: "mdxJsxAttribute", name: "type", value: type }, + optional && + ({ + type: "mdxJsxAttribute", + name: "optional", + value: null, + } as const), + ] as const + ).filter((x) => x !== false), + children: restChildren, + } satisfies MdxJsxFlowElement; + }, + ) + .otherwise(() => node); +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b35111bde..88bb7acb2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -516,6 +516,9 @@ importers: packages/remark-param-tree: dependencies: + es-toolkit: + specifier: ^1.31.0 + version: 1.31.0 mdast-util-from-markdown: specifier: ^2.0.1 version: 2.0.2 @@ -3131,6 +3134,9 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + es-toolkit@1.31.0: + resolution: {integrity: sha512-vwS0lv/tzjM2/t4aZZRAgN9I9TP0MSkWuvt6By+hEXfG/uLs8yg2S1/ayRXH/x3pinbLgVJYT+eppueg3cM6tg==} + esast-util-from-estree@2.0.0: resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} @@ -8597,6 +8603,8 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 + es-toolkit@1.31.0: {} + esast-util-from-estree@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 diff --git a/src/components/gitbook/Parameter.tsx b/src/components/gitbook/Parameter.tsx index 1445cbb02..d71167432 100644 --- a/src/components/gitbook/Parameter.tsx +++ b/src/components/gitbook/Parameter.tsx @@ -13,13 +13,25 @@ import { } from "solid-js"; interface ParameterProps { + flat?: boolean; children?: JSXElement; } +const ParameterContext = createContext({ + flatten: false, +}); + export default function Parameter(props: ParameterProps) { return ( -
- {props.children} +
+ + {props.children} +
); } @@ -37,12 +49,17 @@ const TypeDefContext = createContext({ }); Parameter.TypeDef = function TypeDef(props: TypeDefProps) { + const { flatten: flat } = useContext(ParameterContext); const children = new ReactiveSet(); const [expaneded, setExpanded] = createSignal(true); return ( { + if (!flat) { + setExpanded(isOpen); + } + }} as="div" class="text-sm" > @@ -51,7 +68,7 @@ Parameter.TypeDef = function TypeDef(props: TypeDefProps) { as="button" class={clsx( "h-4 w-4 bg-white p-.5 -ml-7", - children.size > 0 ? "block" : "hidden", + !flat && children.size > 0 ? "block" : "hidden", )} >
-
+
{props.ident} diff --git a/src/routes/(root)/opi/ko/quick-guide/payment/index.mdx b/src/routes/(root)/opi/ko/quick-guide/payment/index.mdx index df9c9507e..ce9fa0b40 100644 --- a/src/routes/(root)/opi/ko/quick-guide/payment/index.mdx +++ b/src/routes/(root)/opi/ko/quick-guide/payment/index.mdx @@ -8,7 +8,7 @@ versionVariants: --- import Details from "~/components/gitbook/Details"; -import ParamTree from "~/components/gitbook/ParamTree"; +import Parameter from "~/components/gitbook/Parameter"; import Tabs from "~/components/gitbook/Tabs"; import Hint from "~/components/Hint"; @@ -80,1433 +80,1433 @@ import { Condition, InteractiveDoc, Section } from "./_preview"; 포트원 브라우저 SDK를 사용하여 결제를 요청합니다. - - #### storeId: string + + - storeId: string - **상점 아이디** + **상점 아이디** - 포트원 계정에 생성된 상점을 식별하는 고유한 값으로 [관리자 콘솔 > 연동 정보](https://admin.portone.io/integration-v2/manage/channel) 우측 상단에서 확인할 수 있습니다. + 포트원 계정에 생성된 상점을 식별하는 고유한 값으로 [관리자 콘솔 > 연동 정보](https://admin.portone.io/integration-v2/manage/channel) 우측 상단에서 확인할 수 있습니다. - #### channelKey: string + - channelKey: string - **채널키** + **채널키** - [관리자 콘솔 > 연동 정보](https://admin.portone.io/integration-v2/manage/channel)에서 채널 연동 시 생성된 채널키입니다. + [관리자 콘솔 > 연동 정보](https://admin.portone.io/integration-v2/manage/channel)에서 채널 연동 시 생성된 채널키입니다. - #### paymentId: string + - paymentId: string - **고객사 주문 고유 번호** + **고객사 주문 고유 번호** - 주문을 식별하는 고유 번호로, 포트원에서 제공하지 않고 직접 입력합니다. + 주문을 식별하는 고유 번호로, 포트원에서 제공하지 않고 직접 입력합니다. - 이미 승인이 완료된 `paymentId`로 결제나 가상계좌 발급을 시도하는 경우 에러가 발생합니다. + 이미 승인이 완료된 `paymentId`로 결제나 가상계좌 발급을 시도하는 경우 에러가 발생합니다. - name === 'toss'}> - - 토스페이먼츠의 경우 영문 대소문자, 숫자, `-`, `_`만 허용되며, 6자 이상 64자 이하로 입력합니다. - - + name === 'toss'}> + + 토스페이먼츠의 경우 영문 대소문자, 숫자, `-`, `_`만 허용되며, 6자 이상 64자 이하로 입력합니다. + + - name === 'kcp'}> - - KCP의 경우 영문 대소문자, 숫자만 허용되며, 40자 이하로 입력합니다. - - + name === 'kcp'}> + + KCP의 경우 영문 대소문자, 숫자만 허용되며, 40자 이하로 입력합니다. + + - #### orderName: string + - orderName: string - **주문명** + **주문명** - 주문명으로 자유롭게 입력합니다. + 주문명으로 자유롭게 입력합니다. - name === 'nice'}> - - 나이스페이먼츠의 경우 최대 40바이트까지 입력할 수 있으며, 사용 가능한 특수문자는 아래와 같습니다. + name === 'nice'}> + + 나이스페이먼츠의 경우 최대 40바이트까지 입력할 수 있으며, 사용 가능한 특수문자는 아래와 같습니다. - - 사용 가능: `_` - - 사용 불가: `% & | $ - + = [ ]` - - 사용 가능하나 권장하지 않음: `( )` - - + - 사용 가능: `_` + - 사용 불가: `% & | $ - + = [ ]` + - 사용 가능하나 권장하지 않음: `( )` + + - name === 'kcp'}> - - KCP의 경우 최대 100바이트까지 입력할 수 있습니다. - - + name === 'kcp'}> + + KCP의 경우 최대 100바이트까지 입력할 수 있습니다. + + - #### totalAmount: number + - totalAmount: number - **결제 금액** + **결제 금액** - 결제 금액을 정수로 입력합니다. + 결제 금액을 정수로 입력합니다. - - 해외 통화의 경우 통화의 최소 단위를 기준으로 합니다. 예를 들어, USD의 최소 단위는 센트(0.01 USD)이므로, 6 USD의 경우 100배하여 600으로 입력합니다. + - 해외 통화의 경우 통화의 최소 단위를 기준으로 합니다. 예를 들어, USD의 최소 단위는 센트(0.01 USD)이므로, 6 USD의 경우 100배하여 600으로 입력합니다. - - 통화의 최소 단위는 [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)에 의해 표준화된 minor unit입니다. - - KRW: 1배 - - USD: 100배 - - JPY: 1배 + - 통화의 최소 단위는 [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)에 의해 표준화된 minor unit입니다. + - KRW: 1배 + - USD: 100배 + - JPY: 1배 - #### currency: string + - currency: string - **결제 통화** + **결제 통화** - [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)에 의해 표준화된 알파벳 통화 코드를 입력합니다. + [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)에 의해 표준화된 알파벳 통화 코드를 입력합니다. - name === 'toss'}> - - 토스페이먼츠는 `KRW`만을 지원합니다. - - + name === 'toss'}> + + 토스페이먼츠는 `KRW`만을 지원합니다. + + - name === 'nice'}> - - 나이스페이먼츠는 `KRW`만을 지원합니다. - - + name === 'nice'}> + + 나이스페이먼츠는 `KRW`만을 지원합니다. + + - name === 'smartro'}> - - 스마트로는 `KRW`와 `USD`만을 지원합니다. 상점 아이디의 설정에 따라 결제 통화가 고정되어 `currency`와 일치하지 않을 수 있습니다. - - + name === 'smartro'}> + + 스마트로는 `KRW`와 `USD`만을 지원합니다. 상점 아이디의 설정에 따라 결제 통화가 고정되어 `currency`와 일치하지 않을 수 있습니다. + + - name === 'kpn'}> - - 한국결제네트웍스는 `KRW`와 `USD`만을 지원합니다. - - + name === 'kpn'}> + + 한국결제네트웍스는 `KRW`와 `USD`만을 지원합니다. + + - name === 'inicis'}> - - KG이니시스는 `KRW`와 `USD`만을 지원합니다. `USD`의 경우 카드 결제만 지원합니다. - - + name === 'inicis'}> + + KG이니시스는 `KRW`와 `USD`만을 지원합니다. `USD`의 경우 카드 결제만 지원합니다. + + - name === 'ksnet'}> - - KSNET은 `KRW`와 `USD`만을 지원합니다. - - + name === 'ksnet'}> + + KSNET은 `KRW`와 `USD`만을 지원합니다. + + - name === 'kcp'}> - - KCP는 `KRW`와 `USD`만을 지원합니다. `USD`의 경우 별도 계약이 필요합니다. - - + name === 'kcp'}> + + KCP는 `KRW`와 `USD`만을 지원합니다. `USD`의 경우 별도 계약이 필요합니다. + + - #### payMethod: string + - payMethod: string - **결제 수단** + **결제 수단** - 사용할 결제 수단에 맞는 값을 입력합니다. + 사용할 결제 수단에 맞는 값을 입력합니다. -
- 지원 결제 수단 코드 +
+ 지원 결제 수단 코드 - - name === 'toss'}> - - 카드: `CARD` - - 실시간 계좌이체: `TRANSFER` - - 가상계좌: `VIRTUAL_ACCOUNT` - - 휴대폰 소액결제: `MOBILE` - - 간편결제: `EASY_PAY` - - 상품권: `GIFT_CERTIFICATE` - - - 휴대폰 소액결제, 간편결제, 상품권 결제는 별도 계약이 필요합니다. - - + + name === 'toss'}> + - 카드: `CARD` + - 실시간 계좌이체: `TRANSFER` + - 가상계좌: `VIRTUAL_ACCOUNT` + - 휴대폰 소액결제: `MOBILE` + - 간편결제: `EASY_PAY` + - 상품권: `GIFT_CERTIFICATE` - name === 'nice'}> - - 카드: `CARD` - - 실시간 계좌이체: `TRANSFER` - - 가상계좌: `VIRTUAL_ACCOUNT` - - 휴대폰 소액결제: `MOBILE` - - 간편결제: `EASY_PAY` - - 상품권: `GIFT_CERTIFICATE` - + + 휴대폰 소액결제, 간편결제, 상품권 결제는 별도 계약이 필요합니다. + + - name === 'smartro'}> - - 카드: `CARD` - - 실시간 계좌이체: `TRANSFER` - - 가상계좌: `VIRTUAL_ACCOUNT` - - 휴대폰 소액결제: `MOBILE` - - 간편결제: `EASY_PAY` - + name === 'nice'}> + - 카드: `CARD` + - 실시간 계좌이체: `TRANSFER` + - 가상계좌: `VIRTUAL_ACCOUNT` + - 휴대폰 소액결제: `MOBILE` + - 간편결제: `EASY_PAY` + - 상품권: `GIFT_CERTIFICATE` + - name === 'kpn'}> - - 카드: `CARD` - - 실시간 계좌이체: `TRANSFER` - - 가상계좌: `VIRTUAL_ACCOUNT` - - 휴대폰 소액결제: `MOBILE` - - 간편결제: `EASY_PAY` - - + name === 'smartro'}> + - 카드: `CARD` + - 실시간 계좌이체: `TRANSFER` + - 가상계좌: `VIRTUAL_ACCOUNT` + - 휴대폰 소액결제: `MOBILE` + - 간편결제: `EASY_PAY` + - name === 'inicis'}> - - 카드: `CARD` - - 실시간 계좌이체: `TRANSFER` - - 가상계좌: `VIRTUAL_ACCOUNT` - - 휴대폰 소액결제: `MOBILE` - - 간편결제: `EASY_PAY` - - 상품권: `GIFT_CERTIFICATE` - + name === 'kpn'}> + - 카드: `CARD` + - 실시간 계좌이체: `TRANSFER` + - 가상계좌: `VIRTUAL_ACCOUNT` + - 휴대폰 소액결제: `MOBILE` + - 간편결제: `EASY_PAY` + + + + name === 'inicis'}> + - 카드: `CARD` + - 실시간 계좌이체: `TRANSFER` + - 가상계좌: `VIRTUAL_ACCOUNT` + - 휴대폰 소액결제: `MOBILE` + - 간편결제: `EASY_PAY` + - 상품권: `GIFT_CERTIFICATE` + - name === 'ksnet'}> - - 카드: `CARD` - - 실시간 계좌이체: `TRANSFER` - - 가상계좌: `VIRTUAL_ACCOUNT` - - 휴대폰 소액결제: `MOBILE` - - 간편결제: `EASY_PAY` - + name === 'ksnet'}> + - 카드: `CARD` + - 실시간 계좌이체: `TRANSFER` + - 가상계좌: `VIRTUAL_ACCOUNT` + - 휴대폰 소액결제: `MOBILE` + - 간편결제: `EASY_PAY` + - name === 'kcp'}> - - 카드: `CARD` - - 실시간 계좌이체: `TRANSFER` - - 가상계좌: `VIRTUAL_ACCOUNT` - - 휴대폰 소액결제: `MOBILE` - - 간편결제: `EASY_PAY` - - 상품권: `GIFT_CERTIFICATE` - -
+ name === 'kcp'}> + - 카드: `CARD` + - 실시간 계좌이체: `TRANSFER` + - 가상계좌: `VIRTUAL_ACCOUNT` + - 휴대폰 소액결제: `MOBILE` + - 간편결제: `EASY_PAY` + - 상품권: `GIFT_CERTIFICATE` + +
payMethods === "card"}> - #### card?: object + - card?: object - **카드 결제 추가 정보** + **카드 결제 추가 정보** - `payMethod`가 `CARD`인 경우 카드 결제와 관련한 추가 정보를 입력할 수 있습니다. + `payMethod`가 `CARD`인 경우 카드 결제와 관련한 추가 정보를 입력할 수 있습니다. - - - cardCompany?: string + + - cardCompany?: string - **단독 노출 카드사** + **단독 노출 카드사** - 구매자가 카드사를 선택하지 않고 입력한 카드사 화면으로 바로 이동하도록 합니다. + 구매자가 카드사를 선택하지 않고 입력한 카드사 화면으로 바로 이동하도록 합니다. - name === 'toss'}> - - 토스페이먼츠의 경우 카드사 단독 노출과 동시에 할부를 설정하려면 `card.installment.monthOption.fixedMonth`를 반드시 전달해야 하며, 그렇지 않을 경우 일시불로 결제됩니다. - - + name === 'toss'}> + + 토스페이먼츠의 경우 카드사 단독 노출과 동시에 할부를 설정하려면 `card.installment.monthOption.fixedMonth`를 반드시 전달해야 하며, 그렇지 않을 경우 일시불로 결제됩니다. + + - name === 'nice'}> - - 나이스페이먼츠의 경우 카드사 단독 노출 시 `card.installment.monthOption.fixedMonth`를 필수로 지정해야 합니다. - 결제 금액이 할부 지원 금액 미만인 경우 할부 개월 수를 `0`으로 전달해야 합니다. - - + name === 'nice'}> + + 나이스페이먼츠의 경우 카드사 단독 노출 시 `card.installment.monthOption.fixedMonth`를 필수로 지정해야 합니다. + 결제 금액이 할부 지원 금액 미만인 경우 할부 개월 수를 `0`으로 전달해야 합니다. + + - name === 'kcp'}> - - KCP의 경우 카드사 단독 노출 시 `bypass.kcp_v2.site_name`을 필수로 지정해야 할 수 있습니다. - 자세한 사항은 해당 파라미터 설명을 참조해 주세요. - - + name === 'kcp'}> + + KCP의 경우 카드사 단독 노출 시 `bypass.kcp_v2.site_name`을 필수로 지정해야 할 수 있습니다. + 자세한 사항은 해당 파라미터 설명을 참조해 주세요. + + -
- 지원 카드사 코드 목록 +
+ 지원 카드사 코드 목록 - - name === 'toss'}> - - `KOREA_DEVELOPMENT_BANK` (KDB산업은행 카드) - - `KFCC` (새마을금고 카드) - - `SHINHYUP` (신협 카드) - - `EPOST`(우체국 카드) - - `SAVINGS_BANK_KOREA` (저축은행 카드) - - `KAKAO_BANK` (카카오뱅크 카드) - - `WOORI_CARD` (우리카드) - - `BC_CARD` (BC카드) - - `GWANGJU_CARD` (광주카드) - - `SAMSUNG_CARD` (삼성카드) - - `SHINHAN_CARD` (신한카드) - - `HYUNDAI_CARD` (현대카드) - - `LOTTE_CARD` (롯데카드) - - `SUHYUP_CARD` (수협카드) - - `CITI_CARD` (씨티카드) - - `NH_CARD` (NH농협카드) - - `JEONBUK_CARD` (전북카드) - - `JEJU_CARD` (제주카드) - - `HANA_CARD` (하나카드) - - `KOOKMIN_CARD` (국민카드) - - `K_BANK` (케이뱅크 카드) - - `TOSS_BANK` (토스뱅크 카드) - + + name === 'toss'}> + - `KOREA_DEVELOPMENT_BANK` (KDB산업은행 카드) + - `KFCC` (새마을금고 카드) + - `SHINHYUP` (신협 카드) + - `EPOST`(우체국 카드) + - `SAVINGS_BANK_KOREA` (저축은행 카드) + - `KAKAO_BANK` (카카오뱅크 카드) + - `WOORI_CARD` (우리카드) + - `BC_CARD` (BC카드) + - `GWANGJU_CARD` (광주카드) + - `SAMSUNG_CARD` (삼성카드) + - `SHINHAN_CARD` (신한카드) + - `HYUNDAI_CARD` (현대카드) + - `LOTTE_CARD` (롯데카드) + - `SUHYUP_CARD` (수협카드) + - `CITI_CARD` (씨티카드) + - `NH_CARD` (NH농협카드) + - `JEONBUK_CARD` (전북카드) + - `JEJU_CARD` (제주카드) + - `HANA_CARD` (하나카드) + - `KOOKMIN_CARD` (국민카드) + - `K_BANK` (케이뱅크 카드) + - `TOSS_BANK` (토스뱅크 카드) + - ['nice', 'smartro', 'kpn', 'inicis', 'ksnet', 'kcp'].includes(name)}> - - `KOREA_DEVELOPMENT_BANK` (KDB산업은행 카드) - - `KFCC` (새마을금고 카드) - - `SHINHYUP` (신협 카드) - - `EPOST` (우체국 카드) - - `SAVINGS_BANK_KOREA` (저축은행 카드) - - `KAKAO_BANK` (카카오뱅크 카드) - - `WOORI_CARD` (우리카드) - - `BC_CARD` (BC카드) - - `GWANGJU_CARD` (광주카드) - - `SAMSUNG_CARD` (삼성카드) - - `SHINHAN_CARD` (신한카드) - - `HYUNDAI_CARD` (현대카드) - - `LOTTE_CARD` (롯데카드) - - `SUHYUP_CARD` (수협카드) - - `CITI_CARD` (씨티카드) - - `NH_CARD` (NH농협카드) - - `JEONBUK_CARD` (전북카드) - - `JEJU_CARD` (제주카드) - - `HANA_CARD` (하나카드) - - `KOOKMIN_CARD` (국민카드) - - `K_BANK` (케이뱅크 카드) - - `TOSS_BANK` (토스뱅크 카드) - - -
+ ['nice', 'smartro', 'kpn', 'inicis', 'ksnet', 'kcp'].includes(name)}> + - `KOREA_DEVELOPMENT_BANK` (KDB산업은행 카드) + - `KFCC` (새마을금고 카드) + - `SHINHYUP` (신협 카드) + - `EPOST` (우체국 카드) + - `SAVINGS_BANK_KOREA` (저축은행 카드) + - `KAKAO_BANK` (카카오뱅크 카드) + - `WOORI_CARD` (우리카드) + - `BC_CARD` (BC카드) + - `GWANGJU_CARD` (광주카드) + - `SAMSUNG_CARD` (삼성카드) + - `SHINHAN_CARD` (신한카드) + - `HYUNDAI_CARD` (현대카드) + - `LOTTE_CARD` (롯데카드) + - `SUHYUP_CARD` (수협카드) + - `CITI_CARD` (씨티카드) + - `NH_CARD` (NH농협카드) + - `JEONBUK_CARD` (전북카드) + - `JEJU_CARD` (제주카드) + - `HANA_CARD` (하나카드) + - `KOOKMIN_CARD` (국민카드) + - `K_BANK` (케이뱅크 카드) + - `TOSS_BANK` (토스뱅크 카드) + + +
- - availableCards?: string\[] + - availableCards?: string\[] - **카드사 일부 노출** + **카드사 일부 노출** - 지정한 일부 카드사만을 목록에 노출할 수 있습니다. 상단의 카드사 식별 값 항목을 참고해주세요. + 지정한 일부 카드사만을 목록에 노출할 수 있습니다. 상단의 카드사 식별 값 항목을 참고해주세요. - name !== 'kcp'}> - - useFreeInterestFromMall?: boolean + name !== 'kcp'}> + - useFreeInterestFromMall?: boolean + + **상점 분담 무이자 활성화 여부** + + name === 'toss'}> + + 토스페이먼츠의 경우 상점 분담 무이자 할부 이용 시 별도 계약이 필요합니다. + + + + + name !== 'kcp'}> + - useInstallment?: boolean + + **할부 사용 여부** + + + - installment?: object - **상점 분담 무이자 활성화 여부** + **할부 설정** name === 'toss'}> - 토스페이먼츠의 경우 상점 분담 무이자 할부 이용 시 별도 계약이 필요합니다. + 토스페이먼츠의 경우 신용카드 할부 이용 시 별도 계약이 필요합니다. - - - name !== 'kcp'}> - - useInstallment?: boolean - **할부 사용 여부** - + + - freeInstallmentPlans?: object\[] - - installment?: object + **무이자 할부 설정** - **할부 설정** + 고객사가 부담하는 무이자 할부 설정입니다. - name === 'toss'}> - - 토스페이먼츠의 경우 신용카드 할부 이용 시 별도 계약이 필요합니다. - - + + - cardCompany: string - - - freeInstallmentPlans?: object\[] + **무이자 할부를 제공하는 카드사 식별 값** - **무이자 할부 설정** + 상단의 카드사 식별 값 항목을 참고해주세요. - 고객사가 부담하는 무이자 할부 설정입니다. + - months: number\[] - - - cardCompany: string + **무이자 할부를 제공하는 개월 수** + - **무이자 할부를 제공하는 카드사 식별 값** + - monthOption?: object - 상단의 카드사 식별 값 항목을 참고해주세요. + **할부 개월 수 설정** - - months: number\[] + 할부 결제 시 할부 개월 수를 설정할 수 있습니다. - **무이자 할부를 제공하는 개월 수** -
+ name !== 'kcp'}> + `fixedMonth`와 `availableMonthList` 중 하나만 제공해주세요. + - - monthOption?: object + + - fixedMonth: number - **할부 개월 수 설정** + **구매자가 선택할 수 없도록 고정된 할부 개월 수** - 할부 결제 시 할부 개월 수를 설정할 수 있습니다. + 구매자가 할부 개월 수를 선택할 수 있도록 하려면 `availableMonthList`를 사용해주세요. - name !== 'kcp'}> - `fixedMonth`와 `availableMonthList` 중 하나만 제공해주세요. - + name !== 'kcp'}> + - availableMonthList: number\[] - - - fixedMonth: number + **구매자가 선택할 수 있는 할부 개월 수 목록** + + + - **구매자가 선택할 수 없도록 고정된 할부 개월 수** + name !== 'kcp'}> + - useCardPoint?: boolean - 구매자가 할부 개월 수를 선택할 수 있도록 하려면 `availableMonthList`를 사용해주세요. + **카드사 포인트 사용 여부** - name !== 'kcp'}> - - availableMonthList: number\[] + name === 'toss'}> + + 토스페이먼츠의 경우 카드사 포인트 사용 시 별도 계약이 필요합니다. + + - **구매자가 선택할 수 있는 할부 개월 수 목록** - -
- + name === 'nice'}> + + 나이스페이먼츠의 경우 카드사 포인트 사용 시 별도 계약이 필요합니다. + + + - name !== 'kcp'}> - - useCardPoint?: boolean + - useAppCardOnly?: boolean - **카드사 포인트 사용 여부** + **앱 카드만 허용할지 여부** name === 'toss'}> - 토스페이먼츠의 경우 카드사 포인트 사용 시 별도 계약이 필요합니다. + 토스페이먼츠의 경우 씨티카드는 적용이 불가능합니다. - - name === 'nice'}> - - 나이스페이먼츠의 경우 카드사 포인트 사용 시 별도 계약이 필요합니다. - - - - - - useAppCardOnly?: boolean - - **앱 카드만 허용할지 여부** - - name === 'toss'}> - - 토스페이먼츠의 경우 씨티카드는 적용이 불가능합니다. - - - + payMethods === "virtualAccount"}> - #### virtualAccount?: object + - virtualAccount?: object - **가상계좌 발급 추가 정보** + **가상계좌 발급 추가 정보** - `payMethod`가 `VIRTUAL_ACCOUNT`인 경우 가상계좌와 관련한 추가 정보를 입력할 수 있습니다. + `payMethod`가 `VIRTUAL_ACCOUNT`인 경우 가상계좌와 관련한 추가 정보를 입력할 수 있습니다. - - name !== 'kcp'}> - - cashReceiptType?: string + + name !== 'kcp'}> + - cashReceiptType?: string - **결제창에서 발급 가능한 현금영수증 발급 유형** + **결제창에서 발급 가능한 현금영수증 발급 유형** - - `PERSONAL` (소득공제용) - - `CORPORATE` (지출증빙용) - - `ANONYMOUS` (미발행(국세청번호 자동발급)) - + - `PERSONAL` (소득공제용) + - `CORPORATE` (지출증빙용) + - `ANONYMOUS` (미발행(국세청번호 자동발급)) + - name !== 'kcp'}> - - customerIdentifier?: string + name !== 'kcp'}> + - customerIdentifier?: string - **현금영수증 발행 대상 식별 정보** - + **현금영수증 발행 대상 식별 정보** + - name !== 'kcp'}> - - fixedOption?: oneof object + name !== 'kcp'}> + - fixedOption?: oneof object - **고정식 가상계좌 설정** + **고정식 가상계좌 설정** - - `pgAccountId`와 `accountNumber` 중 하나만 입력해주세요. + - `pgAccountId`와 `accountNumber` 중 하나만 입력해주세요. - - - pgAccountId?: string + + - pgAccountId?: string - 결제대행사로부터 사전에 가상계좌를 발급받은 경우, 그 번호를 입력해주세요. + 결제대행사로부터 사전에 가상계좌를 발급받은 경우, 그 번호를 입력해주세요. - - accountNumber?: string + - accountNumber?: string - 고정하여 사용할 가상계좌 번호를 입력해주세요. - - + 고정하여 사용할 가상계좌 번호를 입력해주세요. + + - name !== 'kcp'}> - - bankCode?: string + name !== 'kcp'}> + - bankCode?: string - **단독 노출 은행** + **단독 노출 은행** - 구매자가 은행을 선택하지 않고 입력한 은행이 자동 선택되도록 합니다. + 구매자가 은행을 선택하지 않고 입력한 은행이 자동 선택되도록 합니다. -
- 지원 은행 코드 +
+ 지원 은행 코드 - - name === 'toss'}> - - `KYONGNAM_BANK` (경남은행) - - `GWANGJU_BANK` (광주은행) - - `KOOKMIN_BANK` (국민은행) - - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) - - `NH_NONGHYUP_BANK` (NH농협은행) - - `DAEGU_BANK` (대구은행) - - `BUSAN_BANK` (부산은행) - - `KFCC` (새마을금고) - - `SUHYUP_BANK` (수협은행) - - `SHINHAN_BANK` (신한은행) - - `WOORI_BANK` (우리은행) - - `EPOST` (우체국) - - `HANA_BANK` (하나은행) - + + name === 'toss'}> + - `KYONGNAM_BANK` (경남은행) + - `GWANGJU_BANK` (광주은행) + - `KOOKMIN_BANK` (국민은행) + - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) + - `NH_NONGHYUP_BANK` (NH농협은행) + - `DAEGU_BANK` (대구은행) + - `BUSAN_BANK` (부산은행) + - `KFCC` (새마을금고) + - `SUHYUP_BANK` (수협은행) + - `SHINHAN_BANK` (신한은행) + - `WOORI_BANK` (우리은행) + - `EPOST` (우체국) + - `HANA_BANK` (하나은행) + - name === 'nice'}> - - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) - - `KOOKMIN_BANK` (국민은행) - - `NH_NONGHYUP_BANK` (NH농협은행) - - `WOORI_BANK` (우리은행) - - `SC_BANK_KOREA` (SC제일은행) - - `DAEGU_BANK` (대구은행) - - `BUSAN_BANK` (부산은행) - - `GWANGJU_BANK` (광주은행) - - `EPOST` (우체국) - - `HANA_BANK` (하나은행) - - `SHINHAN_BANK` (신한은행) - - `K_BANK` (케이뱅크) - + name === 'nice'}> + - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) + - `KOOKMIN_BANK` (국민은행) + - `NH_NONGHYUP_BANK` (NH농협은행) + - `WOORI_BANK` (우리은행) + - `SC_BANK_KOREA` (SC제일은행) + - `DAEGU_BANK` (대구은행) + - `BUSAN_BANK` (부산은행) + - `GWANGJU_BANK` (광주은행) + - `EPOST` (우체국) + - `HANA_BANK` (하나은행) + - `SHINHAN_BANK` (신한은행) + - `K_BANK` (케이뱅크) + - name === 'smartro'}> - - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) - - `KOOKMIN_BANK` (국민은행) - - `NH_NONGHYUP_BANK` (NH농협은행) - - `WOORI_BANK` (우리은행) - - `SC_BANK_KOREA` (SC제일은행) - - `DAEGU_BANK` (대구은행) - - `BUSAN_BANK` (부산은행) - - `GWANGJU_BANK` (광주은행) - - `EPOST` (우체국) - - `HANA_BANK` (하나은행) - - `SHINHAN_BANK` (신한은행) - - `K_BANK` (케이뱅크) - - `SUHYUP_BANK` (수협은행) - - `JEONBUK_BANK` (전북은행) - - `KYONGNAM_BANK` (경남은행) - + name === 'smartro'}> + - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) + - `KOOKMIN_BANK` (국민은행) + - `NH_NONGHYUP_BANK` (NH농협은행) + - `WOORI_BANK` (우리은행) + - `SC_BANK_KOREA` (SC제일은행) + - `DAEGU_BANK` (대구은행) + - `BUSAN_BANK` (부산은행) + - `GWANGJU_BANK` (광주은행) + - `EPOST` (우체국) + - `HANA_BANK` (하나은행) + - `SHINHAN_BANK` (신한은행) + - `K_BANK` (케이뱅크) + - `SUHYUP_BANK` (수협은행) + - `JEONBUK_BANK` (전북은행) + - `KYONGNAM_BANK` (경남은행) + - name === 'kpn'}> - - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) - - `KOOKMIN_BANK` (국민은행) - - `NH_NONGHYUP_BANK` (NH농협은행) - - `WOORI_BANK` (우리은행) - - `SC_BANK_KOREA` (SC제일은행) - - `CITI_BANK_KOREA` (한국씨티은행) - - `DAEGU_BANK` (대구은행) - - `BUSAN_BANK` (부산은행) - - `GWANGJU_BANK` (광주은행) - - `EPOST` (우체국) - - `HANA_BANK` (하나은행) - - `SHINHAN_BANK` (신한은행) - - `KYONGNAM_BANK` (경남은행) - + name === 'kpn'}> + - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) + - `KOOKMIN_BANK` (국민은행) + - `NH_NONGHYUP_BANK` (NH농협은행) + - `WOORI_BANK` (우리은행) + - `SC_BANK_KOREA` (SC제일은행) + - `CITI_BANK_KOREA` (한국씨티은행) + - `DAEGU_BANK` (대구은행) + - `BUSAN_BANK` (부산은행) + - `GWANGJU_BANK` (광주은행) + - `EPOST` (우체국) + - `HANA_BANK` (하나은행) + - `SHINHAN_BANK` (신한은행) + - `KYONGNAM_BANK` (경남은행) + - name === 'ksnet'}> - - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) - - `KOOKMIN_BANK` (국민은행) - - `NH_NONGHYUP_BANK` (NH농협은행) - - `WOORI_BANK` (우리은행) - - `SC_BANK_KOREA` (SC제일은행) - - `DAEGU_BANK` (대구은행) - - `BUSAN_BANK` (부산은행) - - `GWANGJU_BANK` (광주은행) - - `EPOST` (우체국) - - `HANA_BANK` (하나은행) - - `SHINHAN_BANK` (신한은행) - - `JEONBUK_BANK` (전북은행) - - `KYONGNAM_BANK` (경남은행) - - -
- + name === 'ksnet'}> + - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) + - `KOOKMIN_BANK` (국민은행) + - `NH_NONGHYUP_BANK` (NH농협은행) + - `WOORI_BANK` (우리은행) + - `SC_BANK_KOREA` (SC제일은행) + - `DAEGU_BANK` (대구은행) + - `BUSAN_BANK` (부산은행) + - `GWANGJU_BANK` (광주은행) + - `EPOST` (우체국) + - `HANA_BANK` (하나은행) + - `SHINHAN_BANK` (신한은행) + - `JEONBUK_BANK` (전북은행) + - `KYONGNAM_BANK` (경남은행) + + +
+
- - accountExpiry?: object + - accountExpiry?: object - **가상계좌 입금 만료기한** + **가상계좌 입금 만료기한** - `validHours`와 `dueDate` 중 하나만 입력해주세요. + `validHours`와 `dueDate` 중 하나만 입력해주세요. - name === 'nice'}> - - 나이스페이먼츠의 경우 입금 만료기한을 필수로 입력해야 합니다. - - + name === 'nice'}> + + 나이스페이먼츠의 경우 입금 만료기한을 필수로 입력해야 합니다. + + - - - validHours?: number + + - validHours?: number - **가상계좌 입금 유효 시간** + **가상계좌 입금 유효 시간** - 가상계좌 입금 유효기간을 시간 단위로 입력해주세요. + 가상계좌 입금 유효기간을 시간 단위로 입력해주세요. - - `3`을 전달하면 지금으로부터 3시간 후에 만료됩니다. + - `3`을 전달하면 지금으로부터 3시간 후에 만료됩니다. - - dueDate?: string + - dueDate?: string - **가상계좌 입금 만료 시각** + **가상계좌 입금 만료 시각** - - 아래 형식 중 하나로 입력해주세요. - - `YYYYMMDD` - - `YYYYMMDDHHmmss` - - `YYYY-MM-DD` - - `YYYY-MM-DD HH:mm:ss` - -
+ - 아래 형식 중 하나로 입력해주세요. + - `YYYYMMDD` + - `YYYYMMDDHHmmss` + - `YYYY-MM-DD` + - `YYYY-MM-DD HH:mm:ss` + +
payMethods === "transfer"}> - #### transfer?: object + - transfer?: object - **계좌이체 추가 정보** + **계좌이체 추가 정보** - `payMethod`가 `TRANSFER`인 경우 계좌이체와 관련한 추가 정보를 입력할 수 있습니다. + `payMethod`가 `TRANSFER`인 경우 계좌이체와 관련한 추가 정보를 입력할 수 있습니다. - - - cashReceiptType?: string + + - cashReceiptType?: string - **결제창에서 발급 가능한 현금영수증 발급 유형** + **결제창에서 발급 가능한 현금영수증 발급 유형** - - `PERSONAL` (소득공제용) - - `CORPORATE` (지출증빙용) - - `ANONYMOUS` (미발행(국세청번호 자동발급)) + - `PERSONAL` (소득공제용) + - `CORPORATE` (지출증빙용) + - `ANONYMOUS` (미발행(국세청번호 자동발급)) - - customerIdentifier?: string + - customerIdentifier?: string - **현금영수증 발행 대상 식별 정보** + **현금영수증 발행 대상 식별 정보** - - bankCode?: string + - bankCode?: string - **단독 노출 은행** + **단독 노출 은행** - 구매자가 은행을 선택하지 않고 입력한 은행이 자동 선택되도록 합니다. + 구매자가 은행을 선택하지 않고 입력한 은행이 자동 선택되도록 합니다. -
- 지원 은행 코드 +
+ 지원 은행 코드 - - name === 'toss'}> - - `KYONGNAM_BANK` (경남은행) - - `GWANGJU_BANK` (광주은행) - - `KOOKMIN_BANK` (국민은행) - - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) - - `NH_NONGHYUP_BANK` (NH농협은행) - - `DAEGU_BANK` (대구은행) - - `BUSAN_BANK` (부산은행) - - `KFCC` (새마을금고) - - `SUHYUP_BANK` (수협은행) - - `SHINHAN_BANK` (신한은행) - - `WOORI_BANK` (우리은행) - - `EPOST` (우체국) - - `HANA_BANK` (하나은행) - - -
- + + name === 'toss'}> + - `KYONGNAM_BANK` (경남은행) + - `GWANGJU_BANK` (광주은행) + - `KOOKMIN_BANK` (국민은행) + - `INDUSTRIAL_BANK_OF_KOREA` (기업은행) + - `NH_NONGHYUP_BANK` (NH농협은행) + - `DAEGU_BANK` (대구은행) + - `BUSAN_BANK` (부산은행) + - `KFCC` (새마을금고) + - `SUHYUP_BANK` (수협은행) + - `SHINHAN_BANK` (신한은행) + - `WOORI_BANK` (우리은행) + - `EPOST` (우체국) + - `HANA_BANK` (하나은행) + + +
+
payMethods === "mobile"}> - #### mobile?: object + - mobile?: object - **휴대폰 소액결제 추가 정보** + **휴대폰 소액결제 추가 정보** - `payMethod`가 `MOBILE`인 경우 휴대폰 소액결제와 관련한 추가 정보를 입력할 수 있습니다. + `payMethod`가 `MOBILE`인 경우 휴대폰 소액결제와 관련한 추가 정보를 입력할 수 있습니다. - - - carrier?: string + + - carrier?: string - **단독 호출 통신사** + **단독 호출 통신사** - 구매자가 통신사를 선택하지 않고 입력한 통신사가 자동 선택되도록 합니다. + 구매자가 통신사를 선택하지 않고 입력한 통신사가 자동 선택되도록 합니다. - - `SKT` (SKT) - - `KT` (KT) - - `LGU` (LGU) - - `HELLO` (LG 헬로모바일) - - `KCT` (티플러스) - - `SK7` (SK 세븐모바일) + - `SKT` (SKT) + - `KT` (KT) + - `LGU` (LGU) + - `HELLO` (LG 헬로모바일) + - `KCT` (티플러스) + - `SK7` (SK 세븐모바일) - - availableCarriers?: string\[] + - availableCarriers?: string\[] - **통신사 일부 노출** + **통신사 일부 노출** - 지정한 일부 통신사만을 목록에 노출할 수 있습니다. 상단의 통신사 식별 값 항목을 참고해주세요. - + 지정한 일부 통신사만을 목록에 노출할 수 있습니다. 상단의 통신사 식별 값 항목을 참고해주세요. + payMethods === "giftCertificate"}> - #### giftCertificate?: object + - giftCertificate?: object - **상품권 추가 정보** + **상품권 추가 정보** - `payMethod`가 `GIFT_CERTIFICATE`인 경우 상품권과 관련한 추가 정보를 입력할 수 있습니다. + `payMethod`가 `GIFT_CERTIFICATE`인 경우 상품권과 관련한 추가 정보를 입력할 수 있습니다. - - - giftCertificateType?: string + + - giftCertificateType?: string - **상품권 유형** + **상품권 유형** -
- 지원 상품권 유형 코드 +
+ 지원 상품권 유형 코드 - - name === "toss"}> - - `BOOKNLIFE` (도서문화상품권) - - `SMART_MUNSANG` (스마트문상, (구)게임문화상품권) - - `CULTURELAND` (문화상품권) - + + name === "toss"}> + - `BOOKNLIFE` (도서문화상품권) + - `SMART_MUNSANG` (스마트문상, (구)게임문화상품권) + - `CULTURELAND` (문화상품권) + - name === "nice"}> - - `CULTURELAND` (문화상품권) - - -
- + name === "nice"}> + - `CULTURELAND` (문화상품권) + + +
+
payMethods === "easyPay"}> - ### easyPay?: object + - easyPay?: object - **간편결제 추가 정보** + **간편결제 추가 정보** - `payMethod`가 `EASY_PAY`인 경우 간편결제와 관련한 추가 정보를 입력할 수 있습니다. + `payMethod`가 `EASY_PAY`인 경우 간편결제와 관련한 추가 정보를 입력할 수 있습니다. - - - easyPayProvider?: string + + - easyPayProvider?: string - **간편결제 수단** + **간편결제 수단** -
- 지원 간편결제 코드 +
+ 지원 간편결제 코드 - - name === 'toss'}> - - `PAYCO` (페이코) - - `SAMSUNGPAY` (삼성페이) - - `APPLEPAY` (애플페이) - - `SSGPAY` (SSG페이) - - `KAKAOPAY` (카카오페이) - - `NAVERPAY` (네이버페이) - - `LPAY` (L페이) - - `TOSSPAY` (토스페이) - - -
+ + name === 'toss'}> + - `PAYCO` (페이코) + - `SAMSUNGPAY` (삼성페이) + - `APPLEPAY` (애플페이) + - `SSGPAY` (SSG페이) + - `KAKAOPAY` (카카오페이) + - `NAVERPAY` (네이버페이) + - `LPAY` (L페이) + - `TOSSPAY` (토스페이) + + +
- - useFreeInterestFromMall?: boolean + - useFreeInterestFromMall?: boolean - **상점분담 무이자 활성화 여부** + **상점분담 무이자 활성화 여부** - - useCardPoint?: boolean + - useCardPoint?: boolean - **카드사 포인트 사용 여부** + **카드사 포인트 사용 여부** - - availableCards?: string\[] + - availableCards?: string\[] - **카드사 일부 노출** + **카드사 일부 노출** - 지정한 일부 카드사만을 목록에 노출할 수 있습니다. + 지정한 일부 카드사만을 목록에 노출할 수 있습니다. -
- - name === 'toss'}> - - `KOREA_DEVELOPMENT_BANK` (KDB산업은행 카드) - - `KFCC` (새마을금고 카드) - - `SHINHYUP` (신협 카드) - - `EPOST`(우체국 카드) - - `SAVINGS_BANK_KOREA` (저축은행 카드) - - `KAKAO_BANK` (카카오뱅크 카드) - - `WOORI_CARD` (우리카드) - - `BC_CARD` (BC카드) - - `GWANGJU_CARD` (광주카드) - - `SAMSUNG_CARD` (삼성카드) - - `SHINHAN_CARD` (신한카드) - - `HYUNDAI_CARD` (현대카드) - - `LOTTE_CARD` (롯데카드) - - `SUHYUP_CARD` (수협카드) - - `CITI_CARD` (씨티카드) - - `NH_CARD` (NH농협카드) - - `JEONBUK_CARD` (전북카드) - - `JEJU_CARD` (제주카드) - - `HANA_CARD` (하나카드) - - `KOOKMIN_CARD` (국민카드) - - `K_BANK` (케이뱅크 카드) - - `TOSS_BANK` (토스뱅크 카드) - +
+ + name === 'toss'}> + - `KOREA_DEVELOPMENT_BANK` (KDB산업은행 카드) + - `KFCC` (새마을금고 카드) + - `SHINHYUP` (신협 카드) + - `EPOST`(우체국 카드) + - `SAVINGS_BANK_KOREA` (저축은행 카드) + - `KAKAO_BANK` (카카오뱅크 카드) + - `WOORI_CARD` (우리카드) + - `BC_CARD` (BC카드) + - `GWANGJU_CARD` (광주카드) + - `SAMSUNG_CARD` (삼성카드) + - `SHINHAN_CARD` (신한카드) + - `HYUNDAI_CARD` (현대카드) + - `LOTTE_CARD` (롯데카드) + - `SUHYUP_CARD` (수협카드) + - `CITI_CARD` (씨티카드) + - `NH_CARD` (NH농협카드) + - `JEONBUK_CARD` (전북카드) + - `JEJU_CARD` (제주카드) + - `HANA_CARD` (하나카드) + - `KOOKMIN_CARD` (국민카드) + - `K_BANK` (케이뱅크 카드) + - `TOSS_BANK` (토스뱅크 카드) + - ['nice', 'smartro', 'kpn', 'inicis', 'ksnet'].includes(name)}> - - `KOREA_DEVELOPMENT_BANK` (KDB산업은행 카드) - - `KFCC` (새마을금고 카드) - - `SHINHYUP` (신협 카드) - - `EPOST` (우체국 카드) - - `SAVINGS_BANK_KOREA` (저축은행 카드) - - `KAKAO_BANK` (카카오뱅크 카드) - - `WOORI_CARD` (우리카드) - - `BC_CARD` (BC카드) - - `GWANGJU_CARD` (광주카드) - - `SAMSUNG_CARD` (삼성카드) - - `SHINHAN_CARD` (신한카드) - - `HYUNDAI_CARD` (현대카드) - - `LOTTE_CARD` (롯데카드) - - `SUHYUP_CARD` (수협카드) - - `CITI_CARD` (씨티카드) - - `NH_CARD` (NH농협카드) - - `JEONBUK_CARD` (전북카드) - - `JEJU_CARD` (제주카드) - - `HANA_CARD` (하나카드) - - `KOOKMIN_CARD` (국민카드) - - `K_BANK` (케이뱅크 카드) - - `TOSS_BANK` (토스뱅크 카드) - + ['nice', 'smartro', 'kpn', 'inicis', 'ksnet'].includes(name)}> + - `KOREA_DEVELOPMENT_BANK` (KDB산업은행 카드) + - `KFCC` (새마을금고 카드) + - `SHINHYUP` (신협 카드) + - `EPOST` (우체국 카드) + - `SAVINGS_BANK_KOREA` (저축은행 카드) + - `KAKAO_BANK` (카카오뱅크 카드) + - `WOORI_CARD` (우리카드) + - `BC_CARD` (BC카드) + - `GWANGJU_CARD` (광주카드) + - `SAMSUNG_CARD` (삼성카드) + - `SHINHAN_CARD` (신한카드) + - `HYUNDAI_CARD` (현대카드) + - `LOTTE_CARD` (롯데카드) + - `SUHYUP_CARD` (수협카드) + - `CITI_CARD` (씨티카드) + - `NH_CARD` (NH농협카드) + - `JEONBUK_CARD` (전북카드) + - `JEJU_CARD` (제주카드) + - `HANA_CARD` (하나카드) + - `KOOKMIN_CARD` (국민카드) + - `K_BANK` (케이뱅크 카드) + - `TOSS_BANK` (토스뱅크 카드) + - name === 'kcp'}> - - `KOREA_DEVELOPMENT_BANK` (KDB산업은행 카드) - - `KFCC` (새마을금고 카드) - - `SHINHYUP` (신협 카드) - - `EPOST` (우체국 카드) - - `SAVINGS_BANK_KOREA` (저축은행 카드) - - `KAKAO_BANK` (카카오뱅크 카드) - - `WOORI_CARD` (우리카드) - - `BC_CARD` (BC카드) - - `GWANGJU_CARD` (광주카드) - - `SAMSUNG_CARD` (삼성카드) - - `SHINHAN_CARD` (신한카드) - - `HYUNDAI_CARD` (현대카드) - - `LOTTE_CARD` (롯데카드) - - `SUHYUP_CARD` (수협카드) - - `CITI_CARD` (씨티카드) - - `NH_CARD` (NH농협카드) - - `JEJU_CARD` (제주카드) - - `HANA_CARD` (하나카드) - - `KOOKMIN_CARD` (국민카드) - - `K_BANK` (케이뱅크 카드) - - `TOSS_BANK` (토스뱅크 카드) - - -
+ name === 'kcp'}> + - `KOREA_DEVELOPMENT_BANK` (KDB산업은행 카드) + - `KFCC` (새마을금고 카드) + - `SHINHYUP` (신협 카드) + - `EPOST` (우체국 카드) + - `SAVINGS_BANK_KOREA` (저축은행 카드) + - `KAKAO_BANK` (카카오뱅크 카드) + - `WOORI_CARD` (우리카드) + - `BC_CARD` (BC카드) + - `GWANGJU_CARD` (광주카드) + - `SAMSUNG_CARD` (삼성카드) + - `SHINHAN_CARD` (신한카드) + - `HYUNDAI_CARD` (현대카드) + - `LOTTE_CARD` (롯데카드) + - `SUHYUP_CARD` (수협카드) + - `CITI_CARD` (씨티카드) + - `NH_CARD` (NH농협카드) + - `JEJU_CARD` (제주카드) + - `HANA_CARD` (하나카드) + - `KOOKMIN_CARD` (국민카드) + - `K_BANK` (케이뱅크 카드) + - `TOSS_BANK` (토스뱅크 카드) + +
+
- - installment?: object + - installment?: object - **할부 설정** + **할부 설정** - name === 'nice'}> - - 나이스페이먼츠의 경우 할부 사용 시 별도 계약이 필요합니다. - - + name === 'nice'}> + + 나이스페이먼츠의 경우 할부 사용 시 별도 계약이 필요합니다. + + - - - freeInstallmentPlans?: object\[] + + - freeInstallmentPlans?: object\[] - **무이자 할부 설정** + **무이자 할부 설정** - 고객사가 부담하는 무이자 할부 설정입니다. + 고객사가 부담하는 무이자 할부 설정입니다. - - - cardCompany: string + + - cardCompany: string - **무이자 할부를 제공하는 카드사 식별 값** + **무이자 할부를 제공하는 카드사 식별 값** - 상단의 카드사 식별 값 항목을 참고해주세요. + 상단의 카드사 식별 값 항목을 참고해주세요. - - months: number\[] + - months: number\[] - **무이자 할부를 제공하는 개월 수** - + **무이자 할부를 제공하는 개월 수** + - - monthOption?: object + - monthOption?: object - **할부 개월 수 설정** + **할부 개월 수 설정** - 할부 결제 시 할부 개월 수를 설정할 수 있습니다. + 할부 결제 시 할부 개월 수를 설정할 수 있습니다. - `fixedMonth`와 `availableMonthList` 중 하나만 제공해주세요. + `fixedMonth`와 `availableMonthList` 중 하나만 제공해주세요. - - - fixedMonth: number + + - fixedMonth: number - **구매자가 선택할 수 없도록 고정된 할부 개월 수** + **구매자가 선택할 수 없도록 고정된 할부 개월 수** - 구매자가 할부 개월 수를 선택할 수 있도록 하려면 `availableMonthList`를 사용해주세요. + 구매자가 할부 개월 수를 선택할 수 있도록 하려면 `availableMonthList`를 사용해주세요. - - availableMonthList: number\[] + - availableMonthList: number\[] - **구매자가 선택할 수 있는 할부 개월 수 목록** + **구매자가 선택할 수 있는 할부 개월 수 목록** - name === 'toss'}> - - 토스페이먼츠의 경우 자체 정책에 따라 **일시불부터 전달한 값 중 최댓값까지 모두 표시**됩니다. - - - - + name === 'toss'}> + + 토스페이먼츠의 경우 자체 정책에 따라 **일시불부터 전달한 값 중 최댓값까지 모두 표시**됩니다. + + +
+ - - cashReceiptType?: string + - cashReceiptType?: string - **결제창에서 발급 가능한 현금영수증 발급 유형** + **결제창에서 발급 가능한 현금영수증 발급 유형** - - `PERSONAL` (소득공제용) - - `CORPORATE` (지출증빙용) - - `ANONYMOUS` (미발행(국세청번호 자동발급)) + - `PERSONAL` (소득공제용) + - `CORPORATE` (지출증빙용) + - `ANONYMOUS` (미발행(국세청번호 자동발급)) - - customerIdentifier?: string + - customerIdentifier?: string - **현금영수증 발행 대상 식별 정보** + **현금영수증 발행 대상 식별 정보** - - availablePayMethods?: string\[] + - availablePayMethods?: string\[] - **노출할 간편결제 방식** + **노출할 간편결제 방식** - - `CARD` (카드 결제) - - `CHARGE` (포인트 충전 및 적립 결제) - - `MONEY` (토스페이 머니 결제) - - `TRANSFER` (계좌 결제) + - `CARD` (카드 결제) + - `CHARGE` (포인트 충전 및 적립 결제) + - `MONEY` (토스페이 머니 결제) + - `TRANSFER` (계좌 결제) - name === "nice"}> - - 나이스페이먼츠의 경우 일부 간편결제 수단에 대해 `availablePayMethods`가 필수입니다. + name === "nice"}> + + 나이스페이먼츠의 경우 일부 간편결제 수단에 대해 `availablePayMethods`가 필수입니다. - - 네이버페이: 카드 결제인 경우 `CARD`, 포인트 혹은 머니 결제인 경우 `CHARGE`를 입력합니다. - - SSG페이: 계좌 결제를 노출하는 `TRANSFER`만 유효하며, 카드 혹은 머니 결제인 경우 `availablePayMethods`를 생략해야 합니다. - - -
+ - 네이버페이: 카드 결제인 경우 `CARD`, 포인트 혹은 머니 결제인 경우 `CHARGE`를 입력합니다. + - SSG페이: 계좌 결제를 노출하는 `TRANSFER`만 유효하며, 카드 혹은 머니 결제인 경우 `availablePayMethods`를 생략해야 합니다. + +
+ - #### taxFreeAmount?: number + - taxFreeAmount?: number - **면세 금액** + **면세 금액** - 결제 금액 중 면세금액에 해당하는 금액을 입력합니다. + 결제 금액 중 면세금액에 해당하는 금액을 입력합니다. - - 미입력 시 0으로 취급됩니다. - - 결제 금액과 동일하게 통화별 scale factor가 적용된 금액으로 전달해주세요. + - 미입력 시 0으로 취급됩니다. + - 결제 금액과 동일하게 통화별 scale factor가 적용된 금액으로 전달해주세요. - name === 'toss'}> - - 토스페이먼츠의 경우 면세 및 복합과세 이용 시 별도 계약이 필요합니다. - - + name === 'toss'}> + + 토스페이먼츠의 경우 면세 및 복합과세 이용 시 별도 계약이 필요합니다. + + - name === 'nice'}> - - 나이스페이먼츠와 계약 시 지정된 면세금액을 반드시 입력해야 합니다. - - + name === 'nice'}> + + 나이스페이먼츠와 계약 시 지정된 면세금액을 반드시 입력해야 합니다. + + - name === 'kcp'}> - - KCP의 경우 면세 금액을 직접 지정하기 위해서는 별도 계약이 필요합니다. - 계약을 진행하지 않고 값을 지정하는 경우 요청한 내용과 다른 금액으로 결제가 발생할 수 있습니다. - - + name === 'kcp'}> + + KCP의 경우 면세 금액을 직접 지정하기 위해서는 별도 계약이 필요합니다. + 계약을 진행하지 않고 값을 지정하는 경우 요청한 내용과 다른 금액으로 결제가 발생할 수 있습니다. + + - #### vatAmount?: number + - vatAmount?: number - **부가세** + **부가세** - 부가세 금액을 입력합니다. + 부가세 금액을 입력합니다. - - 미입력 시 과세 금액의 1/11 로 자동 계산됩니다. - - 결제 금액과 동일하게 통화별 scale factor가 적용된 금액으로 전달해주세요. + - 미입력 시 과세 금액의 1/11 로 자동 계산됩니다. + - 결제 금액과 동일하게 통화별 scale factor가 적용된 금액으로 전달해주세요. - name === 'kcp'}> - - KCP의 경우 부가세 금액을 직접 지정하기 위해서는 별도 계약이 필요합니다. - 계약을 진행하지 않고 값을 지정하는 경우 요청한 내용과 다른 금액으로 결제가 발생할 수 있습니다. - - + name === 'kcp'}> + + KCP의 경우 부가세 금액을 직접 지정하기 위해서는 별도 계약이 필요합니다. + 계약을 진행하지 않고 값을 지정하는 경우 요청한 내용과 다른 금액으로 결제가 발생할 수 있습니다. + + - #### customer?: object + - customer?: object - **구매자 정보** + **구매자 정보** - name === 'ksnet'}> - - KSNET 결제 시 구매자 이름을 필수로 입력해야 합니다. - - + name === 'ksnet'}> + + KSNET 결제 시 구매자 이름을 필수로 입력해야 합니다. + + - name === 'inicis'}> - - KG이니시스 결제 시 구매자 이름, 연락처, 이메일을 필수로 입력해야 합니다. - - + name === 'inicis'}> + + KG이니시스 결제 시 구매자 이름, 연락처, 이메일을 필수로 입력해야 합니다. + + - name === 'smartro'}> - - 스마트로 결제 시 구매자 연락처를 필수로 입력해야 합니다. - - + name === 'smartro'}> + + 스마트로 결제 시 구매자 연락처를 필수로 입력해야 합니다. + + - - - customerId?: string + + - customerId?: string - **구매자 고유 아이디** + **구매자 고유 아이디** - 구매자를 식별하는 고유 번호로, 자유롭게 입력합니다. + 구매자를 식별하는 고유 번호로, 자유롭게 입력합니다. - - fullName?: string + - fullName?: string - **구매자 전체 이름** + **구매자 전체 이름** - - `fullName`과 (`firstName`, `lastName`) 쌍 중 하나만 입력해 주세요. + - `fullName`과 (`firstName`, `lastName`) 쌍 중 하나만 입력해 주세요. - - firstName?: string + - firstName?: string - **구매자의 성을 제외한 이름** + **구매자의 성을 제외한 이름** - - `firstName`과 `lastName`은 함께 입력해야 합니다. 전체 이름은 `{firstName} {lastName}`으로 기록됩니다. + - `firstName`과 `lastName`은 함께 입력해야 합니다. 전체 이름은 `{firstName} {lastName}`으로 기록됩니다. - - lastName?: string + - lastName?: string - **구매자의 성** + **구매자의 성** - - `firstName`과 `lastName`은 함께 입력해야 합니다. 전체 이름은 `{firstName} {lastName}`으로 기록됩니다. + - `firstName`과 `lastName`은 함께 입력해야 합니다. 전체 이름은 `{firstName} {lastName}`으로 기록됩니다. - - phoneNumber?: string + - phoneNumber?: string - **구매자 연락처** + **구매자 연락처** - - email?: string + - email?: string - **구매자 이메일 주소** + **구매자 이메일 주소** - - address?: object + - address?: object - **구매자 주소** + **구매자 주소** - - - country?: string + + - country?: string - **국가** + **국가** - [ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html)에 의해 표준화된 2글자 국가 코드입니다. + [ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html)에 의해 표준화된 2글자 국가 코드입니다. - - addressLine1: string + - addressLine1: string - **일반 주소** + **일반 주소** - - addressLine2: string + - addressLine2: string - **상세 주소** + **상세 주소** - - city?: string + - city?: string - **도시** + **도시** - - province?: string + - province?: string - **주, 도, 시** - + **주, 도, 시** + - - zipcode?: string + - zipcode?: string - **구매자 우편번호** + **구매자 우편번호** - - gender?: string + - gender?: string - **구매자 성별** + **구매자 성별** - - `MALE`, `FEMALE`, `OTHER` 중 하나를 입력해주세요. + - `MALE`, `FEMALE`, `OTHER` 중 하나를 입력해주세요. - - birthYear?: string + - birthYear?: string - **구매자 출생년도** + **구매자 출생년도** - - `1990`과 같이 숫자 4자리로 입력해 주세요. + - `1990`과 같이 숫자 4자리로 입력해 주세요. - - birthMonth?: string + - birthMonth?: string - **구매자 출생월** + **구매자 출생월** - - `07`과 같이 숫자 2자리로 입력해 주세요. + - `07`과 같이 숫자 2자리로 입력해 주세요. - - birthDay?: string + - birthDay?: string - **구매자 출생일** + **구매자 출생일** - - `08`과 같이 숫자 2자리로 입력해 주세요. - + - `08`과 같이 숫자 2자리로 입력해 주세요. + - #### customData?: object + - customData?: object - `customData`에는 임의의 데이터를 저장할 수 있습니다. - 서버에서 결제건 조회 시에 확인할 수 있으며, 상품 정보를 전달하여 서버가 인식한 상품 정보와 일치하는지 확인할 수 있습니다. + `customData`에는 임의의 데이터를 저장할 수 있습니다. + 서버에서 결제건 조회 시에 확인할 수 있으며, 상품 정보를 전달하여 서버가 인식한 상품 정보와 일치하는지 확인할 수 있습니다. - #### bypass?: object + - bypass?: object - **결제대행사 고유 기능** + **결제대행사 고유 기능** - - name === "toss"}> - - tosspayments?: object + + name === "toss"}> + - tosspayments?: object - - - discountCode?: string + + - discountCode?: string - - 결제수단에 프로모션을 적용할 경우 토스페이먼츠로부터 제공받은 코드를 입력합니다. + - 결제수단에 프로모션을 적용할 경우 토스페이먼츠로부터 제공받은 코드를 입력합니다. - - useInternationalCardOnly?: boolean + - useInternationalCardOnly?: boolean - - `true`로 설정하면 해외 카드로만 결제를 허용합니다. - - + - `true`로 설정하면 해외 카드로만 결제를 허용합니다. + + - name === "nice"}> - - nice\_v2?: object + name === "nice"}> + - nice\_v2?: object - - - LogoImage?: string + + - LogoImage?: string - **결제창 로고 이미지 URL** + **결제창 로고 이미지 URL** - - NPDisableScroll?: string + - NPDisableScroll?: string - **PC환경 결제창 스크롤 미사용 여부** + **PC환경 결제창 스크롤 미사용 여부** - 기본값은 `N`입니다. + 기본값은 `N`입니다. - - `Y`: 미사용 - - `N`: 사용 + - `Y`: 미사용 + - `N`: 사용 - - SkinType?: string + - SkinType?: string - **결제창 스킨 색상** + **결제창 스킨 색상** - `red`, `green`, `purple`, `gray`, `dark` 중 하나를 입력해주세요. + `red`, `green`, `purple`, `gray`, `dark` 중 하나를 입력해주세요. - - UserCI?: string + - UserCI?: string - **문화상품권 결제 시 구매자 CI 정보** + **문화상품권 결제 시 구매자 CI 정보** - 아이디/비밀번호 외 추가로 CI 인증이 필요한 경우 사용합니다. + 아이디/비밀번호 외 추가로 CI 인증이 필요한 경우 사용합니다. - - 나이스페이먼츠와 별도 계약이 필요합니다. - + + 나이스페이먼츠와 별도 계약이 필요합니다. + - - MallUserID?: string + - MallUserID?: string - **구매자 식별 번호** + **구매자 식별 번호** - - 문화 상품권 결제 시 필수 입력입니다. - + + 문화 상품권 결제 시 필수 입력입니다. + - - DirectCouponYN?: string + - DirectCouponYN?: string - **신용카드 쿠폰 자동 적용 여부** + **신용카드 쿠폰 자동 적용 여부** - 기본값은 `N`입니다. + 기본값은 `N`입니다. - - `Y`: 사전 등록된 선 할인 쿠폰을 자동 적용 - - `N`: 쿠폰 미적용 + - `Y`: 사전 등록된 선 할인 쿠폰을 자동 적용 + - `N`: 쿠폰 미적용 - - 나이스페이먼츠와 별도 계약이 필요합니다. - + + 나이스페이먼츠와 별도 계약이 필요합니다. + - - DirectShowOpt?: string + - DirectShowOpt?: string - **단독 호출 결제 수단** + **단독 호출 결제 수단** - - `BANK`: 계좌이체 - - `CELLPHONE`: 휴대폰 소액결제 + - `BANK`: 계좌이체 + - `CELLPHONE`: 휴대폰 소액결제 - - CardShowOpt?: string + - CardShowOpt?: string - **카드사별 호출 방식** + **카드사별 호출 방식** - `카드 코드:노출 유형` 값의 목록을 `|`로 구분하여 입력해주세요. + `카드 코드:노출 유형` 값의 목록을 `|`로 구분하여 입력해주세요. - - 카드 코드 - - `02` (국민) - - `04` (삼성) - - `06` (신한) - - `07` (현대) - - `08` (롯데) - - `12` (NH) - - `15` (우리) + - 카드 코드 + - `02` (국민) + - `04` (삼성) + - `06` (신한) + - `07` (현대) + - `08` (롯데) + - `12` (NH) + - `15` (우리) - - 노출 유형 - - `1` (안심클릭) - - `2` (간편결제) - - `3` (앱카드 직접 호출) + - 노출 유형 + - `1` (안심클릭) + - `2` (간편결제) + - `3` (앱카드 직접 호출) - - `08:3|02:3`의 경우 롯데카드와 국민카드 선택시 앱카드를 직접 호출합니다. + - `08:3|02:3`의 경우 롯데카드와 국민카드 선택시 앱카드를 직접 호출합니다. - - PaycoClientId?: string + - PaycoClientId?: string - **페이코에서 고객사에 발급한 Client Id** + **페이코에서 고객사에 발급한 Client Id** - 페이코 계정 자동 로그인 기능을 사용하는 경우 입력합니다. + 페이코 계정 자동 로그인 기능을 사용하는 경우 입력합니다. - - 나이스페이먼츠와 별도 계약이 필요합니다. - + + 나이스페이먼츠와 별도 계약이 필요합니다. + - - PaycoAccessToken?: string + - PaycoAccessToken?: string - **페이코 접속 토큰** + **페이코 접속 토큰** - 페이코 계정 자동 로그인 기능을 사용하는 경우 입력합니다. + 페이코 계정 자동 로그인 기능을 사용하는 경우 입력합니다. - - 나이스페이먼츠와 별도 계약이 필요합니다. - + + 나이스페이먼츠와 별도 계약이 필요합니다. + - - SamsungPayType?: string + - SamsungPayType?: string - **삼성페이 고객사 유형** + **삼성페이 고객사 유형** - 기본값은 `99`입니다. + 기본값은 `99`입니다. - - `01`: 삼성페이 내 쇼핑 - - `99`: 기타 + - `01`: 삼성페이 내 쇼핑 + - `99`: 기타 - - 나이스페이먼츠와 별도 계약이 필요합니다. - - - + + 나이스페이먼츠와 별도 계약이 필요합니다. + + + - name === "kcp"}> - - kcp\_v2?: object + name === "kcp"}> + - kcp\_v2?: object - - - site\_logo?: string + + - site\_logo?: string - **결제창 로고 URL** + **결제창 로고 URL** - - 결제창 좌측 상단에 표시됩니다. - - 이미지 사이즈는 가로 150px, 세로 50px 미만으로 설정해야 하며, GIF, JPG 파일만 지원됩니다. + - 결제창 좌측 상단에 표시됩니다. + - 이미지 사이즈는 가로 150px, 세로 50px 미만으로 설정해야 하며, GIF, JPG 파일만 지원됩니다. - - skin\_indx?: number + - skin\_indx?: number - **결제창 색상** + **결제창 색상** - PC로 결제창 호출 시 결제창 색상을 변경합니다. + PC로 결제창 호출 시 결제창 색상을 변경합니다. - - 1: 청색 (#207bba, 기본값) - - 2: 자주색 (#b52ecb) - - 3: 갈색 (#9a6d3f) - - 4: 분홍색 (#e41f7d) - - 5: 남색 (#284c8c) - - 6: 청록색 (#319cb9) - - 7: 황토색 (#a77f1d) - - 8: 주황색 (#b2b2b2) - - 9: 초록색 (#3cc871) - - 10: 다홍색 (#ee3b34) - - 11: 검은색 (#000000) - - 12: 은색 (#f4f4f4) + - 1: 청색 (#207bba, 기본값) + - 2: 자주색 (#b52ecb) + - 3: 갈색 (#9a6d3f) + - 4: 분홍색 (#e41f7d) + - 5: 남색 (#284c8c) + - 6: 청록색 (#319cb9) + - 7: 황토색 (#a77f1d) + - 8: 주황색 (#b2b2b2) + - 9: 초록색 (#3cc871) + - 10: 다홍색 (#ee3b34) + - 11: 검은색 (#000000) + - 12: 은색 (#f4f4f4) - - kcp\_pay\_title?: string + - kcp\_pay\_title?: string - **결제창 상단 문구** + **결제창 상단 문구** - 결제창의 상단에 `NHN KCP - 결제의 중심!` 대신 표시될 문구입니다. + 결제창의 상단에 `NHN KCP - 결제의 중심!` 대신 표시될 문구입니다. - - shop\_user\_id?: string + - shop\_user\_id?: string - **기관에 따라 리스크 관리 조치를 위한 쇼핑몰 관리 ID** + **기관에 따라 리스크 관리 조치를 위한 쇼핑몰 관리 ID** - - 상품권, 휴대폰 결제 시 필수로 입력해야 합니다. + - 상품권, 휴대폰 결제 시 필수로 입력해야 합니다. - - site\_name?: string + - site\_name?: string - **카드사 단독 노출 시 결제창에 표기될 상호명** + **카드사 단독 노출 시 결제창에 표기될 상호명** - - PC의 경우 신한, 현대, 삼성, 농협, 하나, 외환, 롯데, 씨티, 우리카드 단독 노출 시 필수로 입력해야 합니다. - - 모바일의 경우 필수로 입력해야 합니다. + - PC의 경우 신한, 현대, 삼성, 농협, 하나, 외환, 롯데, 씨티, 우리카드 단독 노출 시 필수로 입력해야 합니다. + - 모바일의 경우 필수로 입력해야 합니다. - - disp\_tax\_yn?: string + - disp\_tax\_yn?: string - **현금영수증 노출 여부** + **현금영수증 노출 여부** - 결제창에서 현금영수증 노출 여부를 설정합니다. 실시간 계좌이체 또는 가상계좌 결제 시 사용할 수 있습니다. + 결제창에서 현금영수증 노출 여부를 설정합니다. 실시간 계좌이체 또는 가상계좌 결제 시 사용할 수 있습니다. - - `Y`: 노출 - - `N`: 노출하지 않음 - - `R`: 소득공제로 노출 - - `E`: 지출증빙으로 노출 + - `Y`: 노출 + - `N`: 노출하지 않음 + - `R`: 소득공제로 노출 + - `E`: 지출증빙으로 노출 - - deli\_term?: string + - deli\_term?: string - **에스크로 결제 예상 배송 소요일** + **에스크로 결제 예상 배송 소요일** - 에스크로 결제 시, 결제 상품의 예상 배송 소요일입니다. 에스크로 결제 사용 시 입력을 권장하고 있습니다. + 에스크로 결제 시, 결제 상품의 예상 배송 소요일입니다. 에스크로 결제 사용 시 입력을 권장하고 있습니다. - - 기본값은 `00`입니다. - - 항상 두 자리 수로 입력되어야 합니다. 예상 배송 소요기간이 3일인 경우, `03`으로 입력합니다. - - - + - 기본값은 `00`입니다. + - 항상 두 자리 수로 입력되어야 합니다. 예상 배송 소요기간이 3일인 경우, `03`으로 입력합니다. + + + - #### redirectUrl?: string + - redirectUrl?: string - **리디렉션 방식에서 결제 프로세스 완료 후 이동될 고객사 URL** + **리디렉션 방식에서 결제 프로세스 완료 후 이동될 고객사 URL** - - 대부분의 모바일 결제환경에서 반드시 입력해야 합니다. + - 대부분의 모바일 결제환경에서 반드시 입력해야 합니다. - #### noticeUrls?: string\[] + - noticeUrls?: string\[] - **결제 웹훅 수신 URL** + **결제 웹훅 수신 URL** - 관리자 콘솔에서 설정한 웹훅 주소 대신 사용할 주소입니다. + 관리자 콘솔에서 설정한 웹훅 주소 대신 사용할 주소입니다. - - 해당 값 설정시 관리자 콘솔에 설정한 주소로는 웹훅이 발송되지 않습니다. + - 해당 값 설정시 관리자 콘솔에 설정한 주소로는 웹훅이 발송되지 않습니다. - #### appScheme?: string + - appScheme?: string - **모바일 결제 후 고객사 앱으로 복귀하기 위한 URL scheme** + **모바일 결제 후 고객사 앱으로 복귀하기 위한 URL scheme** - ISP/앱카드에서 결제 완료 후 고객사 앱으로 복귀할 때 사용합니다. + ISP/앱카드에서 결제 완료 후 고객사 앱으로 복귀할 때 사용합니다. - name === "toss"}> - - 토스페이먼츠의 경우 `myappscheme://` 형식으로 입력해 주세요. - - + name === "toss"}> + + 토스페이먼츠의 경우 `myappscheme://` 형식으로 입력해 주세요. + + - #### productType?: string + - productType?: string - **상품 유형** + **상품 유형** - - 실물 상품: `PRODUCT_TYPE_REAL` - - 디지털 상품: `PRODUCT_TYPE_DIGITAL` + - 실물 상품: `PRODUCT_TYPE_REAL` + - 디지털 상품: `PRODUCT_TYPE_DIGITAL` - name === "nice" && payMethods === 'mobile'}> - - 나이스페이먼츠 휴대폰 소액결제 시 `productType`는 필수 입력이며, 상점에 설정된 상품 유형과 입력된 상품 유형이 다른 경우 결제가 실패합니다. - - + name === "nice" && payMethods === 'mobile'}> + + 나이스페이먼츠 휴대폰 소액결제 시 `productType`는 필수 입력이며, 상점에 설정된 상품 유형과 입력된 상품 유형이 다른 경우 결제가 실패합니다. + + - #### offerPeriod?: oneof object + - offerPeriod?: oneof object - **서비스 제공 기간** + **서비스 제공 기간** - `range`와 `interval` 중 하나만 입력해주세요. + `range`와 `interval` 중 하나만 입력해주세요. - - - range?: object + + - range?: object - **서비스 제공 기간 범위** + **서비스 제공 기간 범위** - - - from?: string + + - from?: string - **시작 시점** + **시작 시점** - - to?: string + - to?: string - **종료 시점** - + **종료 시점** + - - interval?: string + - interval?: string - **제공 기간** + **제공 기간** - - `{number}d` (`{number}`일) - - `{number}m` (`{number}`분) - - `{number}y` (`{number}`년) - + - `{number}d` (`{number}`일) + - `{number}m` (`{number}`분) + - `{number}y` (`{number}`년) + - #### products?: object\[] + - products?: object\[] - **구매 상품 상세 정보** + **구매 상품 상세 정보** - - - id: string + + - id: string - **상품 아이디** + **상품 아이디** - - name: string + - name: string - **상품명** + **상품명** - - code?: string + - code?: string - **상품 코드** + **상품 코드** - name === 'toss'}> - - 토스페이먼츠의 경우 반드시 입력해주세요. - - + name === 'toss'}> + + 토스페이먼츠의 경우 반드시 입력해주세요. + + - - amount: number + - amount: number - **상품 단위 가격** + **상품 단위 가격** - - 결제 금액과 동일하게 통화별 scale factor가 적용된 금액으로 전달해주세요. + - 결제 금액과 동일하게 통화별 scale factor가 적용된 금액으로 전달해주세요. - - quantity: number + - quantity: number - **상품 수량** + **상품 수량** - - tag?: string + - tag?: string - **상품 태그** - + **상품 태그** + - #### storeDetails?: object + - storeDetails?: object - **상점 정보** + **상점 정보** - - - ceoFullName?: string + + - ceoFullName?: string - **상점 대표자 이름** + **상점 대표자 이름** - - phoneNumber?: string + - phoneNumber?: string - **상점 연락처** + **상점 연락처** - - address?: string + - address?: string - **상점 주소** + **상점 주소** - - zipcode?: string + - zipcode?: string - **상점 우편번호** - + **상점 우편번호** + - #### isCulturalExpense?: boolean + - isCulturalExpense?: boolean - **문화비 지출 여부** + **문화비 지출 여부** - 도서, 공연, 박물관 등 문화비 지출 여부 + 도서, 공연, 박물관 등 문화비 지출 여부 - #### isEscrow?: boolean + - isEscrow?: boolean - **에스크로 결제 여부** + **에스크로 결제 여부** - `true`로 설정하면 에스크로를 사용합니다. + `true`로 설정하면 에스크로를 사용합니다. - name === "toss"}> - - 토스페이먼츠의 경우 에스크로 사용 시 별도 계약이 필요합니다. - - + name === "toss"}> + + 토스페이먼츠의 경우 에스크로 사용 시 별도 계약이 필요합니다. + + - name === 'nice'}> - - 나이스페이먼츠의 경우 에스크로 사용 시 별도 계약이 필요합니다. - - + name === 'nice'}> + + 나이스페이먼츠의 경우 에스크로 사용 시 별도 계약이 필요합니다. + + - ['kcp'].includes(name)}> - #### locale?: string + ['kcp'].includes(name)}> + #### locale?: string - **결제창 언어** + **결제창 언어** - - 한국어: `KO_KR` - - 영어: `EN_US` - + - 한국어: `KO_KR` + - 영어: `EN_US` + - #### country?: string + - country?: string - **결제 국가** + **결제 국가** - [ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html)에 의해 표준화된 2글자 국가 코드입니다. + [ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html)에 의해 표준화된 2글자 국가 코드입니다. - #### popup?: object + - popup?: object - **결제창이 팝업 방식일 경우 결제창에 적용할 속성** + **결제창이 팝업 방식일 경우 결제창에 적용할 속성** - - - center?: boolean + + - center?: boolean - `true`로 설정하면 결제창이 브라우저 화면의 정중앙에 표시됩니다. - - + `true`로 설정하면 결제창이 브라우저 화면의 정중앙에 표시됩니다. + +
diff --git a/src/routes/(root)/sdk/ko/v2-sdk/payment-request.mdx b/src/routes/(root)/sdk/ko/v2-sdk/payment-request.mdx index d89bd494d..c437197f3 100644 --- a/src/routes/(root)/sdk/ko/v2-sdk/payment-request.mdx +++ b/src/routes/(root)/sdk/ko/v2-sdk/payment-request.mdx @@ -8,47 +8,10 @@ versionVariants: import Details from "~/components/gitbook/Details"; import Parameter from "~/components/gitbook/Parameter"; -import ParamTree from "~/components/gitbook/ParamTree"; ## 결제요청 파라미터 정의 - - - **스토어 아이디** - - - 포트원 계정에 생성된 상점을 식별하는 고유한 값으로 관리자 콘솔에서 확인할 수 있습니다. - - - - 토스페이먼츠 bypass 파라미터 - - - - 토스페이먼츠 \<-> 고객사 계약에 따라 프로모션 적용이 가능한 코드 - - - - 해외 카드로만 결제가 가능하도록 할 지 여부 - - - - 토스페이먼츠 bypass 파라미터 - - - - 토스페이먼츠 \<-> 고객사 계약에 따라 프로모션 적용이 가능한 코드 - - - - 해외 카드로만 결제가 가능하도록 할 지 여부 - - - - - - - - + - storeId: string @@ -321,7 +284,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; **고객 정보** - + - customerId?: string **구매자 고유 ID** @@ -359,7 +322,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; **구매자 주소** - + - country?: string **국가** @@ -635,7 +598,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - province?: string **주, 도, 시** - + - zipcode?: string @@ -664,7 +627,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; **구매자 출생일** ex. `"25"`, `"08"` 같은 형식으로 입력해주세요. - + - windowType?: object @@ -676,7 +639,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - 미입력 시, 해당 PG사의 기본 결제창 방식을 따릅니다.
- + - pc?: string **PC에서의 결제창 유형** `IFRAME`, `REDIRECTION`, `POPUP` 중 하나를 입력해주세요. @@ -684,7 +647,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - mobile?: string **모바일에서의 결제창 유형** `IFRAME`, `REDIRECTION`, `POPUP` 중 하나를 입력해주세요. - + - redirectUrl?: string @@ -732,7 +695,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; **구매 상품 상세 정보** - + - id: string **상품 ID** @@ -765,7 +728,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - tag?: string **상품 태그** - + - isCulturalExpense?: boolean @@ -794,22 +757,22 @@ import ParamTree from "~/components/gitbook/ParamTree"; **결제창이 팝업 방식일 경우 결제창에 적용할 속성** - + - center?: boolean `true`로 설정하면 결제창이 브라우저 화면의 정중앙에 표시됩니다. - + - bypass?: oneof object **PG사 결제창 호출 시 PG사로 그대로 bypass할 값들의 모음** - + - tosspayments?: object 토스페이먼츠 bypass 파라미터 - + - discountCode?: string 토스페이먼츠 \<-> 고객사 계약에 따라 프로모션 적용이 가능한 코드 @@ -817,23 +780,23 @@ import ParamTree from "~/components/gitbook/ParamTree"; - useInternationalCardOnly?: boolean 해외 카드로만 결제가 가능하도록 할 지 여부 - + - kakaopay?: object 카카오페이 bypass 파라미터 - + - custom\_message?: string 카카오페이 결제창에 띄워줄 사용자 정의 문구 - + - smartro\_v2?: object 스마트로 V2 bypass 파라미터 - + - GoodsCnt?: number 결제 상품 품목 개수 @@ -849,13 +812,13 @@ import ParamTree from "~/components/gitbook/ParamTree"; 해외 카드만 결제를 허용할지 여부(기본값: `"KR"`) `"KR"`, `"EN"` 중 하나의 값으로 입력해주세요. - + - naverpay?: object 네이버페이 bypass 파라미터 - + - useCfmYmdt?: string 이용완료일 (YYYYMMDD) @@ -864,7 +827,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; 상품 정보 - + - categoryType: string 결제 상품 유형 @@ -917,18 +880,18 @@ import ParamTree from "~/components/gitbook/ParamTree"; - count: string 결제 상품 개수 - + - deliveryFee?: number 배송비 - + - nice\_v2?: object (신)나이스페이먼츠 bypass 파라미터 - + - LogoImage?: string 결제창 로고 이미지 URL @@ -981,7 +944,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - SamsungPayType?: string 삼성페이 고객사 유형 (01: 삼성페이 內 쇼핑 / 99: 기타 (기본값)) - + - inicis\_v2?: object @@ -991,7 +954,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; **PC용 파라미터** - + - logo\_url?: string 결제창에 삽입할 메인 로고 url @@ -1025,7 +988,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; 아래 string 중 원하는 옵션들을 골라 array 형태로 입력합니다. - + - SKIN($\{string})?: string 결제창 색상 @@ -1067,12 +1030,12 @@ import ParamTree from "~/components/gitbook/ParamTree"; `string` 부분에는 `카드코드:카드코드` 와 같은 형식으로 입력합니다. (ex. `mallpoint(11:34)`) 카드사 코드는 [이니시스 통합 코드](https://manual.inicis.com/pay/code.html) 페이지에서 "결제요청 시 카드코드" 섹션을 참고하시기 바랍니다. - - + + **모바일용 파라미터** - + - P\_CARD\_OPTION?: string 신용카드 우선선택 옵션 @@ -1090,7 +1053,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; 아래 string 중 원하는 옵션들을 골라 array 형태로 입력합니다. - + - below1000=Y?: string (카드결제 & 간편결제 시) 1000원 미만 결제 허용 옵션 @@ -1106,14 +1069,14 @@ import ParamTree from "~/components/gitbook/ParamTree"; - apprun\_check=Y?: string (android의 경우) custom url scheme 대신 intent schema(intent://) 호출 - - + + - kpn?: object KPN bypass 파라미터 - + - CardSelect?: enum\[] **일부 렌더링할 결제방식 목록** @@ -1122,8 +1085,8 @@ import ParamTree from "~/components/gitbook/ParamTree"; - 해외카드 (VISA + MASTER + JCB) : `GLOBAL` - 구인증 : `LEGACY_AUTH` - 키인 : `KEY_IN` - - + + - country?: string @@ -1391,18 +1354,18 @@ import ParamTree from "~/components/gitbook/ParamTree"; `"PRODUCT_TYPE_REAL"`, `"PRODUCT_TYPE_DIGITAL"` 중 하나의 값을 입력해주세요. -- offerPeriod?: string +- offerPeriod?: object 서비스 제공 기간 range(기간 범위)와 interval(제공 주기) 중 하나를 입력해주세요. - + - range?: object 기간 범위 - + - from?: string 시작 시점 @@ -1410,18 +1373,18 @@ import ParamTree from "~/components/gitbook/ParamTree"; - to?: string 종료 시점 - + - interval?: string 제공 주기 (`${number}d | ${number}m | ${number}y` 형태로 입력할 수 있습니다.) - + - storeDetails?: object 상점 정보 - + - ceoFullName?: string 상점 대표자 이름 @@ -1437,7 +1400,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - zipcode?: string 상점 우편번호 - + - card?: object @@ -1447,7 +1410,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; 카드 결제 시, 카드 결제에 대한 세부 정보 - + - cardCompany?: string **카드사 다이렉트 호출 시 필요한 카드사 식별 값** @@ -1495,14 +1458,14 @@ import ParamTree from "~/components/gitbook/ParamTree"; **할부 설정** - + - freeInstallmentPlans?: object\[] **무이자 할부 설정** 고객사가 부담하는 무이자 할부 설정입니다. - + - cardCompany: string **무이자 할부를 제공하는 카드사 식별 값** @@ -1512,7 +1475,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - months: number\[] **무이자 할부를 제공하는 개월 수** - + - monthOption?: object @@ -1522,7 +1485,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; `fixedMonth`와 `availableMonthList` 중 하나만 제공해주세요. - + - fixedMonth: number **구매자가 선택할 수 없도록 고정된 할부 개월수** @@ -1532,8 +1495,8 @@ import ParamTree from "~/components/gitbook/ParamTree"; - availableMonthList: number\[] **구매자가 선택할 수 있는 할부 개월수 리스트** - - + + - useCardPoint?: boolean @@ -1542,7 +1505,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - useAppCardOnly?: boolean **앱 카드만 허용할지 여부** - + - virtualAccount?: object @@ -1552,7 +1515,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; 가상계좌 발급시 가상계좌 상세 옵션 - + - cashReceiptType?: string **결제창에서 발급 가능한 현금영수증 발급 유형(소득공제용, 지출증빙용, 미발행)** @@ -1575,7 +1538,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; **고정식 가상계좌 설정** - + - pgAccountId?: string PG사로부터 사전에 가상계좌에 대한 ID를 발급받아 사용하는 경우의 가상계좌 ID @@ -1583,7 +1546,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - accountNumber?: string 고정식으로 사용할 가상계좌 번호 - + - bankCode?: string @@ -1674,7 +1637,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; `validHours`와 `dueDate` 중 하나만 입력해주세요. - + - validHours?: number **가상계좌 입금 유효 시간** @@ -1691,8 +1654,8 @@ import ParamTree from "~/components/gitbook/ParamTree"; - YYYYMMDDHHmmss - YYYY-MM-DD - YYYY-MM-DD HH:mm:ss - - + + - transfer?: object @@ -1702,7 +1665,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; 가상계좌 발급시 가상계좌 상세 옵션 - + - cashReceiptType?: string **결제창에서 발급 가능한 현금영수증 발급 유형(소득공제용, 지출증빙용, 미발행)** @@ -1803,7 +1766,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - SK\_SECURITIES(SK증권) - + - mobile?: object @@ -1813,7 +1776,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; 휴대폰 소액결제시 휴대폰 소액결제 상세 옵션 - + - carrier?: string **휴대폰 소액결제 통신사 바로 호출을 위한 통신사 구분 값** @@ -1835,7 +1798,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; **일부 통신사만 노출 설정** 일부 통신사만을 선택 가능하게 하고 싶은 경우 사용하는 옵션입니다. 상단의 통신사 구분 값 항목을 참고해주세요. - + - giftCertificate?: object @@ -1845,7 +1808,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; 상품권 결제시 상품권 결제 상세 옵션 - + - giftCertificateType?: string **상품권 결제시, 상품권을 특정할 수 있는 값** @@ -1859,7 +1822,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - CULTURELAND (문화상품권) - + - easyPay?: object @@ -1869,7 +1832,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; 간편결제시, 간편 결제에 대한 세부 정보 - + - easyPayProvider?: string **간편결제 수단** @@ -1910,14 +1873,14 @@ import ParamTree from "~/components/gitbook/ParamTree"; **할부 설정** - + - freeInstallmentPlans?: object\[] **무이자 할부 설정** 고객사가 부담하는 무이자 할부 설정입니다. - + - cardCompany: string **무이자 할부를 제공하는 카드사 식별 값** @@ -1927,7 +1890,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; - months: number\[] **무이자 할부를 제공하는 개월 수** - + - monthOption?: object @@ -1937,7 +1900,7 @@ import ParamTree from "~/components/gitbook/ParamTree"; `fixedMonth`와 `availableMonthList` 중 하나만 제공해주세요. - + - fixedMonth: number **구매자가 선택할 수 없도록 고정된 할부 개월수** @@ -1947,8 +1910,8 @@ import ParamTree from "~/components/gitbook/ParamTree"; - availableMonthList: number\[] **구매자가 선택할 수 있는 할부 개월수 리스트** - - + + - cashReceiptType?: string @@ -1959,5 +1922,5 @@ import ParamTree from "~/components/gitbook/ParamTree"; - customerIdentifier?: string **현금영수증 발행 대상 식별 정보** - - + +