gon
gon14mo ago

안녕하세요 paymentWidget에서 벌써 막히고 있습니다 ㅠㅠ

어제 메일로 webflow 연동문의를 드리고 Byungjun Jang님 글을 보고 결제창을 띄울려고 하는데... 잘 안되네요.. 회원제사이트(memberstack)에서 결제승인이 되야하기 때문에 clientKey를 회원의 memer.id로 사용하려고 하고 있습니다 어쨌든 console로고에는 Client key와 Custoemr Key가 원하는데로 잘 들어는 왔는데요 결제위젯초기화를 진행 못하고 있는거 같습니다 (customerKey is not defined) 챗지피티는 비동기식때문이라고 하는데 ..... 풀지를 못하겠네요.. ㅠㅠ 아래 코드를 봐주시면 감사하겠습니다 <script> const clientKey = "test_ck_jExPeJWYVQjBNZGNyoJPr49R5gvN"
//Memberstack에서 현재 로그인 된 회원 정보 가져오기 window.$memberstackDom.getCurrentMember().then(({ data: member }) => { if (member) { const customerKey = member.id; const memberEmail = member.auth.email; // 회원 정보 사용 예시 console.log('Member ID:', customerKey); console.log('Member Email:', memberEmail); // clientKey와 customerKey도 확인 console.log('Client Key:', clientKey); console.log('Customer Key:', customerKey); } else { // Handle the case where no member is logged in console.log('No member is currently logged in.'); } }); // ------ 결제위젯 초기화 ------ // 비회원 결제에는 customerKey 대신 ANONYMOUS를 사용하세요. const paymentWidget = PaymentWidget(clientKey, customerKey) // 회원 결제 // const paymentWidget = PaymentWidget(clientKey, PaymentWidget.ANONYMOUS) // 비회원 결제
13 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
이실장
이실장14mo ago
우선 1가지 여쭤봐요 개발지식이 있으신가요?
gon
gonOP14mo ago
초급수준에 리딩정도로 지피티도움이 필요한 역량입니다
이실장
이실장14mo ago
const customerKey = member.id; 이부분이 특정 함수 안에서 선언되어 있어 const paymentWidget = PaymentWidget(clientKey, customerKey) // 회원 결제 여기로 전달이 안되고 있습니다.
<script>
const clientKey = "test_ck_jExPeJWYVQjBNZGNyoJPr49R5gvN"
const customerKey = ""

//Memberstack에서 현재 로그인 된 회원 정보 가져오기
window.$memberstackDom.getCurrentMember().then(({ data: member }) => {
if (member) {
customerKey = member.id;
const memberEmail = member.auth.email;
// 회원 정보 사용 예시
console.log('Member ID:', customerKey);
console.log('Member Email:', memberEmail);
// clientKey와 customerKey도 확인
console.log('Client Key:', clientKey);
console.log('Customer Key:', customerKey);
} else {
// Handle the case where no member is logged in
console.log('No member is currently logged in.');
}
});

// ------ 결제위젯 초기화 ------
// 비회원 결제에는 customerKey 대신 ANONYMOUS를 사용하세요.
const paymentWidget = PaymentWidget(clientKey, customerKey) // 회원 결제
// const paymentWidget = PaymentWidget(clientKey, PaymentWidget.ANONYMOUS) // 비회원 결제
<script>
const clientKey = "test_ck_jExPeJWYVQjBNZGNyoJPr49R5gvN"
const customerKey = ""

//Memberstack에서 현재 로그인 된 회원 정보 가져오기
window.$memberstackDom.getCurrentMember().then(({ data: member }) => {
if (member) {
customerKey = member.id;
const memberEmail = member.auth.email;
// 회원 정보 사용 예시
console.log('Member ID:', customerKey);
console.log('Member Email:', memberEmail);
// clientKey와 customerKey도 확인
console.log('Client Key:', clientKey);
console.log('Customer Key:', customerKey);
} else {
// Handle the case where no member is logged in
console.log('No member is currently logged in.');
}
});

