Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.iamport:iamport-rest-client-java:0.2.23'
}
<dependency>
<groupId>com.github.iamport</groupId>
<artifactId>iamport-rest-client-java</artifactId>
<version>0.2.23</version>
</dependency>
libraryDependencies += "com.github.iamport" % "iamport-rest-client-java" % "0.2.23"
:dependencies [[com.github.iamport/iamport-rest-client-java "0.2.23"]]
JAVA 사용자를 위한 아임포트 REST API 연동 모듈입니다.
JAVA 1.7이상의 버전을 요구합니다.
(dependency관계에 있는 com.squareup.retrofit2 이 JAVA 1.7이상의 버전을 요구합니다)
JitPack 을 통해 maven설정을 하실 수 있습니다.
pom.xml에 아래의 내용을 추가해주세요.
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.iamport</groupId>
<artifactId>iamport-rest-client-java</artifactId>
<version>0.2.23</version>
</dependency>
</dependencies>
IamportClient client = new IamportClient("{가입한 아임포트 계정의 API key}", "{가입한 아임포트 계정의 API secret}");
IamportClient client = new IamportClient("{가입한 아임포트 계정의 API key}", "{가입한 아임포트 계정의 API secret}", "{하위가맹점 Tier Code}");
또는,
IamportClient client = new IamportClient("{가입한 아임포트 계정의 API key}", "{가입한 아임포트 계정의 API secret}");
client.setTierCode("{하위가맹점 Tier Code}");
사내 보안정책에 의해, 아임포트 REST API 서버 접속을 위해 outbound IP 사전 등록이 필요한 환경에서는 아래 2개의 IP에 대해 방화벽 등록 후 API Client 생성시 useStaticIP(기본값 false) 인자를 true로 지정합니다.
(해당 기능은 0.2.12버전부터 제공됩니다.)
IamportClient client = new IamportClient("{가입한 아임포트 계정의 API key}", "{가입한 아임포트 계정의 API secret}", true);
API 응답 오류 상황에 대해 명시적으로 Exception 을 발생시킴으로써 에러 핸들링이 가능하도록 수정하였습니다.
예를 들어, 기존에는 500응답이 내려오는 경우 오류 message를 확인할 수 없는 단점이 있었는데 IamportResponseException
을 throw 함으로써 정확한 오류 원인을 파악하실 수 있습니다.
또한, 서버와의 네트워크 장애 상황에서는 IOException
을 throw 하여 구분이 가능합니다.
try {
IamportResponse<Payment> paymentResponse = client.paymentByImpUid("imp_123412341234");
//TODO : 처리 로직
} catch (IamportResponseException e) {
System.out.println(e.getMessage());
switch(e.getHttpStatusCode()) {
case 401 :
//TODO : 401 Unauthorized
break;
case 404 :
//TODO : imp_123412341234 에 해당되는 거래내역이 존재하지 않음
break;
case 500 :
//TODO : 서버 응답 오류
break;
}
} catch (IOException e) {
//서버 연결 실패
e.printStackTrace();
}
src/test/java 의 IamportRestTest.java를 참조해주세요