PG 연동 설정
•
포트원 관리자페이지 로그인
•
왼쪽 네비게이션 결제 연동 메뉴 클릭
•
테스트 연동 설정
◦
테스트 연동 관리 탭 클릭
결제대행사 설정에서 토스페이먼츠 / 토스페이먼츠 선택 후 오른쪽 + 추가 버튼 클릭
테스트 연동 정보 확인 후 오른쪽 하단 저장 버튼 클릭
◦
등록 완료 후, 결제 요청시 pg 파라미터에 tosspayments.iamporttest_3를 입력
•
실 연동 설정
◦
실 연동 관리 탭 클릭
결제대행사 설정에서 토스페이먼츠 / 토스페이먼츠 선택 후 오른쪽 + 추가 버튼 클릭
토스페이먼츠로부터 전달 받은 실 연동 정보 입력 후 오른쪽 하단 저장 버튼 클릭
◦
등록 완료 후, 결제 요청시 pg 파라미터에 tosspayments.실연동상점아이디를 입력
토스페이먼츠 API 버전 설정
•
토스페이먼츠 개발자센터 로그인
•
왼쪽 네비게이션 메뉴 API 키 선택 → API 버전을 2022-07-27로 선택
결제 금액 사전 등록
포트원은 결제 금액 위/변조를 막기 위해, 특정 주문 번호에 대해 결제 될 금액을 사전 등록할 수 있는 REST API를 제공하고 있으며 스펙은 아래와 같습니다. (자세한 내용은 관련 문서 참고)
•
요청 URL: https://api.iamport.kr/payments/prepare
•
요청 메소드: POST
•
요청 본문
{
merchant_uid: 'order_id_1667634130160',
amount: '109000'
}
JavaScript
위와 같이 등록이 완료되면, 주문번호 order_id_1667634130160에 대해 109000 금액과 일치하지 않은 금액으로의 결제 요청은 차단(인증결제의 경우 결제창 호출이 되지 않음)됩니다.
JS SDK
•
https://cdn.iamport.kr/js/iamport.payment-1.1.X.js
•
https://cdn.iamport.kr/js/iamport.payment-1.2.X.js
토스페이먼츠 - 신모듈 결제를 위해서는 아래 새로운 SDK를 사용해주셔야 합니다.
https://cdn.iamport.kr/v1/iamport.js 
단, 새로운 SDK를 사용하시는 가맹점은
더이상 jQuery를 사용하지 않으셔도 됩니다. 
결제창 호출
일반적인 결제 연동은 포트원 인증결제 연동하기 문서에 작성 된 플로우와 동일하나 토스페이먼츠 - 신모듈을 기준으로 작성한 예시 코드는 아래와 같습니다.
<script src="https://cdn.iamport.kr/v1/iamport.js"></script>
HTML
const userCode = '가맹점 식별코드';
IMP.init(userCode);
IMP.request_pay({
pg: 'tosspayments', // 반드시 "tosspayments"임을 명시해야 함
merchant_uid: 'order_id_1667634130160',
name: '나이키 와플 트레이너 2 SD',
pay_method: 'card',
escrow: false,
amount: '109000',
tax_free: 3000,
buyer_name: '홍길동',
buyer_email: 'buyer@example.com',
buyer_tel: '02-1670-5176',
buyer_addr: '성수이로 20길 16',
buyer_postcode: '04783',
m_redirect_url: 'https://helloworld.com/payments/result', // 모바일 환경에서 필수 입력
notice_url: 'https://helloworld.com/api/v1/payments/notice',
confirm_url: 'https://helloworld.com/api/v1/payments/confirm',
currency: 'KRW',
locale: 'ko',
custom_data: { userId: 30930 },
display: { card_quota: [0, 6] },
appCard: false,
useCardPoint: true,
bypass: {
tosspayments: {
useInternationalCardOnly: false
}
}
...중략
}, response => {
// PC 환경에서 결제 프로세스 완료 후 실행 될 로직
...중략
})
JavaScript
Table
Search
Table
Search
기존에 deprecated된 응답들은 모두 제거됐습니다. 
기존에는 위 imp_uid, merchant_uid, error_code, error_msg외에 imp_sucess 또는 success라는 boolean형 파라미터가 내려왔고 이는 트랜잭션 정상 종료 여부를 의미했습니다. 하지만 해당 파라미터의 의미가 다소 모호하고 PG사, 결제 환경(PC 또는 모바일) 그리고 결제 수단 별로 내려오는 파라미터의 종류가 상이한 레거시가 존재해 deprecated 됐으며 토스페이먼츠 - 신모듈을 대응하는 새로운 SDK(v1/iamport.js)부터는 아예 과감히 해당 파라미터들을 제거하였습니다.
따라서 새로운 SDK를 사용하실때는 IMP.request_pay로부터 응답된 객체(또는 쿼리 파라미터)에서 imp_uid를 가지고 포트원 REST API(GET /payments/imp_uid)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회하셔야 합니다.
자세한 내용은 일반결제 연동하기 > STEP5. 결제 정보 검증 및 저장하기를 참고해주세요.
승인 취소(환불)
포트원 결제 승인 완료 건에 대해 승인 취소(환불)를 할 수 있는 REST API를 제공하고 있으며 스펙은 아래와 같습니다. (자세한 내용은 관련 문서 참고)
•
요청 URL: https://api.iamport.kr/payments/cancel/{imp_uid}
•
요청 메소드: POST
•
요청 본문
{
reason: '단순 변심'
// 가상계좌 환불시 입금 계좌 정보
// 가상계좌 환불시 필수 입력
refund_holder: '홍길동',
refund_bank: '023'
refund_account: '44620123456'
}
JavaScript
현금영수증 등록
포트원은 현금성 결제(가상계좌 / 계좌이체)건에 대해, 결제창에서 현금영수증 등록을 하지 못한 경우를 대비해 현금영수증을 등록할 수 있는 REST API를 제공하고 있으며 스펙은 아래와 같습니다. (자세한 내용은 관련 문서 참고)
•
요청 URL: https://api.iamport.kr/receipts/{imp_uid}
•
요청 메소드: POST
•
요청 본문
{
identifier: '1178178260',
identifier_type: 'business',
type: 'company'
}
JavaScript
external 현금영수증 등록
포트원은 포트원을 통해 거래되지 않은 현금성 결제 건에 대해서도 현금영수증을 발급 할 수 있는 REST API를 제공하고 있으며 스펙은 아래와 같습니다. (자세한 내용은 관련 문서 참고)
•
요청 URL: https://api.iamport.kr/receipts/external/{merchant_uid}
•
요청 메소드: POST
•
요청 본문
{
merchant_uid: 'order_id_1667643230720',
name: '나이키 와플 트레이너 2 SD',
amount: 109000,
identifier: '1178178260',
identifier_type: 'business',
type: 'company',
tax_free: '3000',
pg: 'tosspayments'
}
JavaScript