GloLia
GloLia2w ago

https://test.test.com/payment_success?paymentType=NORMAL&orderId=250015&paymentKey=eduli202505221111

결제성공했다고 뜨는데... 카드결제내역에는 안보입니다. 결제위젯을 사용했습니다.
19 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee2w ago
payment_success 에서 confirm API 를 호출해 주셔야 합니다. 이부분을 호출하셨는지 확인부탁드립니다.
GloLia
GloLiaOP2w ago
아 안한것 같네요.. got .post("https://api.tosspayments.com/v1/payments/confirm", { headers: { Authorization: encryptedSecretKey, "Content-Type": "application/json", }, json: { orderId: orderId, amount: amount, paymentKey: paymentKey, }, responseType: "json", }) .then(function (response) { // 결제 성공 비즈니스 로직을 구현하세요. console.log(response.body); res.status(response.statusCode).json(response.body) }) .catch(function (error) { // 결제 실패 비즈니스 로직을 구현하세요. console.log(error.response.body); res.status(error.response.statusCode).json(error.response.body) }); }); 감사합니다. 작업해보고 안되면 또 문의드릴게요
Kimoon Lee
Kimoon Lee2w ago
네 감사합니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
GloLia
GloLiaOP2w ago
혹시 python flask confirm api 사용예제 있을가요? toss_secretkey = os.getenv("toss_clientkey") encoded_key = base64.b64encode(f"{toss_secretkey}:".encode()).decode() headers = { "Authorization": f"Basic {encoded_key}", "Content-Type": "application/json" } payload={} payload["orderId"]=orderId payload["amount"]=amount payload["paymentKey"]=paymentKey response = requests.post( "https://api.tosspayments.com/v1/payments/confirm", headers=headers, json=payload ) 이런 식으로 했는데 response 가 빈값이네요
GloLia
GloLiaOP2w ago
postman 테스트해도 안되네요.. 어디가 문제일가요?
No description
유부장
유부장2w ago
url = "-" secertkey = "-" userpass = secertkey + ':' encoded_u = base64.b64encode(userpass.encode()).decode()
headers = { "Authorization" : "Basic %s" % encoded_u, "Content-Type": "application/json" }
params = { "orderId" : orderId, "amount" : amount, "paymentKey" : paymentKey, }
res = requests.post(url, data=json.dumps(params), headers=headers) toss_secretkey = os.getenv("toss_clientkey") 이 부분이 문제 일것 같아요 toss_clientkey 라는 값이 시크릿키가 아닐것 같아요
GloLia
GloLiaOP2w ago
toss_secretkey = "test_gsk_docs_OaPz8L5KdmQXkzRz3y47BMw6" userpass = toss_secretkey + ':' encoded_u = base64.b64encode(userpass.encode()).decode() headers = { "Authorization" : "Basic %s" % encoded_u, "Content-Type": "application/json" } payload={} payload["orderId"]="250020" payload["amount"]=73 payload["paymentKey"]="tedul20250522143015a5uI4" response = requests.post( "https://api.tosspayments.com/v1/payments/confirm", headers=headers, data=json.dumps(payload) ) return str(response) 시크릿 바꿔서 했는데도.. 그냥 리턴값이 비어있습니다.
유부장
유부장2w ago
금액부터 100원 이상으로 해보실래요?
GloLia
GloLiaOP2w ago
toss_secretkey = "test_gsk_docs_OaPz8L5KdmQXkzRz3y47BMw6" userpass = toss_secretkey + ':' encoded_u = base64.b64encode(userpass.encode()).decode() headers = { "Authorization" : "Basic %s" % encoded_u, "Content-Type": "application/json" } params = { "orderId" : "250020", "amount" : 72, "paymentKey" : "tedul20250522143015a5uI4", } response = requests.post( "https://api.tosspayments.com/v1/payments/confirm", headers=headers, data=json.dumps(params) ) return str(response) 아 잠시만요 그냥 빈값이네요 toss_secretkey = "test_gsk_docs_OaPz8L5KdmQXkzRz3y47BMw6" userpass = toss_secretkey + ':' encoded_u = base64.b64encode(userpass.encode()).decode() headers = { "Authorization" : "Basic %s" % encoded_u, "Content-Type": "application/json" } params = { "orderId" : sp_ordernum, "amount" : int(amount), "paymentKey" : paymentKey, } response = requests.post( "https://api.tosspayments.com/v1/payments/confirm", headers=headers, data=json.dumps(params) ) return str(response) postman 에서는 403 Forbidden 그냥 이거가 뜨네요
유부장
유부장2w ago
return str(response) 을 하고 있는데.... json 응답을 보려면 res = response.json() print(res) 이런식으로 하는 등 requests 기능에 맞는 응답처리를 하셔야 할것 같고요 Postman 에서는 header 에서 authorization 설정을 잘못 하셨을것 같고요 python requests 로 restful API 호출 및 json 응답 처리에 대해서 조금 더 알아보시면 좋을것 같아요 postman 에서 authorization, header 부분에서 무엇을 설정했는지도 스크린샷으로 전달 해주세요 결제승인은, 결제인증 (카드사 창에서 액션) 완료하고 진행하고 계시는것 맞으시지요?
GloLia
GloLiaOP2w ago
response.json() 하니까 응답이 나오네요 { "code": "ALREADY_PROCESSED_PAYMENT", "message": "\uc774\ubbf8 \ucc98\ub9ac\ub41c \uacb0\uc81c \uc785\ub2c8\ub2e4." }
유부장
유부장2w ago
결제승인은, 결제인증 (카드사 창에서 액션) 완료하고 진행 해야 해요 새롭게 결제 만들어서 진행 하세요
GloLia
GloLiaOP2w ago
네 됩니다. 감사합니다
GloLia
GloLiaOP2w ago
No description
GloLia
GloLiaOP2w ago
username 에 넣었습니다 postman 설정방법도 부탁드립니다.
GloLia
GloLiaOP2w ago
No description
유부장
유부장2w ago
Authorization 을 하거나 Header 를 하거나 둘중에 하나만 하고 Authorization 으로 하려면, username 에는 base64 인코드된 값이 아니라 키 값 그대로 넣으세요

Did you find this page helpful?