Henu
Henu6mo ago

결제위젯 Version 2 브랜드페이 회원탈퇴 관련 문의

안녕하세요, 개발중인 사이트에 결제위젯(Version 2)을 연동 중입니다. 사용 개발언어는 PHP입니다. (연동 가이드 페이지 에서 Client: Javascript / Server: PHP 코드 및 브랜드페이 연동 페이지를참고하고 있습니다.) 또한, 이 포스트는 아래 포스트와 연관됩니다. https://discord.com/channels/864296203746803753/1265936907595022366 문의 내용은 아래와 같습니다. 결제위젯 Version2에서 일반결제 + 브랜드페이를 이용함에 있어 customerKey 설정에 따라 브랜드페이 redirectUrl 호출이 아래 에러메시지와 함께 실패되고 있는 상황입니다.
// Chorome 브라우저 개발자도구 Console
Failed to get parameter brandpayCustomerToken NotFoundCustomerSessionError: customer session을 찾을 수 없습니다.
at e.value (standard:7:281359)
at standard:7:218765
at d (standard:7:77477)
at Generator.<anonymous> (standard:7:78792)
at Generator.throw (standard:7:77887)
at n (standard:7:871)
at u (standard:7:1110)
framework-c206cd9dc09a3d69.js:9 TossPaymentsError: customer token이 없습니다.
at Object.queryFn (8202-fea10f2a88b2e503.js:53:10563)
// Chorome 브라우저 개발자도구 Console
Failed to get parameter brandpayCustomerToken NotFoundCustomerSessionError: customer session을 찾을 수 없습니다.
at e.value (standard:7:281359)
at standard:7:218765
at d (standard:7:77477)
at Generator.<anonymous> (standard:7:78792)
at Generator.throw (standard:7:77887)
at n (standard:7:871)
at u (standard:7:1110)
framework-c206cd9dc09a3d69.js:9 TossPaymentsError: customer token이 없습니다.
at Object.queryFn (8202-fea10f2a88b2e503.js:53:10563)
결제창을 호출할 때 'j......' 회원의 customerKey 값 설정 방식이 UUID에서 회원ID로 바뀜에 따라 충돌(?)이 발생한 것으로 예상이 되는데요. 이에 따라 회원탈퇴처리 를 진행하고자 합니다. 1. 해당 API를 사용함에 있어 AccessToken을 발급받으려면 어떻게 해야하는지 문의드립니다.(Authoriztion Bearer HTTP Header 설정을 위함) 현재 참고하고 있는 가이드는 아래와 같습니다. - 미동의 약관조회 - 약관 동의 - AccessToken 발급 2. 추가로 'j......' 회원으로 UUID로 설정된 customerKey를 상점 내 저장하고 있진 않아서, 요청된 customerKey 목록을 받아볼 수 있는지도 문의드립니다. 미리 답변 감사드립니다.
브랜드페이 API | 토스페이먼츠 개발자센터
브랜드페이에서 제공하는 API 엔드포인트(Endpoint)와 객체 정보, 파라미터, 요청 및 응답 예제를 살펴보세요.
20 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
이실장
이실장6mo ago
질문이 명학히 이해되지 않습니다. 우선 customerKey는 귀사에서 생성해서 보내주는 값입니다. 서버에서 token이 제대로 발급되는지 먼저 확인해주시겠어요?
Henu
HenuOP6mo ago
제가 내용을 잘못 적은게 있네요. 브랜드페이 redirectUrl 호출 시가 아닌, 결제창 호출 시 오류가 발생합니다. customerKey는 로그인한 회원 ID로 설정되게 하였습니다. (기존에는 UUID를 전달했습니다.)
No description
Kimoon Lee
Kimoon Lee6mo ago
1. 말씀하신 미동의 약관조회 약관 동의 AccessToken 발급 이 세개를 차례로 진행하시면 토큰 발급이 가능합니다. customerKey 목록은 저희가 제공하고 있지 않습니다.
Henu
HenuOP6mo ago
위 답변 내용을 토대로 미동의 약관조희 API를 먼저 아래 PHP 코드를 사용하여 연동해 보았습니다.
$credential = base64_encode("시크릿 키" . ":");

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.tosspayments.com/v1/brandpay/terms?customerKey={회원ID}&scope=REGISTER",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic " . $credential
)
));
$response = curl_exec($curl);
logging(true, $response, $lod_dir);
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
$is_success = $http_code == 200;

if (!$is_success)
throw new Exception("처리중 문제가 발생했습니다.");

$body = json_decode($response, true);
$credential = base64_encode("시크릿 키" . ":");

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.tosspayments.com/v1/brandpay/terms?customerKey={회원ID}&scope=REGISTER",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic " . $credential
)
));
$response = curl_exec($curl);
logging(true, $response, $lod_dir);
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
$is_success = $http_code == 200;

if (!$is_success)
throw new Exception("처리중 문제가 발생했습니다.");

$body = json_decode($response, true);
다만, API 응답으로 아래와 같은 데이터가 반환되고 있는데요.
{
"code":"NOT_FOUND_MERCHANT",
"message":"존재하지 않는 상점 정보 입니다."
}
{
"code":"NOT_FOUND_MERCHANT",
"message":"존재하지 않는 상점 정보 입니다."
}
이유를 알 수 있을까요?
MID 목록
1. jangsumall1
ㄴ 현재 운영 사이트의 구 모듈(XPay) 머트 키 이용 중
ㄴ 개발중인 사이트의 결제위젯 Version 2 일반결제에 이용 중

2. jarngsmg4h
ㄴ 개발중인 사이트의 결제위젯 Version 2 브랜드페이에 이용 중

