이제 프로젝트를 생성하고 본격적으로 시작을 했다

 

오늘은 팀장님이 적당한 틀을 짜는동안

 

결재 시스템을 테스트 했다

 

참고 사이트

https://developers.portone.io/docs/ko/readme?v=v1

 

포트원 결제 연동 Docs

포트원 결제 연동 가이드입니다. 빠른 시간 안에 결제를 연동할 수 있게 도와드립니다.

developers.portone.io

대충 결재 흐름

 

한국에서는 카드사, 일부 PG사(적격PG로 선정된 곳)를 제외하고는 카드정보를 저장할 수 없도록 규정되어있기 때문에 카드정보가 가맹점서버, PG사 서버를 직접 거쳐가지 않도록 다음과 같이 구성할 수 있습니다.

 

포트원 결재 흐름

결재 연동 준비하기

1. 포트원 회원가입 하기

 

이메일 인증하고

담당자는 테스트용이니 적당히 본인 으로 하자

 

2. 전자결제 신청하기 (개발용)

 

실제 결재는 하지 않고 테스트용이기 때문에 개발 연동 테스트를 선택했다

 

3. 결제대행사 채널 설정하기

 

 

결재 연동 → 채널관리 → 테스트 → 결제 대행사 (나이스페이먼츠) → 다음

 

적당히 post one에서 제공하는 PG 상점 아이디를 고르면 알아서 된다 이름은 아무거나

 

 

4. 포트원 연동정보 확인하기

 

하기 전에 키값을 확인하자 3개다 쓴다고 하니 옆에 띄워두고 진행

v2로 진행 예정이기 때문에 신규 발급을 받자

한번 발급 받은 키는 보안상 다시 확인이 어려우니 저장해두자

키까지 준비가 됐다면 이제 연동을 해보자

인증결재로 진행 예정이다

인증결제 연동하기

  1. 포트원 라이브러리 추가

혹시 모르니 설치파일로 돌아가는 명령어도 추기

npm i @portone/browser-sdk

yarn add @portone/browser-sdk

스크립트 링크 두개 추가

build.gradle에 추가

dependencies {	
	implementation 'com.github.iamport:iamport-rest-client-java:0.2.23'
} 

repositories {	
	mavenCentral()	
	maven { url '<https://jitpack.io>' }
}

검색을 해보면 먼저 테스트 해본 사람들이 많다

참고로 iamport 문서들을 보면 다maven 기반으로 의존성을 추가하도록 되어있다.근데 이 기능하나 추가하자고 프로젝트를 maven으로 바꿀수 없기 때문에 알아본 결과reposioties에 jitpack.io를 추가하면 gradle에서도 iamport 라이브러리를 추가할 수 있었다.

application.properties.에 추가하라는데 난 yml 이다

#iamport
imp.code = 
imp.api.key = 
imp.api.secretkey = 

properties 를 yml 형식으로 바꾸자

imp:
  api:
    secretkey: ''
    key: ''
  code: ''

IamportClient 초기화

@Controller
@Slf4j
@RequiredArgsConstructor
public class PaymentController {    
	private IamportClient iamportClient;    
	
	@Value("${imp.api.key}")    
	private String apiKey;     
	
	@Value("${imp.api.secretkey}")    
	private String secretKey;     
	
	@PostConstruct    
	public void init() {        
		this.iamportClient = new IamportClient(apiKey, secretKey);    
	}
}

위의

port one에서 통합 결재 api를 지원하는것 같아 익혀보려고 합니다

참고 사이트

https://developers.portone.io/docs/ko/readme?v=v1

대충 결재 흐름

한국에서는 카드사, 일부 PG사(적격PG로 선정된 곳)를 제외하고는 카드정보를 저장할 수 없도록 규정되어있기 때문에 카드정보가 가맹점서버, PG사 서버를 직접 거쳐가지 않도록 다음과 같이 구성할 수 있습니다.

포트원 결재 흐름

 

인증결제 연동하기

  1. 포트원 라이브러리 추가

스크립트 테스트는 성공을 했고

<!DOCTYPE html>
<html lang="en">
<head>
    <!-- PortOne SDK -->
    <script src="https://cdn.iamport.kr/v1/iamport.js"></script>
    <script>
        var IMP = window.IMP;
        IMP.init("impXXXXXXXXX");

        function requestPay() {
            IMP.request_pay(
                {
                    pg: "kcp.{상점ID}",
                    pay_method: "card",
                    merchant_uid: "57008833-33004",
                    name: "당근 10kg",
                    amount: 1004,
                    buyer_email: "Iamport@chai.finance",
                    buyer_name: "포트원 기술지원팀",
                    buyer_tel: "010-1234-5678",
                    buyer_addr: "서울특별시 강남구 삼성동",
                    buyer_postcode: "123-456",
                },
                function (rsp) {
                    // callback
                    //rsp.imp_uid 값으로 결제 단건조회 API를 호출하여 결제결과를 판단합니다.
                }
            );
        }
    </script>
    <meta charset="UTF-8" />
    <title>Sample Payment</title>
</head>
<body>
<button onclick="requestPay()">결제하기</button>
<!-- 결제하기 버튼 생성 -->
</body>
</html>

 

db에 저장하고 결재까지 성공한 스프링 파일은 좀 다듬어서 올릴 예정

'공부 > Ganju' 카테고리의 다른 글

[Spring/AWS] 팀프로젝트 6일차  (0) 2024.04.03
[Spring/AWS] 팀프로젝트 5일차  (0) 2024.04.02
[Spring/AWS] 팀프로젝트 3일차  (0) 2024.03.29
[Spring/AWS] 팀프로젝트 2일차  (0) 2024.03.28
[Spring/AWS] 팀프로젝트 1일차  (1) 2024.03.27

+ Recent posts