고은해
고은해7mo ago

curl 또는 file_get_contents을 통한 현금영수증 조회 문의

기존 file_get_contents('https://pg.uplus.co.kr/transfer/cashreceipt.jsp?orderid=' . $ono . '&mid=domeggook&servicetype=SC0100') 을 통해 현금영수증을 조회 했습니다만, 현재 이와 같이 호출 할 때 응답값이 없습니다. 호출 방법이 변경 되었나요?
28 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee7mo ago
해당 페이지에서 redirect 처리 되면서 현금영수증이 표시 되므로 저 방식으로 가져오시면 안되고 브라우저로 열어주셔야 합니다.
고은해
고은해OP7mo ago
기존 저 방식을 통해 다수의 현금영수증을 가져와 한 번에 출력할 수 있도록 제공하고 있었습니다. 브라우저를 통한 제공 밖에 되지 않는다면 한 번에 다수 현금영수증을 출력할 수 있도록 제공하던 저희쪽 서비스는 사용할 수 없다는 말씀이실까요?
Kimoon Lee
Kimoon Lee7mo ago
일단 저방식으로는 안될것 같구요.
Kimoon Lee
Kimoon Lee7mo ago
이렇게 mid 하고 OID 를 넣어서 사용해 보시겠어요? 저 URL 을 호출했을때 redirect 하는 주소입니다.
고은해
고은해OP7mo ago
https://dashboard.tosspayments.com/receipt/mids/domeggook/orders/D57015054/cash-receipt?ref=xpay-v1-redirect 을 브라우저로 열었을 때 정상적으로 현금영수증이 열리나 curl 통신을 통해 받으면 string(7148) "" 와 같습니다
Kimoon Lee
Kimoon Lee7mo ago
혹시 그전에 URL 을 curl 로 호출하셨을때 받으신 응답을 샘플로 보내주실수 있을까요? 그리고 저 curl 로 받아서 출력했다고 하셨는데, 종이에 인쇄를 하시는 건가요?
고은해
고은해OP7mo ago
응답 샘플은 따로 없고 통신 후 현금영수증을 종이 인쇄할 수 있도록 제공합니다. curl 통신을 통한 현금영수증 호출이 불가 하다면 다수의 현금영수증을 브라우저로 한 번에 열 수 있는 방법이 있는지 확인 부탁 드립니다. 한 번에 하나의 영수증만 브라우저로 열리는 것 같은데 저희가 기존 제공하던 다수 영수증 출력 서비스를 비슷하게라도 제공 하려면 방법을 확인 해야 해서요
Kimoon Lee
Kimoon Lee7mo ago
이부분은 한번 확인해 보도록 하겠습니다.
고은해
고은해OP7mo ago
넵 답변 부탁 드립니다~
Ayaan이안
Ayaan이안7mo ago
이게 CSR이라서, 더이상 curl로는 못받으실거에요.
Ayaan이안
Ayaan이안7mo ago
curl로 받더라도, 이런식으로 나올겁니다.
Kimoon Lee
Kimoon Lee7mo ago
@고은해 님 내부에서 확인해 본결과 기존에 제공하던 방식에서 CSR 방식으로 변경해서 제공되는 부분이라 기존방식대로 사용하실 방법이 없어 보입니다. 일단 추가적으로 더 확인해 보도록 하겠습니다. 혹시 해당 화면에 어떻게 진입하는지 아니면 출력 flow 가 어떻게 되는지 자료 같은게 있으실까요?
고은해
고은해OP7mo ago
@냥과장 file_get_contents('https://pg.uplus.co.kr/transfer/cashreceipt.jsp?orderid=' . $ono . '&mid=domeggook&servicetype=SC0100') 로 페이지 호출 하여 응답 받는 html 을 그대로 화면에 표시 합니다.
고은해
고은해OP7mo ago
테스트 중 url을 https가 아닌 http로 했을 경우 캡쳐와 같은 현금영수증 화면이 출력 되는 것을 확인 했습니다. 저희쪽 서비스에 필요한 부분이라 http 접근으로 진행 하고자 하는데 이후 http로 접근하는 것을 차단하거나 해당 페이지를 더 이상 제공하지 않으실 건지 문의 드립니다.
No description
이실장
이실장7mo ago
별도로 확인 중인 내용입니다
Kimoon Lee
Kimoon Lee7mo ago
@고은해 님 다수의 현금영수증을 출력하는 화면을 공유해 주실수 있을까요? 저희가 해당 방식의 화면을 직접 제공할수 있을지 확인해 보려고 합니다.
고은해
고은해OP7mo ago
출력하고자 하는 영수증을 체크 후 출력버튼을 클릭하면 팝업창이 열리고 체크한 주문서의 영수증이 표시 됩니다.
No description
Kimoon Lee
Kimoon Lee7mo ago
네 공유 감사합니다. @고은해 님 기존처럼 서버에서 렌더링해서 내려드리는 부분은 어려울것 같아 php 로 가상브라우저를 이용해 캡쳐하는 방식으로 샘플 코드를 제공 드려 봅니다. 참고 부탁드립니다.
고은해
고은해OP7mo ago
@냥과장 리다이렉트 페이지 확인 중 다음과 같은 api 호출 경로를 확인 했습니다. 저희 쪽에서 주문번호를 제공하면 국세청승인번호를 받아 현금영수증 정보를 조회하는 과정이던데 저희가 직접적으로 토스 api를 호출하여 1 -> 2 -> 3 과정을 진행해도 되는지 확인 부탁 드립니다. 1.주문번호로 transactionId 조회 https://homepage-api-gateway.tosspayments.com/dashboard/api/v1/receipts/cash/search/transactionId?orderId=[주문번호]&merchantAccountId=domeggook 2. TransactionId로 현금영수증 국세청 승인번호 조회 https://homepage-api-gateway.tosspayments.com/dashboard/api/v1/receipts/cash/histories?transactionId=[1을 통해 얻은 국세청승인번호] 3, 국세청 승인번호로 현금영수증 정보 조회 https://homepage-api-gateway.tosspayments.com/dashboard/api/v1/receipts/cash/[국세청승인번호]
Kimoon Lee
Kimoon Lee7mo ago
네 그렇게 사용하셔도 될것 같습니다. 다만 혹시라도 추후에 해당 URL 의 구조가 변할수 있으므로 이부분에 이상있으면 바로 연락주시기 바랍니다.
고은해
고은해OP7mo ago
넵 확인 감사합니다~
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
고은해
고은해OP7mo ago
@냥과장 안녕하세요. 문의 히스토리 때문에 새로 작성하는 대신 댓글로 드립니다. https://homepage-api-gateway.tosspayments.com/dashboard/api/v1/receipts/cash/histories?transactionId=[수정] Array ( [success] => 1 [message] => [result] => Array ( [0] => Array ( [dateTime] => 거래일시 [cashReceiptId] => 영수증구분고유번호 [issueStatus] => 영수증 상태 ( CANCELED 발급취소 / ISSUE_FAILED 발급실패 / COMPLETED 발급완료 / PENDING 국세청 발급요청) ) ) ) https://homepage-api-gateway.tosspayments.com/dashboard/api/v1/receipts/cash/[수정] Array ( [success] => 1 [message] => [result] => Array ( [cashReceiptId] => 영수증구분고유번호 [issueStatus] => 영수증 상태 (발급취소인 경우도 COMPLETED 로 응답 받음) [issueType] => 발급형태 (MERCHANT 자진발급 / BUYER 구매자) [personalKey] => 식별번호 [plainPersonalKey] => ? [issuePurpose] => 용도 (DEDUCTION 소득공제 / PROOF 지출증빙) [receiptNumber] => 국세청승인번호 [usage] => 사용처 [buyerName] => 구매자명 (빈 값으로 응답 받음) [productName] => 상품명 [orderId] => 주문번호 [dateTime] => 거래일시 [taxFreeAmount] => 면세된 금액 [supplyAmount] => 공급가액 [vat] => 부가세 [serviceCharge] => 봉사료 [amount] => 결제총액 [failReason] => 발급실패시 실패사유 [merchant] => Array ( [merchantAccountId] => 상점id [mid] => 상점 [companyName] => 구매자 사업체명 [companyAddress] => 구매자 사업체 주소 [representativeName] => 구매자 사업자명 [businessNumber] => 구매자 사업자번호 [telephoneNumber] => 구매자 연락처 ) [cancelable] => 영수증 취소 가능여부 [issueAvailable] => ? [transactionId] =>transactionId [subId] => ? [payMethod] => ? ) ) 각 링크들에 API 문서가 따로 있는 것 같지 않아 영수증 유형별로 응답값을 확인하여 기재한 응답 결과값입니다. 물음표로 되어 있는 내용은 어떤 결과인지 파악이 되지 않는데 API 문서가 있다면 링크 부탁 드리며 없다면 응답값이 맞는지 여부 및 물음표로 표시 된 값이 의미하는 바를 확인 부탁 드립니다.
Kimoon Lee
Kimoon Lee7mo ago
저희 내부에서 사용하는 URL 이다 보니 별도로 API 문서를 제공하고 있지는 않습니다. plainPersonalKey -> 마스킹 전 식별번호 issueAvailable, subId 는 사용하실 필요 없으시구요. payMethod 는 가상계좌, 계좌이체, 단독 발행 등입니다.
고은해
고은해OP7mo ago
확인 감사합니다~

Did you find this page helpful?