70 lines
2.5 KiB
Python
70 lines
2.5 KiB
Python
# 国际版总体购买流程,包括登录/寻找场次/确定座位/提交订单等操作,支持 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()
|