API - 아임포트

dragonappear·2021년 12월 19일
0

API

목록 보기
2/2

아임포트 서버에서 인증토큰 받아오기

public static final String IMPORT_TOKEN_URL = "https://api.iamport.kr/users/getToken";
    public static final String IMPORT_CANCEL_URL = "https://api.iamport.kr/payments/cancel";
    public static final String KEY = "";
    public static final String SECRET = "";

    // 아임포트에서 인증(토큰)을 받아오는 메서드
    public static String getImportToken()  {
        String result = "";
        HttpClient client = HttpClientBuilder.create().build();
        HttpPost post = new HttpPost(IMPORT_TOKEN_URL);
        Map<String,String> m =new HashMap<String,String>();
        m.put("imp_key", KEY);
        m.put("imp_secret", SECRET);
        try {
            post.setEntity(new UrlEncodedFormEntity(convertParameter(m)));
            HttpResponse res = client.execute(post);
            ObjectMapper mapper = new ObjectMapper();
            String body = EntityUtils.toString(res.getEntity());
            JsonNode rootNode = mapper.readTree(body);
            JsonNode resNode = rootNode.get("response");
            result = resNode.get("access_token").asText();
        } catch (Exception e){
            throw new IamportException("아임포트 토큰을 받아올 수 없습니다.");
        } return result;
    }

convertParameter 메서드

//  Http요청 파라미터를 만들어 주는 메서드
    public static List<NameValuePair> convertParameter(Map<String,String> paramMap){
        List<NameValuePair> paramList = new ArrayList<NameValuePair>();
        Set<Map.Entry<String,String>> entries = paramMap.entrySet();
        for(Map.Entry<String,String> entry : entries) {
            paramList.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
        } return paramList;
    }

아임포트로 취소 요청하기

// 아임포트로 취소요청 메서드
    public static void cancelPayment(CancelDto dto)  {
        HttpClient client = HttpClientBuilder.create().build();
        HttpPost post = new HttpPost(IMPORT_CANCEL_URL);
        Map<String, String> map = new HashMap<String, String>();
        post.setHeader("Authorization", dto.getToken());
        map.put("imp_uid", dto.getImpId());
        map.put("merchant_uid", dto.getMerchantId());
        map.put("amount", dto.getAmount());
        map.put("checksum", dto.getChecksum());
        String asd = "";
        try { post.setEntity(new UrlEncodedFormEntity(convertParameter(map)));
            HttpResponse res = client.execute(post);
            ObjectMapper mapper = new ObjectMapper();
            String enty = EntityUtils.toString(res.getEntity());
            JsonNode rootNode = mapper.readTree(enty);
            asd = rootNode.get("response").asText();
        } catch (Exception e) {
            throw new IamportException(e.getMessage());
        }
        if (asd.equals("null")) {
            throw new IamportException("환불실패");
        }
    }

0개의 댓글