title | description |
---|---|
Danal |
Danal payment window integration guide |
import Codepen from "/components/gitbook/Codepen.astro";
import Details from "/components/gitbook/Details.astro";
import Tab from "/components/gitbook/tabs/Tab.astro";
import Tabs from "/components/gitbook/tabs/Tabs.astro";
import Hint from "~/components/Hint.astro";
Refer to the Danal settings page to configure the PG settings.
To open the Danal TPay payment window, call JavaScript SDK IMP.request_pay(param, callback).
In both PC and mobile browsers, callback is invoked after calling IMP.request_pay(param, callback)
.
### Key parameter description
**`pg`** <mark style="color:red;"> **\*** </mark> <mark style="color:green;"> **string** </mark>
**PG code**
- If not specified and this is the only PG setting that exists, `default PG` is automatically set.
- If there are multiple PG settings, set to **`danal_tpay`**.
**`pay_method`** <mark style="color:red;"> **\*** </mark> <mark style="color:green;"> **string** </mark>
**Payment method code**
<Details>
<p slot="summary">Payment method codes</p>
- `card` (credit card)
- `trans`(instant account transfer)
- `vbank`(virtual account)
- `cultureland`(Cultureland)
- `happymoney`(Happy Money)
- `booknlife` (Book n culture gift card)
</Details>
**`merchant_uid`** <mark style="color:red;"> **\*** </mark> <mark style="color:green;"> **string** </mark>
**Order ID**
Must be unique for each request.
**`buyer_tel`** <mark style="color:red;"> **\*** </mark><mark style="color:green;"> **`string`** </mark>
**Customer phone number**
Danal payment window may throw an error if omitted
**`amount`** <mark style="color:red;"> **\*** </mark> <mark style="color:purple;"> **integer** </mark>
**Payment amount**
Must be an integer (not string)
<Hint style="info">
#### Virtual account payment requirement
- **`biz_num`**: 10-digit business registration number (required)
</Hint>
<Codepen user="chaiport" slug="jOZZgGG" />
<Hint style="danger">
#### **amount**
- If requesting **both billing key and initial payment**, specify the payment amount.
- If only requesting for billing key, set to <mark style="color:red;">**0**</mark>.\
(if amount is set to 0, Danal executes a test payment of 10 won which is automatically cancelled after 30 minutes.)
</Hint>
```ts title="Javascript SDK"
IMP.request_pay(
{
pg: "danal_tpay",
pay_method: "card", // only 'card' supported.
merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001
name: "Order name: Billing key request test",
amount: 0, // For display purpose only (set actual amount to also request payment approval).
customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234)
buyer_email: "johndoe@gmail.com",
buyer_name: "John Doe",
buyer_tel: "02-1234-1234",
buyer_addr: "Samseong-dong, Gangnam-gu, Seoul",
period: {
from: "20200101", //YYYYMMDD
to: "20201231", //YYYYMMDD
},
},
function (rsp) {
if (rsp.success) {
alert("Success");
} else {
alert("Failed");
}
},
);
```
### Key parameter description
**`pg`** <mark style="color:red;">**\***</mark> <mark style="color:green;">**string**</mark>
**PG code**
- If not specified and this is the only PG setting that exists, `default PG` is automatically set.
- If there are multiple PG settings, set to **`danal_tpay`**.
**`customer_uid`** <mark style="color:red;">**\***</mark> <mark style="color:green;">**string**</mark>
**Credit card billing key**
Billing key to be mapped 1:1 with the user-entered credit card information.
**`amount`** <mark style="color:red;">**\***</mark> <mark style="color:purple;">**Integer**</mark>
**Payment amount**
0: only billing key, **> 0: billing key + initial payment**
**`period`` `**<mark style="color:orange;">**`array`**</mark>
Product subscription payment for subscription payment. The date is displayed on the Danal payment window.
**`from`**<mark style="color:orange;">**`: YYYYMMDD`**</mark>
**`to`**<mark style="color:orange;">**`: YYYYMMDD`**</mark>\\
### Request payment with billing key (customer\_uid)
After successfully getting the billing key,
the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`.
For security reasons, the server cannot directly access the billing key.
Subsequent payments can be requested by calling
the [<mark style="color:blue;">**non-authenticated payment request REST API**</mark>](../../api/api/api)
with the `customer_uid` as follows:
```sh title="sever-side"
curl -H "Content-Type: application/json" \
-X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \
https://api.iamport.kr/subscribe/payments/again
```
**Parameters**
- **card\_quota :**
- `[]`: Only immediate pay
- `3,6`: immediate, 3, 6 month installment plans
<Hint style="info">
Installment plan option is available only for **KRW 50,000 or more**.
</Hint>
<Codepen user="chaiport" slug="mdXXNXV" caption="Example of allowing up to 3 months installment plans" />
**Parameters**
- **code**: [<mark style="color:red;">**Credit card code**</mark>](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**)
- **quota**: Installment plan. For immediate, set to 0. (**integer**)
- **usePoint**: Option to use points (post applied)
<Hint style="danger">
**Danal setup required**
- Direct module call requires pre-setup by Danal.
</Hint>
**Parameters**
- **card\_code:** [<mark style="color:red;">**Credit card code**</mark>](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630)
(<mark style="color:green;">**string)**</mark>
- **enabled:** Option to enable the credit card (<mark style="color:orange;">**boolean)**</mark>
<Codepen user="chaiport" slug="WNMMVJZ" caption="Example of showing only Shinhan Card in the payment window" />