NodeJS 서버에서 애플 인앱결제 유효성 검증을 하는 방법

  • 지난 시간에 구글 안드로이드 인앱결제 유효성 검증을 알아봤습니다.
  • 오늘은 애플 아이폰용 앱에서 인앱결제를 했을 경우에, 결제정보의 유효성 검증을 알아보겠습니다.
  • 2024년 5월 현재, 지금 소개하는 방법은 사용가능한 것입니다.
  • 사전에 처리해야 하는 과정은 생략할게요, 그 부분은 다른데서 검색하셔도 됩니다.
  • 저는 iap 패키지를 이용했습니다.
const iap = require('iap')

const platform = 'apple';
const payment = {
    receipt: "애플로부터 받은 pay receipt",
    productId: "애플에 등록해둔 상품ID",
    packageName: '앱 패키지 네임',
    excludeOldTransactions: true,
};
try {
    const resp = await new Promise((resolve, reject) => {
        iap.verifyPayment(platform, payment, (err, response) => {
            if (err) {
                reject(err)
            }
            resolve(response)
        })
    })
    if (resp.transactionId === "애플에서 보내온 결제ID") {
        return true
    }
} catch (e) {
    console.error(e)
}
  • secret을 넣으라고 되어 있는 글들이 있던데요, 제가 확인한 바로는 오히려 에러가 납니다.
  • iap 패키지의 함수가 async/await을 지원하지 않아서 직접 구현했습니다.
Share: Twitter Facebook
김민석's Picture

About 김민석

항상 공부가 부족한 개발자, 항상 시간이 부족한 딸바보, 항상 체력이 부족한 부족한남편, 그리고 고양이 집사

JungNangGu, Seoul, Korea Rep https://reddol18.pe.kr

Comments