ragyun.
ragyun.3mo ago

브랜드페이 결제 관리

아직 브랜드페이를 설정하지 않은 사용자인 경우 최초 카드 등록(brandpay.requestPayment 으로 호출하지 않고, brandpay.addPaymentMethod() 으로 호출한 경우) 또는 결제 관리 화면 조회(brandpay.requestPayment 으로 호출하지 않고, brandpay.openSettings() 으로 호출한 경우)에서 customerToken이 존재하지 않습니다.라는 오류가 발생합니다. 제 관리 화면 조회 시 카드등록 화면이 나오고, 카드등록을 완료하면 customerToken이 존재하지 않습니다.오류로 빠집니다.
No description
21 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
이실장
이실장3mo ago
이건 redirectUrl에서 token이 발급되지 않았을때 발생하는 현상입니다.
이실장
이실장3mo ago
브랜드페이 인증하기 | 토스페이먼츠 개발자센터
브랜드페이 인증은 OAuth 2.0 인증 프레임워크를 기반으로 구현되어 있습니다. 브랜드페이에서 Access Token을 발급하고 사용하는 방법을 안내합니다.
이실장
이실장3mo ago
여기 참고해서 진행해주세요
ragyun.
ragyun.OP3mo ago
그럼 brandpay.addPaymentMethod(), brandpay.openSettings() 부르기 전에
import { loadTossPayments } from "@tosspayments/tosspayments-sdk"
const tossPayments = await loadTossPayments(tossBrandPayClientKey);
const brandpay = tossPayments.brandpay({
customerKey: mbId.value,
redirectUrl: window.location.origin + "/api/brand-pay-auth",
});
import { loadTossPayments } from "@tosspayments/tosspayments-sdk"
const tossPayments = await loadTossPayments(tossBrandPayClientKey);
const brandpay = tossPayments.brandpay({
customerKey: mbId.value,
redirectUrl: window.location.origin + "/api/brand-pay-auth",
});
이 코드가 있습니다. 이 것과는 다른가요?
import { loadTossPayments } from "@tosspayments/tosspayments-sdk"
const tossPayments = await loadTossPayments(tossBrandPayClientKey);
const brandpay = tossPayments.brandpay({
customerKey: mbId.value,
redirectUrl: window.location.origin + "/api/brand-pay-auth",
});

onMounted(() => {
brandpay.openSettings(); 또는 brandpay.addPaymentMethod();
});
import { loadTossPayments } from "@tosspayments/tosspayments-sdk"
const tossPayments = await loadTossPayments(tossBrandPayClientKey);
const brandpay = tossPayments.brandpay({
customerKey: mbId.value,
redirectUrl: window.location.origin + "/api/brand-pay-auth",
});

onMounted(() => {
brandpay.openSettings(); 또는 brandpay.addPaymentMethod();
});
전체 코드는 이와같이 되어 있습니다
이실장
이실장3mo ago
window.location.origin + "/api/brand-pay-auth"
서버에 위 경로가 있죠 ?
서버에 위 경로가 있죠 ?
ragyun.
ragyun.OP3mo ago
네 있습니다 brandpay.requestPayment에서는 잘 되고 있습니다
이실장
이실장3mo ago
브랜드페이 API | 토스페이먼츠 개발자센터
브랜드페이에서 제공하는 API 엔드포인트(Endpoint)와 객체 정보, 파라미터, 요청 및 응답 예제를 살펴보세요.
ragyun.
ragyun.OP3mo ago
window.location.origin + "/api/brand-pay-auth" 에서
const response:iResAccessToken = await $fetch(`${tossBaseUrl}/v1/brandpay/authorizations/access-token`, {
method: 'POST',
headers: {
authorization: "Basic " + tossBrandPaySecretBase64,
"Content-Type": "application/json"
},
body: {
code: code,
customerKey: customerKey,
grantType: grantType,
refreshToken: refreshToken,
},
});
const response:iResAccessToken = await $fetch(`${tossBaseUrl}/v1/brandpay/authorizations/access-token`, {
method: 'POST',
headers: {
authorization: "Basic " + tossBrandPaySecretBase64,
"Content-Type": "application/json"
},
body: {
code: code,
customerKey: customerKey,
grantType: grantType,
refreshToken: refreshToken,
},
});
토큰 api 호출 하고 있습니다 brandpay.requestPayment로는 결제 및 카드등록되는 것 확인했습니다 지금 다시 하니 됩니다. 이전에 오류가 있을 때에는 핸드폰번호 인증화면이 나오지 않았고, 지금은 인증화면이 먼저 보여지면서 인증 후 오류없이 설정창이 보입니다.
Kimoon Lee
Kimoon Lee3mo ago
정리하면 requestPayment 는 정상동작하는데 addPaymentMethod 나 openSettings 이걸 호출할때만 에러가 발생하시는 건가요? 재현 한번만 해주시고 그때 사용한 customerkey 알려주세요.
이실장
이실장3mo ago
아뇨 이제 다 잘되신다는 것 같아요.
이실장
이실장3mo ago
@ragyun. 위 이미지가 카드등록 flow입니다. 보시면 2번째 이미지 하단에 '약관동의'가 있는데요.
No description
이실장
이실장3mo ago
약관동의 이후 (= 브랜드페이 회원가입) 최초 redirectUrl이 호출됩니다. 그래서 그시점에 customerToken에러가 발생했던거에요. 직므은 redirectUrl에서 정상적으로 토큰 발급이 되기 때문에, 이후 3번째 단계부터 자연스럽게 진행이된거고요. 지금 정상적인 상태이니 확인해보시고 이상있으면 알려주세요. 아마 모든 기능이 잘 동작할겁니다.
ragyun.
ragyun.OP3mo ago
브랜드페이 결제 관리에서 목록을 커스텀이 가능한가요? 이메일 관리, 해지하기 버튼을 지우고 싶어요
No description
Kimoon Lee
Kimoon Lee3mo ago
지우는건 불가능합니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
ragyun.
ragyun.OP3mo ago
이전과 비슷하게 휴대폰 인증을 하지 않은 계정으로 결제 시 customerToken에러가 발생하고 있습니다. 토스 결제화면으로 넘어간 뒤, 카드 등록 후 휴대폰 인증화면이 나오지 않고있습니다.
ragyun.
ragyun.OP3mo ago
카드 정보 입력 후 동의를 누른 뒤 다음화면으로 이동이 안되면서 휴대폰 인증이 나오지 않습니다. 실서버에서 하고 있습니다.
No description
Kimoon Lee
Kimoon Lee3mo ago
redirectURL 에서 토큰 발행을 정상적으로 하고 있는지 확인부탁드립니다. 에러 발생하는 customerkey 도 공유해 주세요.
ragyun.
ragyun.OP3mo ago
b48afb20-de61-492a-9aeb-ab6ef3ab776e 웹환경에서는 인증화면이 안나왔는데, 앱환경에서는 인증화면이 나오면서 정상적으로 작동합니다. 앱과 웹은 같은 브릿지 페이지를 보고 있습니다
Kimoon Lee
Kimoon Lee3mo ago
동작 안했던 시간이 언제였는지 알수 있을까요? {"code":"NOT_REGISTERED_REDIRECT_URL","message":"리다이렉트 URL이 등록되지 않았습니다. 개발정보 페이지에서 등록해주세요." 이에러가 확인되는데 기존에 www 가 붙어 있는 redirectURL 로 보내시다가 www 가 없는 것으로 보내면서 해결된것으로 보입니다. 웹환경에서 redirect URL 을 www 가 붙어있는주소로 하신거 아닌지 확인바랍니다.

Did you find this page helpful?