샌드박스에서 checkoutPayment 호출 시 alpha-pay에서 COMMON_PAY_NOT_FOUND 발생 (상태조회는 SUCCESS)

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

  1. 환경
    SDK: @apps-in-toss/web-framework 2.10.6 (WebView)
    실행: Android 실기기 + 앱인토스 샌드박스
    로컬 개발 서버 연결 후 스킴으로 미니앱 실행
    결제 테스트: isTestPayment: true
  2. 구현 흐름
    파트너 서버에서 make-payment로 payToken 발급
    POST https://apps-in-toss-api.toss.im/api-partner/v1/apps-in-toss/pay/make-payment
    Header: x-toss-user-key: {토스 로그인 userKey}
    Body 예시:
    {
    “amount”: 700,
    “amountTaxFree”: 0,
    “cashReceipt”: false,
    “orderNo”: “{가맹점주문번호}”,
    “productDesc”: “{상품명}”,
    “isTestPayment”: true
    }
    응답:
    {
    “resultType”: “SUCCESS”,
    “success”: { “payToken”: “{발급된_payToken}” }
    }
    미니앱에서 SDK 인증 호출
    await checkoutPayment({ params: { payToken } });
    // 문서 예시 형태 checkoutPayment({ payToken })도 동일 증상 확인
    이후 execute-payment 예정 (현재는 결제창 단계에서 실패)
  3. 문제 현상
    make-payment / payToken 수신까지는 정상
    checkoutPayment 후 토스페이로 넘어가지만 흰 화면 + 로딩 스피너에서 멈춤
    SDK가 여는 URL 형태:
    토스페이
    해당 WebView Network 실패 응답:
    {
    “resultType”: “FAIL”,
    “error”: {
    “errorCode”: “COMMON_PAY_NOT_FOUND”,
    “reason”: “요청한 값이 부족하거나 올바르지 않습니다. payToken”
    }
    }
  4. 확인한 내용
    정상
    같은 payToken으로 상태조회 성공:

POST …/pay/get-payment-status
{
“payToken”: “{동일_payToken}”,
“orderNo”: “{동일_주문번호}”,
“isTestPayment”: true
}
응답: SUCCESS, mode: TEST, payStatus: PAY_STANDBY
프론트에서 검증
SDK checkoutPayment 호출 (직접 payfront/auth URL open 아님)
{ params: { payToken } } / { payToken } 모두 동일 증상
chrome://inspect에서 앱 WebView와 alpha-pay WebView가 나뉘고, alpha-pay가 로딩/detached 상태로 남음
payfront 요청에 isTossApp=false 포함됨


  1. 문의
    상태조회(apps-in-toss-api)는 PAY_STANDBY인데, 샌드박스 SDK가 여는 alpha-pay에서 같은 payToken이 COMMON_PAY_NOT_FOUND인 이유가 무엇인가요?
    샌드박스 + isTestPayment: true에서 checkoutPayment가 정상 동작하려면 콘솔/청약/키 쪽 추가 설정이 있나요?
    make-payment Base URL은 apps-in-toss-api.toss.im이 맞나요, 문서의 pay-apps-in-toss-api.toss.im을 써야 하나요?
    payfront의 isTossApp=false가 정상인가요? NOT_FOUND 원인이 될 수 있나요?