* 'jarngsmg4h' MID에 설정된 결제위젯 연동 키가 별도로 있는지요?(즉, 이 MID로 결제위젯, 브랜드페이 모두 사용 가능한지)
* 현재 개발자센터에서는 'API 로그'를 확인해 보았을 때 일반 결제 시에는 'jangsumall1'에 대한 결제위젯 연동 키를 사용하고 브랜드페이 결제 시에는 'jarngsmg4h'을 사용하는 것 같습니다.
*
MID 목록
1. jangsumall1
ㄴ 현재 운영 사이트의 구 모듈(XPay) 머트 키 이용 중
ㄴ 개발중인 사이트의 결제위젯 Version 2 일반결제에 이용 중

2. jarngsmg4h
ㄴ 개발중인 사이트의 결제위젯 Version 2 브랜드페이에 이용 중

* 'jarngsmg4h' MID에 설정된 결제위젯 연동 키가 별도로 있는지요?(즉, 이 MID로 결제위젯, 브랜드페이 모두 사용 가능한지)
* 현재 개발자센터에서는 'API 로그'를 확인해 보았을 때 일반 결제 시에는 'jangsumall1'에 대한 결제위젯 연동 키를 사용하고 브랜드페이 결제 시에는 'jarngsmg4h'을 사용하는 것 같습니다.
*
Henu
HenuOP6mo ago
No description
No description
이실장
이실장6mo ago
{
"code":"NOT_FOUND_MERCHANT",
"message":"존재하지 않는 상점 정보 입니다."
}
{
"code":"NOT_FOUND_MERCHANT",
"message":"존재하지 않는 상점 정보 입니다."
}
에러의 경우 에러받을 때 사용된 customerKEy알려주세요
이실장
이실장6mo ago
더불어 결제위젯키는 mid에 1:1매핑이 아닙니다. 사업자당 1개씩 발생해요. 결제위젯은 결제위젯키+variantKey조합으로 사용하며, 각 조합이 각각의 mid에 연결됩니다. 조합은 결제 UI설정에서짜게 되고요.
No description
Henu
HenuOP5mo ago
2024.07.30. 09:24:45 기준 미동의 약관조회 API 호출 시 사용한 customerKey는 jnsinc 입니다.
API URL = https://api.tosspayments.com/v1/brandpay/terms?customerKey=jnsinc&scope=REGISTER
API URL = https://api.tosspayments.com/v1/brandpay/terms?customerKey=jnsinc&scope=REGISTER
더불어 결제위젯키는 mid에 1:1매핑이 아닙니다. 사업자당 1개씩 발생해요. 라는 답변 내용에 대해 결제위젯 키는 MID 관계가 없다는 것으로 이해하면 될까요?(즉, 토스페이먼츠 로그인 계정당 1개) 논외지만 금일 발견된 것으로 결제 UI를 설정함에 있어 variantKey는 DEFAULT이지만 국내 일반결제 MID와 브랜드페이 MID가 다르게 설정되어 있었네요.😮‍💨 이 부분에 대해서는 하나로 통일시켜 사용해보도록 하겠습니다. (브렌드페이에 설정된 MID로 설정할 예정)
Henu
HenuOP5mo ago
No description
Kimoon Lee
Kimoon Lee5mo ago
미동의 약관조회 API 사용하실때는 위젯키를 쓰시면 안되고, 브랜드페이 상점의 API 키를 사용하시기 바랍니다. 그리고 결제위젯키는 사업자당 1개만 발행됩니다. 지금 보면 위젯키로 요청하고 계시네요.
이실장
이실장5mo ago
위젯 시크릿 키는 결제관련된 곳에만 사용해주시면되요~ 결제, 취소 등 그런데 위젯으로 브랜드페이 사용하시나요? 미동의 약관조회는 왜하시죠?
Henu
HenuOP5mo ago
그렇군요! 감사합니다! API 개별 연동 키를 사용해보겠습니다.
No description
Henu
HenuOP5mo ago
네, 위젯 Version 2의 브랜드페이 사용중입니다.
이실장
이실장5mo ago
위젯 version2의 브랜드페이면 결국 위젯 사용하신다는거 아닌가요?
Kimoon Lee
Kimoon Lee5mo ago
AccessToken 받는 용도로 쓴다고 하시네요.
이실장
이실장5mo ago
accessToken할 때 미동의약관조회는 필요없어서요~!
Henu
HenuOP5mo ago
jns... 회원 아이디로 로그인했을 때와 lhw... 회원 아이디로 로그인 했을 때 각 결제위젯 호출 시 jns... 회원의 경우 customer token이 없습니다.의 에러메시지가 개발자도구 console에 출력되고 있어서요. 그래서 전에 jns... 회원의 경우 결제위젯 호출 시 customerKey로 UUID를 사용했었는데 이게 문제가 될까싶어 회원탈퇴를 할 목적으로 미동의 약관조회 API 부터 호출해볼까 했던 것이었습니다.(현재는 회원 아이디를 customerKey로 사용 중)
Henu
HenuOP5mo ago
jns... 회원에 대해 API 개별 연동 키를 사용하여 회원탈퇴처리 후 다시 결제위젯창 호출 페이지로 가보니, 정상적으로 결제위젯이 호출되네요. 계속해서 언급했던 customer token이 없습니다.와 같은 에러에 대해서는 설정에 이상이 없었다면 회원탈퇴 진행하고 다시 결제창을 호출하면 되는 것으로 보이네요. 긴 글 읽어주셔서 감사드립니다.
브랜드페이 API | 토스페이먼츠 개발자센터
브랜드페이에서 제공하는 API 엔드포인트(Endpoint)와 객체 정보, 파라미터, 요청 및 응답 예제를 살펴보세요.
No description
No description
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?