Backend/NodeJS

[IOS] How to in app purchase verify receipt with Node.js (javascript). error status: 21002

하우아유두잉 2020. 4. 21. 14:58

IOS 인앱 결제 구독 영수증 검증 모듈을 작업했다.

 

테스트용 sandbox에 http 요청을 보냈는데, 아래와 같은 에러 상태가 리턴 됐다.

status: 21002

receipt 값과 password  값엔 이상이 분명 없는데 뭔가 이상했다.

 

아래와 똑같이 코드를 작성하면 해결된다.

const verifySubsIOS = async (transactionReceipt) => {

  const verifyURL = `https://sandbox.itunes.apple.com/verifyReceipt`;
  // use 'https://buy.itunes.apple.com/verifyReceipt' for production

  const options = {
      uri: verifyURL,
      method: `POST`,
      headers: {
          "User-Agent": "Request-Promise",
          "Content-Type": "application/x-www-form-urlencoded",
      },
      json: true,
      form: ``,
  };

  options.form = JSON.stringify({
      "receipt-data": transactionReceipt,
      "password": envStorage.getIosValidPw()
  });

  return await rp(options)
    .then((response: any) => {
      return response;
    })
    .catch((error: any) => {
      return error;
  });
};

참조