토스 페이먼츠 문서에 있는 내용으로 개발 환경에서 테스트하고 있는데, 오류가 발생합니다.

빌링키 발급 관련해서 테스트를 진행하고 있는데, 403 오류가 발생해서 문의 드립니다. POST /v1/billing/authorizations/issue 1. 문서 상에 있는 테스트 키를 사용하고 있습니다. 2. 로컬 환경에서는 문제 없이 동작하는데, 개발 환경에서 문제가 발생합니다. 3. 403 오류임을 확인했으나, 응답 페이로드가 문서에 존재하지 않습니다. 아래는 403 오류 응답의 페이로드 내용입니다. '<html>\r\n' + '<head><title>403 Forbidden</title></head>\r\n' + '<body>\r\n' + '<center><h1>403 Forbidden</h1></center>\r\n' + '</body>\r\n' + '</html>\r\n' 추가적으로 필요한 정보는 바로 제공해드리겠습니다. 해당 문제에 관해서 안내 부탁드립니다.
51 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
김차장
김차장2y ago
1. 참고하고 계시는 저희쪽 docs 페이지 링크 알려주시구요 2. 보내셨던 request body 알려주세요
춤추는망고
춤추는망고OP2y ago
1. 링크는 아래와 같습니다. https://docs.tosspayments.com/reference#authkey%EB%A1%9C-%EC%B9%B4%EB%93%9C-%EC%9E%90%EB%8F%99%EA%B2%B0%EC%A0%9C-%EB%B9%8C%EB%A7%81%ED%82%A4-%EB%B0%9C%EA%B8%89-%EC%9A%94%EC%B2%AD 2. 아래는 요청 관련 정보입니다. { "headers": { "Accept": "application/json, text/plain, /", "Content-Type": "application/json", "Authorization": "Basic dGVzdF9za196WExrS0V5cE5BcldtbzUwblgzbG1lYXhZRzVSOg==", "User-Agent": "axios/1.4.0", "Content-Length": "82", "Accept-Encoding": "gzip, compress, deflate, br" }, "baseURL": "https://api.tosspayments.com", "method": "post", "url": "/v1/billing/authorizations/issue", "data": "{"customerKey":"9fe95f90-7e2b-445c-8320-1e284c32d339","authKey":"bln_RW1qwDLJwMY"}" }
코어 API | 토스페이먼츠 개발자센터
토스페이먼츠 API 엔드포인트(Endpoint)와 객체 정보, 파라미터, 요청 및 응답 예제를 살펴보세요.
Kimoon Lee
Kimoon Lee2y ago
해당 요청이 저희 서버로 들어온 로그가 확인되지 않습니다. 개발서버에서 api.tosspayments.com 으로 통신이 가능한상태인지 확인부탁드릴께요
춤추는망고
춤추는망고OP2y ago
GET /v1/payments/{paymentKey} 요청으로 테스트해봤는데 통신이 되지 않는 것 같습니다. 아래는 테스트에 사용한 코드입니다. // tosspayments 관련 코드 import axios from "axios"; const { TOSS_PAYMENT_SECRET_KEY } = process.env; const request = axios.create({ baseURL: "https://api.tosspayments.com", headers: { Authorization: Basic ${TOSS_PAYMENT_SECRET_KEY}, }, }); export const getPayment = ({ paymentKey }) => request({ method: "GET", url: /v1/payments/${paymentKey} }); // 테스트용 서비스 로직 import { getPayment } from "..."; export default async (req, res) => { const { paymentKey } = req.params; if (!paymentKey) return res.status(400).json({ message: "결제키는 필수 입력값입니다." }); try { const { data: payment } = await getPayment({ paymentKey }); console.log("payment :", payment); res.json(payment); } catch (error) { console.log(error); const { response: { status, data: { message }, }, } = error; res.status(status).json({ message }); } }; 다른 외부 API(알림톡 송신용) 는 문제 없이 동작합니다.
Kimoon Lee
Kimoon Lee2y ago
통신이 안되는건 방화벽 이슈일것이라 네트워크 담당자나 방화벽 담당자에게 문의 드립니다. 알림톡 API 만 허용이 되어 있을수도 있습니다.
김차장
김차장2y ago
귀사 네트워크 담당자분께 아래페이지 안내해주시면 됩니다 https://docs.tosspayments.com/reference/using-api/firewall
방화벽 설정 | 토스페이먼츠 개발자센터
토스페이먼츠 API를 안전하게 사용할 수 있는 방화벽 설정을 알아봅니다. 방화벽은 외부의 신뢰할 수 없는 네트워크가 내부 네트워크에 접근하지 못하도록 하는 보안 시스템입니다. 특정 포트나 IP에서 들어오는 요청을 필터링하거나, 사용자 인증 요청, 프록시, 주소변환기능(NAT) 등의 방법이 있습니다.
Kimoon Lee
Kimoon Lee2y ago
이부분 입니다.
Kimoon Lee
Kimoon Lee2y ago
No description
춤추는망고
춤추는망고OP2y ago
지난 주 금요일까지는 정상적으로 동작했었고, 이후에 인프라 구성을 변경한 이력이 없기에 해당 문제는 아닌 것 같습니다. 서버 도메인은 devapi.semutong.com 을 사용 중인데, 해당 도메인으로 요청된 이력이 있는지 확인해봐주실 수 있나요?
Kimoon Lee
Kimoon Lee2y ago
저희쪽은 타 가맹점이 문제 없이 사용중이고 현재 서버 오류도 없는 상태입니다. 해당서버가 외부로 나갈때 사용하는 public ip 를 알려주실수 있을까요? 혹시라도 해당 IP 에서 공격패턴이 인입된 경우 저희가 IP 를 차단할수 있습니다.
김차장
김차장2y ago
말씀해주신 서버가 devexpert.semutong.com 와는 다른 서버인가요? 여기에서는 정상통신하시는 것으로 보입니다. devexpert.semutong.com 도메인으로 들어온 거래가 있구요
춤추는망고
춤추는망고OP2y ago
devexpert.semutong.com 에서는 requestBillingAuth 로 authKey 만 발급받고, 나머지 동작은 전부 서버에서 처리하고 있어요.
김차장
김차장2y ago
authKey 를 받으시는 단계는 backend 통신이 아니라서... 방화벽과 무관하겠네요
춤추는망고
춤추는망고OP2y ago
authKey 발급까지는 문제가 없는데, authKey 발급 이후에 빌링키를 요청하는 단계에서 막힙니다.
김차장
김차장2y ago
935f_2023/08/22/10:17:09_1_100 이 주문번호로 결제 테스트도 하신거같은데요 여기는 어떤 서버일까요?
춤추는망고
춤추는망고OP2y ago
해당 요청은 로컬 서버에서 테스트한 내용이에요
김차장
김차장2y ago
authKey 발급이후에 빌링키 요청하는 단계가 backend 통신입니다 방화벽에서 막힐 수 있는 내용이구요 로컬에서는 방화벽을 안타고 통신해서 되시는거같네요 서버 to 서버가 안되는 상태라고 봐주심됩니다
Kimoon Lee
Kimoon Lee2y ago
이전까지 동일 서버에서 잘되셨고 가맹점측 인프라나 방화벽 설정이 변경되신게 없다면 저희쪽에서 막았을 가능성도 있습니다.
춤추는망고
춤추는망고OP2y ago
지난주 금요일 이전까지는 스케쥴러로 정기결제 테스트하는 것까지 됐었는데, 금요일 10시 테스트에서 문제가 발생한 이후로 계속 현상이 유지되고 있어요..
Kimoon Lee
Kimoon Lee2y ago
아까 요청드린대로 devapi.semutong.com 의 public IP 를 알려주세요. 해당 IP 의 차단 내역이 있는지 확인해 보겠습니다.
김차장
김차장2y ago
| 금요일 10시 테스트에서 문제 이 부분을 더 자세하게 설명해주실 수 있을까요?
춤추는망고
춤추는망고OP2y ago
1. 현재 서버 전체 구성은 serverless, express 로 구성되어 있습니다. 2. REST API 동작을 수행하는 index handler, 정기 결제 동작을 수행하는 scheduler handler 로 구성되어 있습니다. 3. 정기 결제 동작을 수행하는 scheduler handler 에서는 /v1/billing/${billingKey} 로 요청을 보내, 정기 결제를 수행합니다. 4. 고객 유입 스케일이 파악되지 않아 1000건 기준으로 정기 결제 테스트를 진행하고 있었습니다. 5. 지난 주 금요일(8/18) 정기 결제 시점에서 일부 결제 작업을 처리하던 도중 문제가 발생했습니다. 문제가 발생했던 결제 작업에 사용되었던 orderId 중 일부는 아래와 같습니다. - 2023/08/18/10:00:41_706_100 - 2023/08/18/10:00:41_591_100 - ... public ip 는 당장 확인이 힘들어서, 식사 후 오후 중으로 최대한 빠르게 공유드리겠습니다.
김차장
김차장2y ago
설명 감사합니다. public ip 수신 후 저희쪽 내용도 점검해보겠습니다.
이실장
이실장2y ago
@ensia96 빌링키 발급에 사용하던 키가 test key셨죠?
Kimoon Lee
Kimoon Lee2y ago
저희 이력을 확인해 보니 메일 아침 테스트 키로 5초에 1000건 테스트 빌링 결제를 시도하는 것이 확인되어 테스트 환경에대한 공격으로 판단하고 해당 IP 를 차단했습니다. 테스트 키를 이용해서 5초에 1000건을 동시에 매일 빌링하시는 이유가 있으실까요?
춤추는망고
춤추는망고OP2y ago
네 맞아요. 고객 유입 스케일이 파악되지 않아서, 예상되는 최대 수치로 테스트하고 있었어요. 원래 중간에 스케일을 줄였어야 하는데, 업무 진행하다가 까먹어서 매일 요청을 보내게 됐습니다.
Kimoon Lee
Kimoon Lee2y ago
techsupport@tosspayments.com 으로 조치 사항을 간단하게 보내주실수 있을까요? 그 내용이 있어야 IP 해제가 가능합니다.
춤추는망고
춤추는망고OP2y ago
메일 보냈습니다.
Kimoon Lee
Kimoon Lee2y ago
차단 해제 했습니다. 확인 부탁드립니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
춤추는망고
춤추는망고OP2y ago
다른 업무 때문에 답장이 늦어져서 죄송합니다. 아직 제대로 적용되지 않은 것 같아요. 메일로 관련 내용 공유드렸습니다. 확인 부탁드립니다.
김차장
김차장2y ago
네 확인중입니다 혹시 각 서버에서 telnet api.tosspayments.com 443 으로 테스트 가능하실까요?
춤추는망고
춤추는망고OP2y ago
서버리스 인프라여서 조금 힘들 것 같은데요.. ㅜㅠ
김차장
김차장2y ago
네.. 메일로 전달주신 18.64~ 로 시작되는 IP는 막혀있지 않습니다 저희쪽 API 통신시도시에 받으시는 http 응답이 403으로 똑같으신가요?
춤추는망고
춤추는망고OP2y ago
일단 NAT 게이트웨이에 있는 public ip 주소는 13.124. 으로 시작해요 네
이실장
이실장2y ago
추가로 PG 계약은 완료되셨을까요?
춤추는망고
춤추는망고OP2y ago
라이브키 발급된거 보면 추가 계약도 완료된 것 같아요.
김차장
김차장2y ago
저희쪽 해제가 덜되어서 조치중입니다 지금 다시 확인가능하실까요? @ensia96 시간되실때 확인부탁드려요
춤추는망고
춤추는망고OP2y ago
앗; 기다리는 동안 다른 작업하다가 바로 못 봤네요;; 바로 할게요 죄송합니다!
김차장
김차장2y ago
괜찮습니다 🥰
춤추는망고
춤추는망고OP2y ago
아직 403 오류가 발생하네요.. axios error 객체도 메일로 첨부해드릴게요
김차장
김차장2y ago
네, 확인을 더 해봐야겠군요.. 메일 부탁드립니다
춤추는망고
춤추는망고OP2y ago
좀전에 보냈습니다
김차장
김차장2y ago
넵 메일 잘 받았습니다. 확인하고 다시 알려드릴게요 @ensia96 다시 해제했습니다. 확인부탁드려요! 🙏
춤추는망고
춤추는망고OP2y ago
오 됐어요! 감사합니다 ㅜㅠㅠㅜㅜㅠㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜ
김차장
김차장2y ago
👍 다행입니다
이실장
이실장2y ago
help
춤추는망고
춤추는망고OP2y ago
감사합니다 ㅜㅠ 오늘도 고생 많으셨고, 올해 남은 기간도 좋은 일만 가득하시길 바라요 ㅜㅠ

Did you find this page helpful?