fix(ctrip): 优化异常处理和日志记录

- 改进 get_status_code 和 check_bind_status 方法中的错误处理
- 使用 get 方法替代直接索引访问,提高代码健壮性
- 在 check_card 方法中添加更多日志记录,便于调试
This commit is contained in:
danial
2025-03-09 15:52:37 +08:00
parent 204e9317c4
commit 602e113841

View File

@@ -892,56 +892,56 @@ class CtripLogin(object):
def get_status_code(self, res):
try:
result_code = res["ResultInfo"]["ResultCode"]
result_code = res.get("ResultInfo", {}).get("ResultCode")
# 卡号不存在或卡密错误
if result_code == 1005:
self.remarks = "卡号不存在或卡密错误"
self.remarks += "卡号不存在或卡密错误" + "" + str(result_code)
return 105
# 您已连续输错5次请30分钟后再试
if result_code == 10004:
self.remarks = "您已连续输错5次请30分钟后再试"
self.remarks += "您已连续输错5次请30分钟后再试" + "" + str(result_code)
return 115
# 无法获取到有效的用户号!
if result_code == 1003:
self.remarks = "无法获取到有效的用户号!"
self.remarks += "无法获取到有效的用户号!" + "" + str(result_code)
return 113
# 卡号[cardCode]只能输入12位数字
if result_code == 1002:
self.remarks = "卡号[cardCode]只能输入12位数字"
self.remarks += "卡号[cardCode]只能输入12位数字" + "" + str(result_code)
return 105
# 滑块验证失败
if result_code == -10001:
self.remarks = "滑块验证失败"
self.remarks += "滑块验证失败" + "" + str(result_code)
return 115
card_status_code = res["RechargeCardList"][0]["CardStatusCode"]
card_status_code = res.get("RechargeCardList", [])[0].get("CardStatusCode")
face_value = self.format_number(res["RechargeCardList"][0]["FaceValue"])
money = self.format_number(self.price)
# 未激活
if card_status_code == 1001:
self.remarks = "未激活"
self.remarks += "未激活" + "" + str(result_code)
return 104
# 已领用
if card_status_code == 4001:
self.remarks = "已领用"
self.remarks += "已领用" + "" + str(result_code)
return 104
# 已作废
if card_status_code == 6001:
return 104
# 实际充值和卡面值不一致
# TODO: 实际充值和卡面值不一致
if face_value != money:
self.remarks = "实际充值和卡面值不一致"
self.remarks += "实际充值和卡面值不一致" + "" + str(result_code)
return 114
# 已冻结
if card_status_code == 7001:
self.remarks = "已冻结"
self.remarks += "已冻结" + "" + str(result_code)
return 104
# 激活未领用
if card_status_code == 2001:
self.remarks = "激活未领用"
self.remarks += "激活未领用" + "" + str(result_code)
return 2001
self.remarks = "check_card_status未知状态码"
self.remarks = "check_card_status未知状态码" + "" + str(result_code)
return 111
except Exception as e:
self.remarks = "check_card_status异常未知状态码"
@@ -1048,24 +1048,24 @@ class CtripLogin(object):
def check_bind_status(self, res):
try:
result_code = res["ResultInfo"]["ResultCode"]
result_code = res.get("ResultInfo", {}).get("ResultCode")
# 券号密码已经被领用
if result_code == 1:
self.remarks = "券号密码已经被领用"
self.remarks = "券号密码已经被领用" + str(res)
return 104
# 绑卡成功
elif result_code == 0:
self.remarks = "绑卡成功"
self.remarks = "绑卡成功" + str(res)
return 100
# 出现滑块
elif result_code == -10001:
self.remarks = "请求绑卡返回滑块验证失败"
self.remarks = "请求绑卡返回滑块验证失败" + str(res)
return 111
else:
self.remarks = "绑卡check_bind_status未知状态码"
self.remarks = "绑卡check_bind_status未知状态码" + str(res)
return 111
except Exception as e:
self.remarks = "绑卡check_bind_status异常未知状态码"
self.remarks = "绑卡check_bind_status异常未知状态码" + str(res)
return 111
def check_card(self):
@@ -1076,6 +1076,7 @@ class CtripLogin(object):
return 110
card_info_res = self.get_card_info()
code = self.get_status_code(card_info_res)
self.remarks += str(card_info_res)
return self.create_response(status_code=code)
except:
self.remarks = "check_card方法异常未知"