iamport-react-example icon indicating copy to clipboard operation
iamport-react-example copied to clipboard

iamport types module

Open timo-kang opened this issue 4 years ago • 4 comments

안녕하세요, react에서 아임포트를 사용하고있는 사용자입니다.

저는 typescript + react를 사용중이라 types.ts를 직접 만들어 사용하고 있는데요, @types/iamport-client 모듈을 만든다면 다른 많은 분들이 사용하기 훨씬 편할 것 같아 제안해봅니다..

짧지만 제가 사용하고 있는 type을 예시로 보여드리겠습니다.


export interface ExtendedIamportWindow extends Window {
  IMP: IMP
}

export interface IMP {
  init: ( imp_uid: string ) => void;
  request_pay: ( params: IamportPaymentRequest, callback: ( res: IamportPaymentResponse ) => void ) => void;
}

export type IamportPaymentResponse = {
  success: true,
  imp_uid: string,
  merchant_uid: string,
  pay_method: string,
  status: string,
  name: string,
  card_name: string,
  card_quota: number,
  buyer_name: string,
  buyer_email: string,
  paid_amount: number,
  paid_at: string
  receipt_url: string,
} | {
  success: false,
  error_code: string
  error_msg: string,
}

export type IamportPaymentRequest = {
  pg: string,
  pay_method: "card" | "vbank",
  merchant_uid: string,
  name: string,
  amount: number,
  buyer_email: string,
  buyer_name: string,
  notice_url?: string,
}

timo-kang avatar Mar 09 '21 14:03 timo-kang

@SoleeChoi

timo-kang avatar Mar 11 '21 12:03 timo-kang

https://github.com/junhoyeo/iamport-typings 이 저장소도 도움이 되실까해서 첨부합니다.

crowrish avatar Oct 27 '21 02:10 crowrish

@crowrish 해당 모듈에 다양한 payment방식을 지원하면 좋을 것 같네요 감사합니다!

timo-kang avatar Oct 27 '21 08:10 timo-kang

(수정됨) 저는 2022.03.25 기준, https://docs.iamport.kr/sdk/javascript-sdk 를 참고하여,

https://github.com/SeiwonPark/iamport-react-ts/tree/main/src/interfaces

위와 같이 인터페이스를 만들어두었습니다.

seiwonpark avatar Mar 25 '22 08:03 seiwonpark