이 글의 성격은 무엇인가요?
질문 / 문제 해결
내용을 설명해주세요
[자동결제] wrappedToken 유실 시 빌링키 해지 방법이 있을까요?
■ 상황
앱인토스 자동결제(create-billing-key / remove-billing-key)를 연동하고 있습니다.
토스 로그인 연결 해제(unlink)를 처리하면서 가맹점에 등록된 자동결제도 함께
정리하도록 remove-billing-key 를 호출하는 로직을 두고 있는데,
어떤 사용자에 대해 서버가 보관하던 wrappedToken 이 없는 상태에서
토스 측에는 빌링키가 활성으로 남아 있는 케이스를 확인했습니다.
■ 증상
create-billing-key 를 호출하면 HTTP 200 이지만 resultType 이 FAIL 이고,
success 가 null 로 내려와 새 wrappedToken 을 받을 수 없습니다.
{“resultType”:“FAIL”,“success”:null,
“error”:{“errorType”:200,
“errorCode”:“BILLING_KEY_ALREADY_ACTIVATED”,
“reason”:“이미 활성화 된 자동결제가 존재합니다.”,
“data”:{},“title”:null}}
■ 막힌 지점
- remove-billing-key
→ body 에 wrappedToken 이 필수인데 해당 값이 없음 - create-billing-key 로 새 토큰 발급
→ BILLING_KEY_ALREADY_ACTIVATED 로 실패, success 가 null 이라 토큰 수신 불가 - get-billing-key-status
→ 이 API 도 wrappedToken 을 입력으로 요구하여 조회 불가 - 사용자가 토스 앱에서 직접 해지
→ 자동결제 관리 화면에 “가맹점에서 삭제할 수 있어요” 로 안내되어
사용자 해지 경로가 없음
토스 앱은 가맹점에서 해지하도록 안내하고, 가맹점은 해지에 필요한
wrappedToken 을 다시 받을 방법이 없어 양쪽 모두 막히는 구조로 보입니다.
■ 문의드리고 싶은 점
-
userKey 를 기준으로 활성 빌링키를 조회하거나 해지할 수 있는 API가 있을까요?
현재는 wrappedToken 이 빌링키를 가리키는 유일한 수단이고 재발급 경로가 없어서,
가맹점이 이 값을 한 번 잃으면 복구가 불가능해 보입니다. -
BILLING_KEY_ALREADY_ACTIVATED 응답 시 기존 빌링키를 대체 등록하거나,
해당 빌링키의 wrappedToken 을 회수할 수 있는 방법이 있을까요? -
이미 이 상태가 된 건은 어떻게 처리하면 될까요?
개별 건에 대한 식별 정보가 필요하시면 비공개로 전달드리겠습니다. -
이런 상황을 예방하기 위해 가맹점 측에서 권장되는 처리 방식이 있을까요?
(예: unlink 시 빌링키 해지를 가맹점이 직접 호출하는 것이 맞는 방향인지)