ticket-py/yes24Global/globalStart.py
2024-04-30 17:47:01 +08:00

70 lines
2.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 国际版总体购买流程,包括登录/寻找场次/确定座位/提交订单等操作,支持 paypel 付款
from globalLogin import login, get_concert_date_all, get_concert_detail_info, get_user_info
from globalUtils import para_required_for_order, logger
from globalBookTicket import get_seat_all, get_remain_ticket_num, \
constructor_para, lock_seat
import globalVisa
import globalPaypal
import json
config_file = "config.json"
# 加载当前文件
f = open(config_file, 'r', encoding='utf-8')
config_json = json.load(f)
# 用户名和密码配置
user_name = config_json["user_name"]
user_pwd = config_json["user_pwd"]
def main():
login(user_name, user_pwd)
# 48912 有座位信息49302 无余票信息,49358 测试购买
pIdPerf = "49476"
logger.info(f"演唱会ID:{pIdPerf}")
logger.info(f"链接地址: http://ticket.yes24.com/Pages/English/Perf/FnPerfDeail.aspx?IdPerf={pIdPerf}")
date_array = get_concert_date_all(pIdPerf)
for date in date_array:
para_required_for_order["seal_date"] = date
# 开始请求场次数据
concert_detail_info_array = get_concert_detail_info(pIdPerf, date)
for concert_detail_info in concert_detail_info_array:
idTime = concert_detail_info["pIdTime"]
idHall = concert_detail_info["idhall"]
timeoption = concert_detail_info["timeoption"]
start_date = concert_detail_info["start_date"]
para_required_for_order["idHall"] = idHall
para_required_for_order["idPerf"] = pIdPerf
para_required_for_order["timeoption"] = timeoption
logger.info(f"当前座位购买信息idTime: {idTime} idHall:{idHall}")
# 查询剩余的票数量
get_remain_ticket_num(pIdPerf, idTime)
idCustomer = get_user_info(idTime, idHall)
# 查询座位信息
unblock_seat_array = get_seat_all(idHall, idTime, idCustomer)
# 选择一个未被锁定的桌位
unblock_seat = unblock_seat_array[2]
# 锁单
lock_seat(idCustomer, unblock_seat[0], idTime)
# 组装一些必要参数
constructor_para(idTime, unblock_seat, start_date)
payment_type = "VISA"
if payment_type == "VISA":
globalVisa.pay()
elif payment_type == "PAYPAL":
globalPaypal.pay()
# 准备使用 paypal 支付,执行 680 错误
logger.info("订单生成,程序结束")
break
break
main()