updaun
updaun14mo ago

에스크로 배송완료 등록 요청 시 해시 데이터 불일치 오류

안녕하세요. 에스크로 배송완료 등록을 할 때, 기존에는 productid를 보내지 않고 수행했고, 이때는 OK로 정상응답 받다가 productid를 추가하니 해시 데이터가 불일치한다고 에러가 발생합니다. 어떻게 개선할 수 있나요?? FAIL : 실패FAIL : hashdata 불일치 >hashdata : -e46096af80001dab4508f9cd6c3a13fd- >hashdata2 : -828a36d31007a5d65666081e4053f377- >hashdata3 : tmokpohlpih;8641337255;01;202401101910;" [에스크로 사용 함수] def toss_escrow_delivery(self, validated_data): mid = settings.TOSSPAYMENTS_MID mertkey = settings.TOSS_MERT_KEY dlvtype = "01" order_item = validated_data.get("order_item") order = order_item.delivery_item.order order_number = order.order_number orderdate = order.created_at.strftime("%Y%m%d%H%M") # Hashing rcvdate = validated_data.get("rcvdate") rcvname = validated_data.get("rcvname") rcvrelation = validated_data.get("rcvrelation") hashdata = hashlib.md5( f"{mid}{order_number}{dlvtype}{rcvdate}{mertkey}".encode() ).hexdigest() # OK 응답 수신 str_url = f"{self.service_url}?mid={mid}&oid={order_number}&dlvtype={dlvtype}&rcvdate={rcvdate}&rcvname={rcvname}&rcvrelation={rcvrelation}&hashdata={hashdata}&orderdate={orderdate}" # FAIL # str_url = f"{self.service_url}?mid={mid}&oid={order_number}&productid={order_item.id}&dlvtype={dlvtype}&rcvdate={rcvdate}&rcvname={rcvname}&rcvrelation={rcvrelation}&hashdata={hashdata}&orderdate={orderdate}" response = requests.get(str_url) if response.text.strip() == "OK": return response.text.strip() else: raise CustomValidationError( { "data": f"{order_item.product_name} 상품의 배송 완료 등록에 실패하였습니다. 에러 메시지 : {response.text.strip()}" } )
10 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Kimoon Lee
Kimoon Lee14mo ago
tmokpohlpih;8641337255;01;202401101910; 이걸로 MD5 해보면 828a36d31007a5d65666081e4053f377 이 값이 나옵니다. 왜 e46096af80001dab4508f9cd6c3a13fd 이렇게 HASHDATA 를 생성하셨는지 확인해 보시기 바랍니다.
updaun
updaunOP14mo ago
해시 데이터에서 왜 mertkey가 빠질까요?
updaun
updaunOP14mo ago
No description
updaun
updaunOP14mo ago
tmokpohlpih;8641337255;01;202401101910; 라면 mertkey가 빠진 것입니다 🤪
Kimoon Lee
Kimoon Lee14mo ago
아뇨 여기 뒤에 머트키를 넣어서 MD5 로 해싱해보시면 828a36d31007a5d65666081e4053f377 이게 나옵니다.
updaun
updaunOP14mo ago
import hashlib mid = "tmokpohlpih" order_number = "8641337255" dlvtype = "01" rcvdate = "202401101910" mertkey = "our mert key" hashdata = hashlib.md5( f"{mid}{order_number}{dlvtype}{rcvdate}{mertkey}".encode("utf-8") ).hexdigest() assert "e46096af80001dab4508f9cd6c3a13fd" == hashdata hashdata = hashlib.md5( f"{mid}{order_number}{dlvtype}{rcvdate}".encode("utf-8") ).hexdigest() assert "828a36d31007a5d65666081e4053f377" == hashdata 죄송합니다만 제가 했을 때는 mertkey를 넣으면 e46096af80001dab4508f9cd6c3a13fd 이고 넣지않으면 828a36d31007a5d65666081e4053f377 이 나옵니다! 혹시 제 로직이 잘못되었을까요?
Kimoon Lee
Kimoon Lee14mo ago
테스트 쪽에 문제일수도 있어 보이는데 혹시 라이브로 가능하신가요? 아 아니네요. 지금 해당 건이 배송완료 상태라 안되는 것 같은데요. 새로 결제 만들어서 해보실수 있을까요? 가능하면 라이브로 해주시기 바랍니다.
updaun
updaunOP14mo ago
네 늦은시간 응대해주셔서 감사합니다 🙂
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?