euna
euna5w ago

빌링 결제 시 transactionKey값 누락

테스트 키로 빌링 결제를 구현 중인데, https://docs.tosspayments.com/reference#%EC%9E%90%EB%8F%99%EA%B2%B0%EC%A0%9C 를 참고하였을 때 POST /v1/billing/{billingKey}로 요청 시 transactionKey 값도 반환되는 것으로 나와있는데, 실제 요청 시에는 lastTransactionKey만 반환되고 transactionKey는 반환되지 않아 문의드립니다
Response Body: {"mId":"tbill_nonso3zxy","lastTransactionKey":"5BCD356DD931EBEC112BBD919B590E37","paymentKey":"tbill20241003141010zbvE6","orderId":"0HF4RHM64TNQ9","orderName":"베이직 플랜","taxExemptionAmount":0,"status":"DONE","requestedAt":"2024-10-03T14:10:10+09:00","approvedAt":"2024-10-03T14:10:10+09:00","useEscrow":false,"cultureExpense":false,"card":{"issuerCode":"15","acquirerCode":"11","number":"******","installmentPlanMonths":0,"isInterestFree":false,"interestPayer":null,"approveNo":"00000000","useCardPoint":false,"cardType":"체크","ownerType":"개인","acquireStatus":"READY","amount":210000},"virtualAccount":null,"transfer":null,"mobilePhone":null,"giftCertificate":null,"cashReceipt":null,"cashReceipts":null,"discount":null,"cancels":null,"secret":"******","type":"BILLING","easyPay":null,"country":"KR","failure":null,"isPartialCancelable":true,"receipt":{"url":"https://dashboard.tosspayments.com/receipt/redirection?transactionId=tbill20241003141010zbvE6&ref=PX"},"checkout":{"url":"https://api.tosspayments.com/v1/payments/tbill20241003141010zbvE6/checkout"},"currency":"KRW","totalAmount":210000,"balanceAmount":210000,"suppliedAmount":190909,"vat":19091,"taxFreeAmount":0,"method":"카드","version":"2022-11-16","metadata":null}
Response Body: {"mId":"tbill_nonso3zxy","lastTransactionKey":"5BCD356DD931EBEC112BBD919B590E37","paymentKey":"tbill20241003141010zbvE6","orderId":"0HF4RHM64TNQ9","orderName":"베이직 플랜","taxExemptionAmount":0,"status":"DONE","requestedAt":"2024-10-03T14:10:10+09:00","approvedAt":"2024-10-03T14:10:10+09:00","useEscrow":false,"cultureExpense":false,"card":{"issuerCode":"15","acquirerCode":"11","number":"******","installmentPlanMonths":0,"isInterestFree":false,"interestPayer":null,"approveNo":"00000000","useCardPoint":false,"cardType":"체크","ownerType":"개인","acquireStatus":"READY","amount":210000},"virtualAccount":null,"transfer":null,"mobilePhone":null,"giftCertificate":null,"cashReceipt":null,"cashReceipts":null,"discount":null,"cancels":null,"secret":"******","type":"BILLING","easyPay":null,"country":"KR","failure":null,"isPartialCancelable":true,"receipt":{"url":"https://dashboard.tosspayments.com/receipt/redirection?transactionId=tbill20241003141010zbvE6&ref=PX"},"checkout":{"url":"https://api.tosspayments.com/v1/payments/tbill20241003141010zbvE6/checkout"},"currency":"KRW","totalAmount":210000,"balanceAmount":210000,"suppliedAmount":190909,"vat":19091,"taxFreeAmount":0,"method":"카드","version":"2022-11-16","metadata":null}
코어 API | 토스페이먼츠 개발자센터
토스페이먼츠 API 엔드포인트(Endpoint)와 객체 정보, 파라미터, 요청 및 응답 예제를 살펴보세요.
17 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee4w ago
POST /v1/billing/{billingKey}로 요청 시 transactionKey 값도 반환되는 것으로 나와있는데,
라고 하셨는데 어디에 이내용이 있으신건가요? transactionKey 는 최신 API 응답버전에서 deprecated 되었습니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
euna
euna4w ago
카드 자동 결제 승인 응답에 다음과 같이 json으로 표기되어 있습니다. 그러면 결제 승인 후에 transactionKey를 받을 수 있는 방법은 없는 것일까요??
{
"mId": "tosspayments",
"lastTransactionKey": "798780972A6B30495E2DAB97839D1199",
"paymentKey": "y05n91dEvLex6BJGQOVDpgDQ0gDv0QVW4w2zNbgaYRMPoqmD",
"orderId": "a4CWyWY5m89PNh7xJwhk1",
"orderName": "토스 티셔츠 외 2건",
"taxExemptionAmount": 0,
"status": "DONE",
"requestedAt": "2024-02-13T14:54:34+09:00",
"approvedAt": "2024-02-13T14:54:57+09:00",
"useEscrow": false,
"cultureExpense": false,
"card": {
"company": "롯데",
"issuerCode": "71",
"acquirerCode": "71",
"number": "51379200****061*",
"installmentPlanMonths": 0,
"isInterestFree": false,
"interestPayer": null,
"approveNo": "00000000",
"useCardPoint": false,
"cardType": "신용",
"ownerType": "개인",
"acquireStatus": "READY",
"receiptUrl": "https://dashboard.tosspayments.com/receipt/redirection?transactionId=tviva20240213145434Rycs6&ref=PX",
"provider": "토스결제",
"amount": 4900
},
"virtualAccount": null,
"transfer": null,
"mobilePhone": null,
"giftCertificate": null,
"cashReceipt": null,
"cashReceipts": null,
"discount": null,
"cancels": null,
"secret": null,
"type": "BILLING",
"easyPay": null,
"easyPayAmount": 0,
"easyPayDiscountAmount": 0,
"country": "KR",
"failure": null,
"isPartialCancelable": true,
"receipt": {
"url": "https://dashboard.tosspayments.com/receipt/redirection?transactionId=tviva20240213145434Rycs6&ref=PX"
},
"checkout": {
"url": "https://api.tosspayments.com/v1/payments/y05n91dEvLex6BJGQOVDpgDQ0gDv0QVW4w2zNbgaYRMPoqmD/checkout"
},
"transactionKey": "798780972A6B30495E2DAB97839D1199",
"currency": "KRW",
"totalAmount": 4900,
"balanceAmount": 4900,
"suppliedAmount": 4455,
"vat": 455,
"taxFreeAmount": 0,
"method": "카드",
"version": "2022-11-16"
}
{
"mId": "tosspayments",
"lastTransactionKey": "798780972A6B30495E2DAB97839D1199",
"paymentKey": "y05n91dEvLex6BJGQOVDpgDQ0gDv0QVW4w2zNbgaYRMPoqmD",
"orderId": "a4CWyWY5m89PNh7xJwhk1",
"orderName": "토스 티셔츠 외 2건",
"taxExemptionAmount": 0,
"status": "DONE",
"requestedAt": "2024-02-13T14:54:34+09:00",
"approvedAt": "2024-02-13T14:54:57+09:00",
"useEscrow": false,
"cultureExpense": false,
"card": {
"company": "롯데",
"issuerCode": "71",
"acquirerCode": "71",
"number": "51379200****061*",
"installmentPlanMonths": 0,
"isInterestFree": false,
"interestPayer": null,
"approveNo": "00000000",
"useCardPoint": false,
"cardType": "신용",
"ownerType": "개인",
"acquireStatus": "READY",
"receiptUrl": "https://dashboard.tosspayments.com/receipt/redirection?transactionId=tviva20240213145434Rycs6&ref=PX",
"provider": "토스결제",
"amount": 4900
},
"virtualAccount": null,
"transfer": null,
"mobilePhone": null,
"giftCertificate": null,
"cashReceipt": null,
"cashReceipts": null,
"discount": null,
"cancels": null,
"secret": null,
"type": "BILLING",
"easyPay": null,
"easyPayAmount": 0,
"easyPayDiscountAmount": 0,
"country": "KR",
"failure": null,
"isPartialCancelable": true,
"receipt": {
"url": "https://dashboard.tosspayments.com/receipt/redirection?transactionId=tviva20240213145434Rycs6&ref=PX"
},
"checkout": {
"url": "https://api.tosspayments.com/v1/payments/y05n91dEvLex6BJGQOVDpgDQ0gDv0QVW4w2zNbgaYRMPoqmD/checkout"
},
"transactionKey": "798780972A6B30495E2DAB97839D1199",
"currency": "KRW",
"totalAmount": 4900,
"balanceAmount": 4900,
"suppliedAmount": 4455,
"vat": 455,
"taxFreeAmount": 0,
"method": "카드",
"version": "2022-11-16"
}
위에 첨부한 사이트에서 복사해온 내용입니다
이실장
이실장4w ago
No description
이실장
이실장4w ago
릴리즈 노트 | 토스페이먼츠 개발자센터
토스페이먼츠 제품의 새로운 기능과 변경 사항을 알려드려요.
이실장
이실장4w ago
제거된 필드입니다. 왜 받으려고 하시는걸까요?
euna
euna4w ago
그러면 거래를 구분하는 키 값으로 lastTransactionKey를 사용하면 되는걸까요?
이실장
이실장4w ago
구분하시고자 하는 내용을 정확히 한번 설명해주실 수 있을까요? 각 주문을 구분하고 싶으신건가요? 아니면 1개의 주문에서 결제/취소를 구분하고 싶으신건가요?
euna
euna4w ago
결제 취소를 구분하려고합니다! 하나의 주문에서 결제 취소를 구분하여 저장하려합니다!
이실장
이실장4w ago
cancel 배열 안에 transactionKey가 내려가니 해당 값을 확인하시면 될 것 같아요
이실장
이실장4w ago
No description
이실장
이실장4w ago
payment객체 root에는 항상 lastTransactionKey와 transactionKey가 같은 값이 내려갔기 때문에, 의미가 없어서 transactionKey가 삭제되었어요
euna
euna4w ago
그럼 처음 결제 시에는 lastTransactionKey를 저장, 취소를 저장할 때에는 cancels 내의 transactionKey를 사용하여 저장하면 되는 것 맞을까요?
이실장
이실장4w ago
네 맞아요
Kimoon Lee
Kimoon Lee4w ago
취소 요청에 대해 응답 받으실때 lastTransactionKey에 취소때 발생한 transactionKey 값이 넘어오게 됩니다. 그래서 결제때나 취소 때나 API 요청하시고 lastTransactionKey 값만 저장하시면 되요.
euna
euna4w ago
아아 그렇군요 이해했습니다 감사합니다!