1. Configure Danal PG settings
Refer to the Danal settings page to configure the PG settings.
2. Request payment
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)
.
Javascript SDKIMP.request_pay( { pg: "danal_tpay", pay_method: "card", merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 name: "Order name: Test payment request", amount: 14000, buyer_email: "iamport@siot.do", buyer_name: "John Doe", buyer_tel: "010-1234-5678", buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", buyer_postcode: "123-456", }, function (rsp) { // callback logic //* ...Omitted... *// }, );
Key parameter description
pg
* string
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
* string
Payment method code
merchant_uid
* string
Order ID
Must be unique for each request.
buyer_tel
* string
Customer phone number
Danal payment window may throw an error if omitted
amount
* integer
Payment amount
Must be an integer (not string)
Virtual account payment requirement
biz_num
: 10-digit business registration number (required)
To open non-authenticated payment window, specify the customer_uid parameter.
amount
-
If requesting both billing key and initial payment, specify the payment amount.
-
If only requesting for billing key, set to 0.
(if amount is set to 0, Danal executes a test payment of 10 won which is automatically cancelled after 30 minutes.)
Javascript SDKIMP.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
* string
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
* string
Credit card billing key
Billing key to be mapped 1:1 with the user-entered credit card information.
amount
* Integer
Payment amount
0: only billing key, > 0: billing key + initial payment
period``
array
Product subscription payment for subscription payment. The date is displayed on the Danal payment window.
from
: YYYYMMDD
to
: YYYYMMDD
\
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 non-authenticated payment request REST API
with the customer_uid
as follows:
sever-sidecurl -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
3. Additional functions
javascript{ "display": { "card_quota": [6] // Display up to 6 months installment plans } }
Parameters
- card_quota :
[]
: Only immediate pay3,6
: immediate, 3, 6 month installment plans
Installment plan option is available only for KRW 50,000 or more.
javascript{ "card": { "direct": { "code": "367", "quota": 3, "usePoint": "Y" } } }
Parameters
- code: Credit card code (string)
- quota: Installment plan. For immediate, set to 0. (integer)
- usePoint: Option to use points (post applied)
Danal setup required
- Direct module call requires pre-setup by Danal.
javascript{ "card": { "detail": [ { "card_code": "*", "enabled": false }, // Disable all credit cards { "card_code": "366", "enabled": true } // Enable specific credit card ] } }
Parameters
-
card_code: Credit card code (string)
-
enabled: Option to enable the credit card (boolean)