Henu
Henu15mo ago

계좌이체 수단의 결제 성공 시 반환되는 Payment 객체에 대한 문의입니다.

안녕하세요. PHP 7.* 버전을 사용하여 개발된 가맹점 쇼핑몰에서 결제 승인 및 현금영수증 발급 및 취소 API 사용에 관련하여 문의드립니다. 계좌이체 수단을 선택해서 토스페이먼츠 결제 승인 API 호출 시 Payment 객체를 응답 데이터로 반환 받게되는데요. 가맹점 설정상 현금영수증 사용 여부가 사용으로 설정된 경우 자동으로 현금영수증이 발급되고, Payment 객체 cashReceipt 속성을 통해 그 정보를 확인해 볼 수 있었습니다. 다만, cashReceiptcashReceipts 속성도 있는 것을 확인했지만 이 정보는 null로 반환되고 있는데요. [Q1] 두 속성에 대한 개념적 차이가 있는지 문의드립니다. 가이드 문서를 보면 cashReceipts의 경우 순서가 보장되지 않는 현금영수증 발급 정보 목록(Array)를 의미하는 것 같은데요. 그런데 어떠한 이유로 그 값이 null로 반환되는지 궁금합니다. [Q2] 계좌이체와 동일하게 가상계좌건에 대한 현금영수증 자동 발급도 동일한 시점(입금)에 처리될 것으로 예상이 되서 입금 확인하기(DEPOSIT_CALLBACK) 위한 목적으로 webhook을 사용하고 있습니다. 하지만 webhook을 통해 얻어지는 데이터는 status, secret, createdAt, transactionKey, orderId
현금영수증 발급과 관련된 정보는 확인할 수 없었는데요. 그렇다면 가상계좌건은 가상계좌 발급 시점에 현금영수증이 발급되는 것인지... 만약, 그렇다면 그때 반환되는 Payment 객체안의 cashReceipt 또는 cashReceipts 정보를 활용하면되는지 문의드립니다. 가맹점 쇼핑몰에서는 결제 승인 후 현금영수증 발급 정보를 DB에 저장하기 위한 목적으로 위와 같은 문의를 작성해보았습니다. 확인하신 뒤 답변 부탁드립니다. 감사합니다.
No description
No description
No description
15 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Henu
Henu15mo ago
위 이미지는 가맹점 쇼핑몰에서 결제(구매)건에 대한 현금영수증 발급 정보를 저장하기 위한 목적으로 작성해 본 DDL입니다. (토스페이먼츠 현금영수증 발급 API 응답 데이터를 기반으로 했습니다.)
No description
이실장
이실장15mo ago
null로 온 orderId공부바랍니다. 더불어, 현금영수증은 입금시점에 발급됩니다.
Henu
Henu15mo ago
orderId: 2308047909238255 입니다.
이실장
이실장15mo ago
입금시점에 deposit_callback 이 아닌 payment_status_changed로 확인해보시면 됩니다.
Henu
Henu15mo ago
가상계좌만 입금을 확인하기 위한 목적으로 deposit_callback 이벤트 타입의 웹훅을 사용했었는데요. 알려주신데로 payment_status_changed 이벤트 타입의 웹훅을 사용한다면 모든 결제수단에 대한 입금 시점에 설정한 URL이 무조건 호출되는 것이 맞나요? 만약, 그렇다면 저희쪽에서는 직접 얻어지는 이벤트 본문 정보를 바탕으로 해당 본문의 결제수단이 가상계좌인 것만 따져봐서 처리를 해야하는 것이죠?
No description
이실장
이실장15mo ago
deposit callback으로 받은후 주문번호로 다시 조회해보실 수도있습니다. 공유해주신 주문번호 cashReceipt객체 null이 아닙니다
Kimoon Lee
Kimoon Lee15mo ago
cashReceipts 는 결제 이후에 부분취소가 여러번 반복되는 경우 이전 취소건에 대한 현금영수증을 담게 됩니다.
Henu
Henu15mo ago
아, deposit_callback 이벤트 타입 웹훅에서, 결제 조회 API를 사용하면 되겠군요. 이 부분에 대한 궁금증은 해결되었습니다!
Kimoon Lee
Kimoon Lee15mo ago
라이브에서 부분취소를 어려번 해보시면 정보를 받으실수 있을거에요.
Henu
Henu15mo ago
cashReceipts 속성에 대해서 문의를 한 것이었습니다. 아래 @냥과장 장님께서 별도로 답변 달아주셨네요. 신경써 주신 점 감사드립니다!
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
Henu
Henu15mo ago
만약, 결제 승인 처리 직후 자동 발급된 현금영수증 발급 정보를 가맹점 DB에 저장하고 싶은 경우 위에서 첨부드린 가맹점 DB DDL 이미지에서 transaction_type, customer_identity_number 컬럼에 매칭되는 값이 Pyament.cashReceipt에는 포함되어 있지 않으니, NULL 처리를 할 수 밖에는 없는 것인가요?
Kimoon Lee
Kimoon Lee15mo ago
transaction_type 이 cashreceipt.type 일것 같구요.customer_identity_number 는 저희가 제공하지 않습니다.
Henu
Henu15mo ago
알겠습니다. 다시 생각해보니 굳이 customer_identity_number를 저장할 필요는 없을 것 같네요. 실제로 가맹점 쇼핑몰의 사용자 페이지에서 회원이 구매건에 대한 현금영수증을 조회한다면 receiptUrl 값을 토대로 팝업으로 띄워주든 할 것이기 때문입니다. 감사합니다. 이 포스터는 닫겠습니다.