이 글의 성격은 무엇인가요?
질문 / 문제 해결
내용을 설명해주세요
- 환경
SDK: @apps-in-toss/web-framework 2.10.6 (WebView)
실행: Android 실기기 + 앱인토스 샌드박스
로컬 개발 서버 연결 후 스킴으로 미니앱 실행
결제 테스트: isTestPayment: true - 구현 흐름
파트너 서버에서 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 예정 (현재는 결제창 단계에서 실패) - 문제 현상
make-payment / payToken 수신까지는 정상
checkoutPayment 후 토스페이로 넘어가지만 흰 화면 + 로딩 스피너에서 멈춤
SDK가 여는 URL 형태:
토스페이
해당 WebView Network 실패 응답:
{
“resultType”: “FAIL”,
“error”: {
“errorCode”: “COMMON_PAY_NOT_FOUND”,
“reason”: “요청한 값이 부족하거나 올바르지 않습니다. payToken”
}
} - 확인한 내용
정상
같은 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 포함됨
- 문의
상태조회(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 원인이 될 수 있나요?