gaks2san
TPToss payments 개발자 커뮤니티
•Created by EHOT on 7/2/2024 in #❓┃연동개발-문의
서브 도메인 관련 질문드립니다.
네 말씀 잘 알겠습니다. 감사합니다.
15 replies
TPToss payments 개발자 커뮤니티
•Created by EHOT on 7/2/2024 in #❓┃연동개발-문의
서브 도메인 관련 질문드립니다.
말씀하신 경우를 궁금해 하시는 분들은 없을 것입니다.
example.com로 문구를 파는 것으로 계약이 되어 있었는데, abc.example.com 에서는 연필을 def.example.com 에서는 지우개를 판매한다면 괜찮나요?
15 replies
TPToss payments 개발자 커뮤니티
•Created by EHOT on 7/2/2024 in #❓┃연동개발-문의
서브 도메인 관련 질문드립니다.
안녕하세요. 서브도메인은 컨텐츠를 체계적으로 관리하는 유용한 방편이라 좋은 질문인것 같습니다.
답변 주신 내용이 상당히 모호해 보이는데,
"실제 등록된 홈페이지가 확인되지 않는 경우"와 "다른 홈페이지에서 결제가 사용됨이 확인" 이란 각각 어떤 경우인가요?
그리고 위의 두가지와 같은 경우가 아니라면 abc.example.com, def.example.com 만들어 운영하더라도 기존 example.com 의 MID를 그대로 사용하면 되는건가요?
아마도, 서브도메인에 사실상 서버도 다른 사이트 운영하는 경우를 말씀하시는것 같은데, "서버가 다르면 MID를 신규 발급해야 하지만, 서브도메인을 운영하더라도 서버도 같고 메인도메인이 동일하다면 같은 MID를 사용하면 된다"라로 확실하게 공지하는것이 낫지 않나요? 서버도 같고 사업 내용도 같은데 서브도메인 만들때마다 MID 새로 발급받고 분리 운영해야 한다면 매우 큰 문제라고 보여지고 타당해 보이지도 않은 것 같습니다.
15 replies
RRunPod
•Created by Satpal on 5/8/2024 in #⚡|serverless
Serverless Error Kept Pod Active
Thank you
51 replies
RRunPod
•Created by Satpal on 5/8/2024 in #⚡|serverless
Serverless Error Kept Pod Active
Thank you
51 replies
RRunPod
•Created by Satpal on 5/8/2024 in #⚡|serverless
Serverless Error Kept Pod Active
Thank you for your kind advice.
Is your advice for my serverless endpoint? if so, does "kill the process or task" mean "delete endpoint and create new endpoint?"
51 replies
TPToss payments 개발자 커뮤니티
•Created by gaks2san on 3/18/2024 in #❓┃연동개발-문의
[에러] 이미 사용된 주문번호입니다
토스페이먼츠 공식 깃헙 코드 그대로 따라서 했는것입니다만.....
https://github.com/tosspayments/payment-widget-sample/tree/main/react
30 replies
TPToss payments 개발자 커뮤니티
•Created by gaks2san on 3/18/2024 in #❓┃연동개발-문의
[에러] 이미 사용된 주문번호입니다
두번 처리되는것 관련해서 전체코드를 chatGPT4 통해 확인을 해봤는데, 아래와 같습니다.
그리고 버튼 중복 클릭 관련한 부분은 코드에 반영해서 테스트 해봤는데 관련이 없었습니다.
==============================
이 코드에서 /success 부분이 두 번 실행되는 것처럼 보이는 문제의 원인은 직접적으로 코드 상에서 /success가 두 번 호출되거나 실행되는 부분이 존재하지 않습니다. 문제의 원인을 찾기 위해 코드의 전체적인 흐름과 React의 동작 방식을 고려해야 합니다.
useEffect와 상태 업데이트: 이 코드는 useEffect 훅을 사용하여 paymentWidget과 price 상태에 따라 사이드 이펙트를 실행합니다. useEffect는 의존성 배열([paymentWidget], [price])에 있는 값이 변경될 때마다 실행됩니다. 그러나 여기서 /success 경로가 직접적으로 관련된 로직은 보이지 않습니다.
onClick 이벤트 핸들러: 결제 요청을 처리하는 부분은 onClick 이벤트 핸들러 내부에 있으며, 이 핸들러는 사용자가 "결제하기" 버튼을 클릭할 때 실행됩니다. 이 함수 내부에서 paymentWidget?.requestPayment를 호출하고 있으며, 성공적인 결제 후에 사용자를 /success URL로 리디렉션하는 것으로 보입니다. 이 과정이 두 번 실행되는 것은 이 코드의 로직과는 직접적인 관련이 없을 수 있습니다.
원인을 명확히 파악하기 위해서는 다음과 같은 추가적인 정보가 필요합니다:
결제 요청의 중복 호출: 사용자가 실수로 또는 네트워크 지연 등의 이유로 "결제하기" 버튼을 빠르게 여러 번 클릭할 수 있습니다. 이러한 상황을 방지하기 위해 버튼 클릭 이벤트가 처리 중일 때 버튼을 비활성화하는 등의 조치를 취할 수 있습니다.
paymentWidget의 동작 방식: paymentWidget?.requestPayment 메소드의 내부 구현에 따라 결제 프로세스가 완료된 후 /success 페이지로의 이동이 중복으로 발생할 수 있습니다. 예를 들어, 결제 과정 중에 페이지를 리로드하거나 다른 방식으로 중복 호출이 발생할 수 있는 경우가 있습니다.
외부 요인: 브라우저의 특정 확장 프로그램, 네트워크 문제, 또는 paymentWidget SDK의 버그 등 외부 요인도 이 문제에 영향을 줄 수 있습니다.
문제를 해결하기 위한 첫 번째 단계로, "결제하기" 버튼을 클릭할 때 중복 클릭을 방지하는 로직을 추가하는 것을 고려할 수 있습니다. 예를 들어, 첫 클릭 시에 버튼을 비활성화하고, 결제 요청이 완료될 때까지 사용자가 다시 클릭할 수 없도록 합니다. 또한, paymentWidget의 문서나 커뮤니티에서 비슷한 문제를 경험한 다른 사용자의 사례를 찾아보는 것도 도움이 될 수 있습니다
==================================
30 replies
TPToss payments 개발자 커뮤니티
•Created by gaks2san on 3/18/2024 in #❓┃연동개발-문의
[에러] 이미 사용된 주문번호입니다
30 replies
TPToss payments 개발자 커뮤니티
•Created by gaks2san on 3/18/2024 in #❓┃연동개발-문의
[에러] 이미 사용된 주문번호입니다
해당 코드입니다.
export function CheckoutPage() {
......
useEffect(() => {
if (paymentWidget == null) {
return;
}
const paymentMethodsWidget = paymentWidget.renderPaymentMethods(selector, { value: price }, { variantKey: "DEFAULT" });
paymentWidget.renderAgreement("#agreement", { variantKey: "AGREEMENT" });
paymentMethodsWidgetRef.current = paymentMethodsWidget;
}, [paymentWidget]);
useEffect(() => {
const paymentMethodsWidget = paymentMethodsWidgetRef.current;
if (paymentMethodsWidget == null) {
return;
}
paymentMethodsWidget.updateAmount(price);
}, [price]);
return (
<div className="wrapper">
<div className="box_section">
<div id="payment-widget" />
.....
<div className="result wrapper">
<button
className="button"
style={{ marginTop: "30px" }}
onClick={async () => {
try {
await paymentWidget?.requestPayment({
orderId: nanoid(),
orderName: "토스 티셔츠 외 2건",
customerName: "김토스",
successUrl:
${window.location.origin}/success
,
failUrl: ${window.location.origin}/fail
,
});
} catch (error) {
console.error(error);
}
}}
>
결제하기
</button>
</div>
</div>
</div>
);
}
function usePaymentWidget(clientKey: string, customerKey: string) {
return useQuery({
queryKey: ["payment-widget", clientKey, customerKey],
queryFn: () => {
return loadPaymentWidget(clientKey, customerKey);
},
});
}30 replies
TPToss payments 개발자 커뮤니티
•Created by gaks2san on 3/18/2024 in #❓┃연동개발-문의
[에러] 이미 사용된 주문번호입니다
페이지 로딩은 승인처리 후 렌더링 되는 부분 말씀이신가요?
30 replies
TPToss payments 개발자 커뮤니티
•Created by gaks2san on 3/18/2024 in #❓┃연동개발-문의
[에러] 이미 사용된 주문번호입니다
사업자로 가입은 아직 하지 않아서 테스트로만 가능합니다. 테스트먼저해보고 잘되면 하려고요.
모든 승인에 대해서 승인API가 계속해서 0.01초 간격으로 2번 호출되었다는 말씀인거죠? (제가 0.01초 간격으로 주문을 한적은 없으니까요)
그리고 항상 첫번째는 성공하고 두번째는 주문번호 중복에러 나와서 두번째 승인처리의 결과가 response되어서 그렇다는 말씀인거죠?
1) 결과적으로 결제승인은 성공한건가요?
2) 코드는 다음과 같습니다.
export function SuccessPage() {
const navigate = useNavigate();
const [searchParams] = useSearchParams();
useEffect(() => {
const requestData = {
orderId: searchParams.get("orderId"),
amount: searchParams.get("amount"),
paymentKey: searchParams.get("paymentKey"),
};
const encryptedSecretKey =
return; } } confirm(); }, []);
Basic ${btoa(secretKey + ":")}
;
async function confirm() {
const response = await fetch("https://api.tosspayments.com/v1/payments/confirm", {
method: "POST",
headers: {
"Authorization": encryptedSecretKey,
"Content-Type": "application/json",
},
body: JSON.stringify(requestData),
})
const json = await response.json();
if (!response.ok) {
navigate(/fail?code=${json.code}&message=${json.message}
)return; } } confirm(); }, []);
30 replies
TPToss payments 개발자 커뮤니티
•Created by gaks2san on 3/18/2024 in #❓┃연동개발-문의
[에러] 이미 사용된 주문번호입니다
어제 전체 알려드렸었습니다만,
다시 말씀드리겠습니다. NrqAJiymlfhS-CDttFsoV, pPuAveiXWnXxd2VWEHd0q 빠른 확인 부탁드립니다.
30 replies
TPToss payments 개발자 커뮤니티
•Created by gaks2san on 3/18/2024 in #❓┃연동개발-문의
[에러] 이미 사용된 주문번호입니다
확인이 되셨나요?
30 replies
TPToss payments 개발자 커뮤니티
•Created by gaks2san on 3/18/2024 in #❓┃연동개발-문의
[에러] 이미 사용된 주문번호입니다
그리고 아까 알려드린 주문번호 NrqAJ**는 이미테스트한 후 같은 주문번호로 시도한 것이 아니라 처음시도했고 테스트 결제내역에도 처음 등록된 주문번호입니다. 그전 주문번호 알려드리면 pPuA** 도 마찬가지고요.
테스트 결제내역에 등록된 결제 내역 28건이 있는데 (제가 몇개 취소했음) 구매자명이 김토스로 되어 있는 것 들이 제가 로컬에서 테스트한 것인데 단 한번도 성공메세지가 나온적이 없었습니다. 그런데 결제내역에 결제 상태를 확인해보면 항상 완료라고 나왔습니다. 그리고 주문번호는 같았던 적이 없었습니다.
30 replies
TPToss payments 개발자 커뮤니티
•Created by gaks2san on 3/18/2024 in #❓┃연동개발-문의
[에러] 이미 사용된 주문번호입니다
nanoid() 를 써서 주문할 때 마다 계속 바뀌게 되어 있습니다. 콘솔에 찍어봐도 계속 바뀌어 있었고요. 그런데도 계속 같은 에러메세지가 나오고 있습니다.(reponse.ok 가 없으면 에러뜨게 해놓았습니다.)
그런데 개발 연동 체험 상점의 테스트 결제내역에는 결제상태가 완료라고 나옵니다. 주문번호는 계속 다른 주문번호로요.
신용카드로 결제하면 같은 주문번호라는 그런 메세지가 뜨고,
간편결제(토스페이)로 하면 항상 아래와 같은 에러메세지가 뜹니다.
code = PROVIDER_ERROR message = 죄송합니다. 잠시 후 다시 이용해 주시기 바랍니다.
그런데 이것도 마찬가지로 결제내역에의 결제상태는 완료로 되어 있고요.
그리고 결제내역에는 주문번호가 다 다르게 되어 있습니다.
좀 전에도 주문했는데 그렇습니다.
확인 좀 부탁드립니다.
(결제는 정상적으로 된건가요?)
30 replies