Skip to content

kimyongyeon/iamport-rest-client-net

 
 

Repository files navigation

iamport-rest-client-net

아임포트는 한국 Payment Gateway(PG)사의 복잡한 구현을 간소화주는 서비스로 PG사의 UI나 플러그인을 거치지 않고 처리할 수 있는 몇 가지 기능을 REST API로 제공합니다.

이 프로젝트는 아임포트(I'mport) REST API 클라이언트의 닷넷 구현입니다. 프로젝트 이름을 표기할 때에는 아임포트RESTAPI닷넷이라고 합니다.

아임포트RESTAPI닷넷은 모던한 닷넷 플랫폼을 지향하며 닷넷 4.5 이상을 대상으로 합니다. 네트워크를 통한 모든 호출은 async 비동기로 이루어집니다.

Quick start

Installation

(패키지 매니저 콘솔에서)

Install-Package Iamport.RestApi

(또는 project.json에 추가 - .NET Core xproj 프로젝트)

{
    "dependencies": {
        "Iamport.RestApi": "1.0.0"
    }
}

Usage

using Iamport.RestApi;
using Iamport.RestApi.Apis;
using Iamport.RestApi.Models;
//...

var options = new IamportHttpClientOptions
{
    ApiKey = "{your API key}",
    ApiSecret = "{your API secret}",
    IamportId = "{your Iamport Id}"
};
var httpClient = new IamportHttpClient(options);
var paymentsApi = new PaymentsApi(httpClient);

// 지정한 거래 ID와 금액을 아임포트에 등록합니다.
// 등록된 거래 ID는 반드시 동일한 금액만 결제되도록 보장합니다.
await paymentsApi.PrepareAsync(new PaymentPreparation
{
    Amount = 1000,
    TransactionId = "1234567890"
});

// 이후 HTML페이지에서 결제 진행...

// 완료된 결제 내용 조회(by 거래 ID)
var result = await paymentsApi.GetByTransactionIdAsync("1234567890");
// 또는 아임포트 고유 ID로 조회
var result2 = await paymentsApi.GetByIamportIdAsync("IMP12345");

Status

Build Build status
Pre-release MyGet
Release NuGet

Pre-release

Pre-release 버전은 MyGet으로 배포합니다.

Roadmap

아임포트RESTAPI닷넷은 다음과 같이 진행됩니다. 각 마일스톤의 일정은 아직 미정입니다. 아임포트RESTAPI닷넷의 버전 규칙은 Semantic Versioning을 따릅니다.

  • 1.0
  • 마이너 버그 수정
  • 최초 릴리스!
  • 1.1
  • Subscription API 추가

Contribution

이 프로젝트는 누구나 참여할 수 있는 오픈소스 프로젝트입니다. 참여와 기여는 다음과 같이 할 수 있습니다.

각 결제 서비스별 테스트

결제서비스는 실제로 동작을 해보기 전까지는 제대로 동작하는지 확인하기 어렵습니다. 현재 동작이 확인된 서비스는 다음과 같습니다. 다른 결제사에서의 테스트 결과가 있으면 알려주시기 바랍니다.

  • 이니시스(구버전)
  • 이니시스(웹표준버전)

이슈 제기

이 프로젝트에 관한 문제점, 문의, 개선 사항 건의 등은 Issues에 등록해주세요. 단, 이슈를 등록할 때에는 충분히 검색하여 같은 이슈가 없었는지 확인을 바랍니다.

Development Environment Requirement

현재 아임포트RESTAPI닷넷은 다음과 같은 환경에서 개발됩니다.

.NET Core 프로젝트이므로 MAC OSX와 Linux에서도 개발 및 테스트가 가능합니다.

Pull Request(PR)

PR은 온전한 단위 테스트 및 기능 테스트셋을 포함해야 하며 해결하려는 목적이 명확해야 합니다

License

이 프로젝트는 아파치 라이선스 2.0을 따르며 이에 따라 모든 코드는 자유롭게 수정, 배포, 이용이 가능합니다.

아임포트(I'mport) 및 관련 상표는 아임포트에 권리가 있으며 이 프로젝트는 소스코드의 이용으로 인해 발생할 수 있는 문제에 대해 일체의 책임을 지지 않습니다.

About

아임포트 REST API 클라이언트의 닷넷 구현입니다.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 98.9%
  • PowerShell 1.1%