브랜드 페이 와일드카드 사용 방법
안녕하세요. 현재 브랜드 페이를 이용하여 결제를 구현하고 있습니다. 결제위젯 SDK로 연동할 때 약관동의 이후 토스 서버를 호출한 뒤 리다이렉트 URL로 와일드카드를 전달 받아서 사용하려고 하는데 패스 경로에 와일드 카드를 적용하려면 어떻게 해야하는지 문의드립니다!
또 추가적으로 저희 서비스 내에 시큐리티에 있는 Bearer 토큰을 사용할 수 있는지도 문의드립니다.
1. 리다이렉트 URL로 패스경로에 와일드카드를 적용하려면 어떻게 해야 하는지
2. 서비스 내에 시큐리티에 있는 Bearer 토큰을 사용할 수 있는지
35 Replies
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) :
- 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요.
* 주말/공휴일에는 답변이 늦을 수 있어요.
1. 예시입니다.
https://api.tosspayments.com 이라면
https://*.tosspayments.com 으로 사용가능합니다.
2. 하기내용 참고하시면됩니다.
https://docs.tosspayments.com/blog/everything-about-basic-bearer-auth#%EA%B2%B0%EC%A0%9C-%EA%B3%A0%EA%B0%9D%EC%9D%84-%ED%8A%B9%EC%A0%95%ED%95%B4%EC%95%BC-%ED%95%98%EB%8A%94-api%EB%8A%94-bearer-%EC%9D%B8%EC%A6%9D
https://docs.tosspayments.com/guides/brandpay/auth
브랜드페이 인증하기 | 토스페이먼츠 개발자센터
브랜드페이 인증은 OAuth 2.0 인증 프레임워크를 기반으로 구현되어 있습니다. 브랜드페이에서 Access Token을 발급하고 사용하는 방법을 안내합니다.
Basic 인증과 Bearer 인증의 모든 것 | 토스페이먼츠 개발자센터
비밀번호로 이메일 계정의 권한을 확인하는 것 처럼, HTTP 인증으로 서버에 접근하는 클라이언트의 권한을 확인해요.
2번은 Bearer 토큰을 사용하는 endpoint 가 따로 있어서 그 endpoint 에서만 사용하실수 있습니다.
아 제가 자세히 설명을 드리지 않은것 같아서 추가 문의 드립니다.
약관동의 후 code와 customerKey를 받는 redirectUrl을 백엔드에서 먼저 받지 않고,
프론트엔드에서 빈페이지 같은 임시페이지에서 받고난 후에
임시페이지에서 받은 code와 customerKey를
우리 백엔드서버에서 만든 토스액세스토큰 발급 API에 호출하는 방식이 가능할까요?
redirectUrl을 바로 백엔드 API로 선정하지 않은 이유는
백엔드서버에서 만든 토스액세스토큰 발급 API에
토스액세스토큰이 아니라 우리 서비스의 액세스토큰을 헤더에 담아 보내야하기 때문입니다.
네 가능합니다.
프론트에서는 백엔드 호출해서 토큰발급 요청 하시고 리턴받아 응답 주시면 될것 같아요.
안녕하세요
리다이렉트 URL을 프론트엔드로 설정한 후 실제 화면에서 카드정보등록 할때 약관동의를 하면 화면은 이동되지 않고 네트워크 요청만 리다이렉트 URL로 요청하는데 네트워크 preview에 UI에 대한 정보만 노출되고 콘솔로그나 함수실행은 되지 않고 있습니다.
리다이렉트 URL로 요청 은 들어오시는 거죠?
넵 요청을 들어오고있습니다.
이후에 백엔드 호출해서 토큰발급 하신 건가요?
그 리다이렉트 URL 에서 백엔드 호출이 안되고있습니다. 호출이 안된다기보다는 해당 리다이렉트 page로 이동되지 않아서 함수 호출 자체가 안되는 것 같습니다.
리다이렉트 URL 에서 페이지를 이동 시키시는 건가요?
리다이렉트 URL로 요청 은 들어왔는데 리다이렉트 page로 이동되지 않는다는게 어떤 말씀인지 잘 이해가 안됩니다.
현재 nextjs를 이용하여 개발하고 있습니다.
예를 들어 http://localhost:3000/payments 라는 URL로 리다이렉트 URL을 설정했다고 했을때 pages에 payments디렉터리 내부에 index.tsx안에 백엔드 토큰발급 호출 로직이 있는데 리다이렉트 URL로 요청들어왔을때 /payments/index.tsx에 있는 백엔드 토큰발급 호출 로직이 실행 되지 않아서요..
그게 redirect 형태면 안되실겁니다 . redirectURL 에서 직접 내부 로직을 호출해 주셔야 해요
죄송하지만 제가 이해가 잘 되질 않습니다.
redirect 형태면 안되고 redirectURL 에서 직접 내부 로직을 호출한다는 말씀이 /pages/payments/index.tsx에서 로직을 호출해야 된다는 말씀이실까요 ?
하나 더 여쭈어 보고 싶은게 http://localhost:3000/10000/payments 이 브랜드페이 URL 일 경우에 10000 은 동적으로 변경되는 값인데 브랜드페이 URL을 설정할때 10000에 대한 것을 와일드카드로 설정할 수 있나요??
와일드카드는 위에 새로 올려주신 스레드에서 답변 드렸습니다.
redirect 형태면 안된다는게
예를들어 a.html 을 redirectURL 로 호출했는데,
a.html 에서 location.href 등으로 b.html 로 이동시키고 b.html 에서 토큰을 발급하면 안된다는 뜻입니다.
문의 주신 내용대로 라면 프론트 엔드 페이지 내부에서 Ajax 등으로 백엔드 서버를 호출하는 방식으로 구현하셔야 합니다.
지금은 프론트엔드 페이지에서 백엔드 서버 페이지로 이동을 시키시는것 같아 보이구요.
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
현재 브랜드페이 v1 결제 위젯을 이용하여 결제 정보를 등록하고 있습니다.
accessToken을 발급 받았음에도 리다이렉트URL로 요청을 계속해서 보내고 있는데 약관동의 이후 accessToken이 정상적으로 발급되었다면 추가적인 리다이렉트 URL 요청이 없도록 하려면 어떤 방식으로 할 수 있는지 문의드립니다.
accessToken이 발급이 안되었을 때 발급될 때까지 요청을 보내게 됩니다.
정상적으로 code / cutomerKey를 받아서, 발급하고 있는지 확인해주시고 이상없다고 판단될 경우, customerKey값 공유주세요
정상적으로 받아서 발급하고 있으며, customerKey 보내드립니다 75ba877a-8679-4823-b1d-a54c8ea9a1f5
토큰 발급 요청하신 로그가 확인되지 않습니다.
토큰을 정상적으로 발급받았는지 어떻게 확인하신건가요?
저희가 redirectURL 로 보내드린 code 값으로 토큰 발행 요청이 확인되지 않습니다.
토스쪽 accessToken 발급을 바로 호출하지 않고
프론트에서 저희 쪽 서버 api 호출을 통해서 AccessToken 토큰 발급을 진행하였습니다.
브랜드페이 API 에서 제공해주는
POST
/v1/brandpay/authorizations/access-token
api를 이용하여 토큰을 발급 받고 저희 쪽 DB에 저장까지 완료 되었는데 로그가 확인되지 않으실까요?
토스쪽에서 accessToken이 생성된 시간은 2시 32분경에 생성 되었을거로 예상합니다.
2시 32분에 보내신 payload 공유가능하신가요?
32분에 한번만 하신건가요?
저희가 redirectURL 호출할때마다 발급해 주셔야 합니다.
저희가 DB를 초기화해서 4시 30분경에 access token 지우고 다시한번 발급하고 payload 공유 드리겠습니다!
4시 43분~44분 사이에 액세스토큰 발급요청하였습니다.
payload는 아래와 같습니다.
{"customerKey":"366fd15f-d6c9-4e2b-989-471f59095c30","grantType":"AuthorizationCode","code":"92ymxN34PykQEZm57v3ajRKX","refreshToken":null}
현재 약관은 넘어가고 본인인증하고 비밀번호 설정까지 완료 후에 리다이렉트 URL 요청을 계속 하고 있습니다.
지금 VAN님이 공유해 주신건 customerkey 가 d515 로 시작하는데요
이 customerkey 로는 token 요청 하신건가요
그리고 366fd15f-d6c9-4e2b-989-471f59095c30 이 커스터머키도 저희가 redirectURL 을 여러번 호출해 드렸는데 토큰은 딱 한번만 발행요청 해주셨습니다.
redirectURL 호출때마다 토큰 발급을 요청하시는건지 확인부탁드릴께요.
tony 님이 말씀하신 요청과 제가 보낸 이미지와는 관계가 없는 내용입니다. (customerkey가 다른게 맞습니다.)
현재는 리다리엑트 URL 을 호출 할 때 마다 토큰발급을 하는게 아니라 저희 쪽 백엔드에서 토큰이 있을 경우에는 토스쪽으로 발행요청을 보내지 않고있습니다.
요청시마다 보내주셔야 합니다.
access-token을 발급 받아서 DB에 저장까지 되었는데, 계속 화면에서 redirectURL을 호출하고 있는 이유가 궁금합니다.
토큰이 있는지 여부는 저희가 판단합니다.
화면을 표시할때마다 가맹점의 redirectURL 이 동작하고 토큰 요청이 있는지 확인합니다. 보안측면에서 최대한 안전하게 하기 위해 화면 표시 때마다 redirectURL 과 토큰을 검증하고 있습니다.
넵 그래서 제가 말씀드리고 싶은 것은 access-token을 발급 받아서 DB에 저장까지 되었는데, 화면에서 redirectURL 을 무한정 호출하여 해당 오류가 나고 있는 상황입니다.
366fd15f-d6c9-4e2b-989-471f59095c30 기준으로 설명드리면
43분에 가입하시면서 redirectURL 호출이 되었고 토큰발급요청을 하셨습니다.
이후에 카드 등록완료후에 16시 45분에 다시 redirectURL 을 호출했는데, 이때부터는 토큰발급요청이 없습니다.
redirectURL 이 호출될때마다 accesstoken 발급 API 를 호출해 주셔야 합니다.
현재는 리다리엑트 URL 을 호출 할 때 마다 토큰발급을 하는게 아니라 저희 쪽 백엔드에서 토큰이 있을 경우에는 토스쪽으로 발행요청을 보내지 않고있습니다.이렇게 하지 마시고 백엔드에 토큰이 있어도 발행요청을 해주세요.
넵 해결되었습니다! 감사합니다!
네 공유 감사합니다.