• Stars
    star
    134
  • Rank 269,619 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Python 사용자를 위한 아임포트 REST API 연동 모듈입니다

I'mport; REST Client Python

Python Versions PyPI Release (latest by date) GitHub Workflow Status (Build) GitHub LICENSE Lines of Code

소개

Python 개발자를 위한 아임포트 REST API 연동 패키지입니다.

주의 사항

  • 이용 중 발생한 문제에 대해 책임지지 않습니다.
  • lexifdev님의 도움을 받아 작성되었습니다`lexifdev's iamport 모듈
  • 최초 작성은 [핑크퐁 북스토어](https://store.pinkfong.com)에서 쓰기 위해 만들었습니다.

주요 기능

  1. 결제 정보 찾기
  2. 가격 확인
  3. 취소
  4. 비 인증 결제
  5. 정기 예약 결제
  6. 본인인증결과 조회 및 삭제

설치

# mac, linux
pip install iamport-rest-client

# 아나콘다
conda create --name iamport python=3.6
conda activate iamport
python -m pip install iamport-rest-client --upgrade

# 개발버전
pip install git+https://github.com/iamport/iamport-rest-client-python.git@master --upgrade  # master
pip install git+https://github.com/iamport/[email protected] --upgrade  # 특정 버전

개발 환경

# venv 등 환경 준비 및 활성화
pip install -e .[dev]
pytest  # 테스트 실행

기여하기

iamport-rest-client-python 프로젝트 보드To do 탭을 참고해주세요.

사용법

설정

from iamport import Iamport

# 아임포트 객체를 테스트용 키와 시크릿을 사용하여 생성합니다 (테스트시 지출된 금액은 매일 자정 이전 환불됩니다).
iamport = Iamport(
    imp_key='imp_apikey',
    imp_secret=(
        'ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6b'
        'kA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f'
    )
)

# 아임포트 객체를 각자 발급받으신 실제 키와 시크릿을 사용하여 생성합니다.
iamport = Iamport(imp_key='{발급받은 키}', imp_secret='{발급받은 시크릿}')

예제

결제를 진행한 상품 아이디나, 전달받은 IMP 아이디를 이용해 결제 정보를 찾습니다.

# 상품 아이디로 조회
response = iamport.find(merchant_uid='{상품 아이디}')

# I'mport; 아이디로 조회
response = iamport.find(imp_uid='{IMP UID}')

실제 제품 가격과 결제된 가격이 같은지 확인합니다.

# 상품 아이디로 확인
iamport.is_paid(product_price, merchant_uid='{상품 아이디}')

# I'mport; 아이디로 확인
iamport.is_paid(product_price, imp_uid='{IMP UID}')

# 이미 찾은 response 재활용하여 확인
iamport.is_paid(product_price, response=response)

결제를 취소합니다.

# 상품 아이디로 취소
response = iamport.cancel('취소하는 이유', merchant_uid='{상품 아이디}')

# I'mport; 아이디로 취소
response = iamport.cancel('취소하는 이유', imp_uid='{IMP UID}')

# 취소시 오류 예외처리(이미 취소된 결제는 에러가 발생함)
try:
    response = iamport.cancel('취소하는 이유', imp_uid='{IMP UID}')
except Iamport.ResponseError as e:
    print(e.code)
    print(e.message)  # 에러난 이유를 알 수 있음
except Iamport.HttpError as http_error:
    print(http_error.code)
    print(http_error.reason) # HTTP not 200 에러난 이유를 알 수 있음

1회성 비인증 결제를 진행합니다.

# 테스트용 값
payload = {
    'merchant_uid': '00000000',
    'amount': 5000,
    'card_number': '4092-0230-1234-1234',
    'expiry': '2019-03',
    'birth': '500203',
    'pwd_2digit': '19'
}
try:
    response = iamport.pay_onetime(**payload)
except KeyError:
    # 필수 값이 없을때 에러 처리
    pass
except Iamport.ResponseError as e:
    # 응답 에러 처리
    pass
except Iamport.HttpError as http_error:
    # HTTP not 200 응답 에러 처리
    pass

저장된 빌링키로 재결제합니다.

# 테스트용 값
payload = {
    'customer_uid': '{고객 아이디}',
    'merchant_uid': '00000000',
    'amount': 5000,
    'name' : '제품명',
}
try:
    response = iamport.pay_again(**payload)
except KeyError:
    # 필수 값이 없을때 에러 처리
    pass
except Iamport.ResponseError as e:
    # 응답 에러 처리
    pass
except Iamport.HttpError as http_error:
    # HTTP not 200 응답 에러 처리
    pass

정기 결제를 예약합니다.

# 테스트용 값
payload = {
    'customer_uid': '{고객 아이디}',
    'schedules': [
        {
            'merchant_uid': 'test_merchant_01',
            'schedule_at': 1478150985,  # UNIX timestamp
            'amount': 1004
        },
        {
            'merhcant_uid': 'test_merchant_02',
            'schedule_at': 1478150985,  # UNIX timestamp
            'amount': 5000,
            'name': '{주문명}',
            'buyer_name': '{주문자명}',
            'buyer_email': '{주문자 이메일}',
            'buyer_tel': '{주문자 전화번호}',
            'buyer_addr': '{주문자 주소}',
            'buyer_postcode': '{주문자 우편번호}',
        },
    ]
}
try:
    response = iamport.pay_schedule(**payload)
except KeyError:
    # 필수 값이 없을때 에러 처리
    pass
except Iamport.ResponseError as e:
    # 응답 에러 처리
    pass
except Iamport.HttpError as http_error:
    # HTTP not 200 응답 에러 처리
    pass

정기 결제 예약을 취소합니다.

# 테스트용 값 (merchant_uid 가 누락되면 customer_uid 에 대한 결제예약정보 일괄취소)
payload = {
    'customer_uid': '{고객 아이디}',
    'merchant_uid': 'test_merchant_01',
}
try:
    response = iamport.pay_unschedule(**payload)
except KeyError:
    # 필수 값이 없을때 에러 처리
    pass
except Iamport.ResponseError as e:
    # 응답 에러 처리
    pass
except Iamport.HttpError as http_error:
    # HTTP not 200 응답 에러 처리
    pass

결제될 내역에 대한 사전정보를 등록합니다

# 테스트용 값
amount = 12000
mid = 'merchant_test'
try:
    response = iamport.prepare(amount=amount, merchant_uid=mid)
except Iamport.ResponseError as e:
    # 응답 에러 처리
    pass
except Iamport.HttpError as http_error:
    # HTTP not 200 응답 에러 처리
    pass

등록된 사전정보를 확인합니다.

# 테스트용 값
amount = 12000
mid = 'merchant_test'
try:
    result = iamport.prepare_validate(merchant_uid=mid, amount=amount)
except Iamport.ResponseError as e:
    # 응답 에러 처리
    pass
except Iamport.HttpError as http_error:
    # HTTP not 200 응답 에러 처리
    pass

본인인증결과를 조회합니다.

try:
    response = iamport.find_certification(imp_uid='{IMP UID}')
except Iamport.ResponseError as e:
    # 응답 에러 처리
    pass
except Iamport.HttpError as http_error:
    # HTTP not 200 응답 에러 처리
    pass

본인인증결과를 아임포트에서 삭제합니다.

try:
    response = iamport.cancel_certification(imp_uid='{IMP UID}')
except Iamport.ResponseError as e:
    # 응답 에러 처리
    pass
except Iamport.HttpError as http_error:
    # HTTP not 200 응답 에러 처리
    pass      

More Repositories

1

iamport-manual

아임포트(iamport) 결제연동을 위한 매뉴얼입니다.
365
star
2

iamport-react-native

React Native용 아임포트 일반.결제 및 휴대폰 본인인증 모듈입니다.
TypeScript
162
star
3

iamport-react-example

리액트 환경에서 아임포트 결제 및 휴대폰 본인인증 연동을 위한 예제입니다.
JavaScript
105
star
4

iamport-rest-client-java

JAVA사용자를 위한 아임포트 REST API 연동 모듈입니다
Java
71
star
5

iamport_flutter

Flutter App에서 아임포트 결제서비스 연동을 위한 모듈입니다.
Dart
68
star
6

iamport-rest-client

아임포트(http://www.iamport.kr) 서비스의 REST API부분을 위한 언어별 Client SDK
66
star
7

iamport-rest-client-nodejs

NodeJS사용자를 위한 아임포트 REST API 연동 모듈입니다.
JavaScript
66
star
8

iamport-rest-client-ruby

Ruby사용자를 위한 아임포트 REST API 연동 모듈입니다.
Ruby
23
star
9

iamport-android

Kotlin
21
star
10

iamport-ios

Swift
21
star
11

iamport-rest-client-php

PHP사용자를 위한 아임포트 REST API 연동 모듈입니다
PHP
18
star
12

rest-client-nodejs

TypeScript
13
star
13

iamport-capacitor

Capacitor 플랫폼 지원 플러그인입니다.
TypeScript
11
star
14

iamport-vue-example

Vue.js 에서 아임포트를 연동하기 위한 예제입니다.
Vue
8
star
15

iamport-inicis-android

아임포트 이니시스 앱(WebView)결제 연동을 위한 안드로이드 프로젝트입니다.
Java
7
star
16

iamport-nice-android

아임포트를 활용해 나이스정보통신 결제연동을 위한 안드로이드 샘플 프로젝트입니다.
Java
6
star
17

kcp-android-gradle

KCP안드로이드 결제연동 샘플입니다.
Java
6
star
18

iamport-ionic

Ionic 환경에서 아임포트 결제모듈을 쉽게 연동하기 위한 Ionic 플러그인입니다.
JavaScript
6
star
19

iamport-nice-ios

iOS에서 나이스정보통신 WebView 결제할 때 사용되는 소스코드입니다.
Objective-C
6
star
20

iamport-ionic-inicis

Cordova 또는 Ionic 환경에서 아임포트 결제모듈을 쉽게 연동하기 위한 Cordova 플러그인입니다(KG이니시스 연동용). http://www.iamport.kr
JavaScript
6
star
21

iamport-inicis-ios

아임포트 이니시스 앱(WebView)결제 연동을 위한 iOS 프로젝트입니다.
Objective-C
5
star
22

iamport-rest-client-java-hc

Apache HttpClient기반의 java용 아임포트 REST API클라이언트입니다.
Java
4
star
23

iamport-vue-native

VueNative 환경에서 아임포트 모듈 연동을 위한 가이드 프로젝트입니다.
JavaScript
3
star
24

kotlin-spring-tutorial

Kotlin
3
star
25

iamport-cordova

여러 PG를 통합해서 처리하는 최신 cordova 플러그인
Objective-C
3
star
26

iamport-kakao-android

아임포트 카카오페이 앱(WebView)결제 연동을 위한 안드로이드 프로젝트입니다.
Java
2
star
27

service-status

📈 Uptime monitor and status page for 아임포트, powered by @upptime
JSON
2
star
28

.github

2
star
29

wordpress-iamport-for-woocommerce

워드프레스 아임포트 우커머스용 플러그인
PHP
2
star
30

iamport-inicis-gradle

KG이니시스 결제연동을 위한 아임포트 안드로이드 샘플프로젝트입니다( Gradle )
Java
2
star
31

openapi-to-gitbook

TypeScript
2
star
32

cordova-plugin-iamport-kcp

iamport 를 이용해 KCP결제를 하기 위한 cordova plugin 입니다.
Objective-C
1
star
33

iamport-danaltpay-gradle

다날 안드로이드 신용카드 결제 샘플입니다. (Gradle)
Java
1
star
34

iamport-danaltpay-android

다날 Tpay(신용카드,계좌이체)를 위한 WebView결제 샘플입니다.
Java
1
star
35

gitbook-to-mdx

TypeScript
1
star
36

wordpress-iamport-for-easy-digital-downloads

워드프레스 아임포트 EDD용 결제플러그인
PHP
1
star
37

iamport-ionic-kcp

ionic2, ionic3용 iamport plugin 입니다.
JavaScript
1
star
38

wordpress-checkout

워드프레스 내에서 숏코드를 활용해 결제버튼을 생성하는 플러그인입니다.
PHP
1
star
39

iamport-angular-example

TypeScript
1
star
40

iamport-for-woocommerce

우커머스 Payment Gateway 로 아임포트를 사용할 수 있는 플러그인입니다.
PHP
1
star
41

iamport-nice-android-gradle

iamport-nice-android 프로젝트의 gradle변환 버전입니다.
Java
1
star