// ------ 결제위젯 초기화 ------
// 비회원 결제에는 customerKey 대신 ANONYMOUS를 사용하세요.
const paymentWidget = PaymentWidget(clientKey, customerKey) // 회원 결제
// const paymentWidget = PaymentWidget(clientKey, PaymentWidget.ANONYMOUS) // 비회원 결제
이렇게 해보세요
gon
gonOP14mo ago
네 감사합니다 한번 해보겠습니다 ㅠㅠ CustomerKey: 사용할 수 없는 형식입니다. 영문 대소문자, 숫자, 특수문자(-,_,=,.,@)로 최소 2자 이상 최대 50자 이하여야 합니다. 라고...에러가 뜨는데요... 사용id가 mem_sb_clpqegesi0hgg0rudfs7r1cwm 인데 불가 대상인가요?....
유부장
유부장14mo ago
전달된 CustomerKey 가 알려주신 값이 아닌것 같아요. console.log 를 통해서, 위젯 초기화 전에 어떤 값으로 지정되어 있는지 확인 한번 해보시겠어요?
gon
gonOP14mo ago
네 지금 방금 다시 테스트하였습니다 위젯 초기화전에 mem_sb_clps56q3v036o0rsb5k9b7y4t 으로 지정되었습니다 ... 정확히 말씀드리면 const customerKey = "" 에서 50자이하여야..라고 하는 에러가 떠서 콘솔로그에서 확인이 안됩니다 위에 말씀드린 아이디는 로그인사용자의 멤버id를 기입드린것입니다 const paymentWidget = PaymentWidget(clientKey, customerKey) // 회원 결제 여기로 전달이 안되고 있는거 같습니다 ㅠㅠ
Kimoon Lee
Kimoon Lee14mo ago
결제위젯 렌더링하는걸 그 위에 window.$memberstackDom.getCurrentMember().then(({ data: member }) => { 안에서 하셔야 할것 같네요. 그리고 paymentWidget 은 global 로 선언해 주시구요. 웹플로우의 경우 기본적인 javascript 동작에 대해 이해가 없으시면 사용이 어려우실겁니다.
gon
gonOP14mo ago
네... 쉽지 않네요..지피티도 같은 문제로 해결책을 주어서 ...콜백 함수내에서 PaymentWidget을 초기화하여 수정하였지만 여전히 전달이 안되고 있습니다.. 아무래도 외부에서 전문가를 찾아야 할 거 같습니다....ㅠㅠ const clientKey = "test_ck_jExPeJWYVQjBNZGNyoJPr49R5gvN"; // Memberstack에서 현재 로그인 된 회원 정보 가져오기 window.$memberstackDom.getCurrentMember().then(({ data: member }) => { if (member) { const customerKey = member.id; const memberEmail = member.auth.email;
// 회원 정보 사용 예시 console.log('Member ID:', customerKey); console.log('Member Email:', memberEmail); // clientKey와 customerKey도 확인 console.log('Client Key:', clientKey); console.log('Customer Key:', customerKey); // ------ 결제위젯 초기화 ------ // 비회원 결제에는 customerKey 대신 ANONYMOUS를 사용하세요. const paymentWidget = PaymentWidget(clientKey, customerKey); // 회원 결제 // const paymentWidget = PaymentWidget(clientKey, PaymentWidget.ANONYMOUS); // 비회원 결제 } else { // Handle the case where no member is logged in console.log('No member is currently logged in.'); } });
이실장
이실장14mo ago
그러면 그냥 아래중 첫번째 줄 지우고,두번째줄 주석 제거해서 사용해주세요~ const paymentWidget = PaymentWidget(clientKey, customerKey); // 회원 결제 // const paymentWidget = PaymentWidget(clientKey, PaymentWidget.ANONYMOUS); // 비회원 결제
Kimoon Lee
Kimoon Lee14mo ago
네 웹플로우의 동작방식은 저희도 잘 알지 못해서 장병준님께 문의해 보셔야 할것 같습니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
gon
gonOP14mo ago
네 감사합니다 많은 도움이 되었습니다 ^^::

Did you find this page helpful?