ragyun.
ragyun.4d ago

브랜드페이 결제 관리

아직 브랜드페이를 설정하지 않은 사용자인 경우 최초 카드 등록(brandpay.requestPayment 으로 호출하지 않고, brandpay.addPaymentMethod() 으로 호출한 경우) 또는 결제 관리 화면 조회(brandpay.requestPayment 으로 호출하지 않고, brandpay.openSettings() 으로 호출한 경우)에서 customerToken이 존재하지 않습니다.라는 오류가 발생합니다. 제 관리 화면 조회 시 카드등록 화면이 나오고, 카드등록을 완료하면 customerToken이 존재하지 않습니다.오류로 빠집니다.
No description
16 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
이실장
이실장4d ago
이건 redirectUrl에서 token이 발급되지 않았을때 발생하는 현상입니다.
이실장
이실장4d ago
브랜드페이 인증하기 | 토스페이먼츠 개발자센터
브랜드페이 인증은 OAuth 2.0 인증 프레임워크를 기반으로 구현되어 있습니다. 브랜드페이에서 Access Token을 발급하고 사용하는 방법을 안내합니다.
이실장
이실장4d ago
여기 참고해서 진행해주세요
ragyun.
ragyun.OP4d 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();
});
전체 코드는 이와같이 되어 있습니다
이실장
이실장4d ago
window.location.origin + "/api/brand-pay-auth"
서버에 위 경로가 있죠 ?
서버에 위 경로가 있죠 ?
ragyun.
ragyun.OP4d ago
네 있습니다 brandpay.requestPayment에서는 잘 되고 있습니다
이실장
이실장4d ago
브랜드페이 API | 토스페이먼츠 개발자센터
브랜드페이에서 제공하는 API 엔드포인트(Endpoint)와 객체 정보, 파라미터, 요청 및 응답 예제를 살펴보세요.
ragyun.
ragyun.OP4d 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 Lee4d ago
정리하면 requestPayment 는 정상동작하는데 addPaymentMethod 나 openSettings 이걸 호출할때만 에러가 발생하시는 건가요? 재현 한번만 해주시고 그때 사용한 customerkey 알려주세요.
이실장
이실장4d ago
아뇨 이제 다 잘되신다는 것 같아요.
이실장
이실장4d ago
@ragyun. 위 이미지가 카드등록 flow입니다. 보시면 2번째 이미지 하단에 '약관동의'가 있는데요.
No description
이실장
이실장4d ago
약관동의 이후 (= 브랜드페이 회원가입) 최초 redirectUrl이 호출됩니다. 그래서 그시점에 customerToken에러가 발생했던거에요. 직므은 redirectUrl에서 정상적으로 토큰 발급이 되기 때문에, 이후 3번째 단계부터 자연스럽게 진행이된거고요. 지금 정상적인 상태이니 확인해보시고 이상있으면 알려주세요. 아마 모든 기능이 잘 동작할겁니다.
ragyun.
ragyun.OP4d ago
브랜드페이 결제 관리에서 목록을 커스텀이 가능한가요? 이메일 관리, 해지하기 버튼을 지우고 싶어요
No description
Kimoon Lee
Kimoon Lee4d ago
지우는건 불가능합니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?