tickets
tickets copied to clipboard
通过修改部分代码能够在当前版本可用
首先感谢作者大大 @shiyutim 的代码,在其上略微修改可重新恢复功能,修改部分如下:
-
utils/dm/index.js
中添加getUA方法,用于后续的订单创建、提交等,补充代码如下:
export async function getUA() {
return new Promise((resolve, reject) => {
window.AWSC.use("uab", function(e, i) {
if ("loaded" === e) {
resolve(i.getUA());
} else {
reject(new Error("Failed to load AWS Cognito User Agent Banner"));
}
});
});
}
-
src/components/dm/Product.vue
中的getProductInfo
函数替换为访问请求https://detail.damai.cn/item.htm?id={}
,获取其中的staticData和data,以productInfo.value = {"staticData": staticData, "item": item}
保存,并将getSkuInfo
中的performId
修改为string类型 -
src/components/dm/Product.vue
中的getOrderDetail
同样替换为当前版本的新版链接,这里需要注意两个参数,signKey
从上面修改的productInfo.value
中获取,ua则需要调用上面新增的await getUA()
方法获取 -
src-tauri/src
中的get_info
、get_ticket_detail_res
需修改为对应的新API,其中get_ticket_detail_res
要注意以format!("data={}&bx-ua={}&bx-umidtoken={}", encode(data), ua, umidtoken)
的方式构建body,同时设置.header(reqwest::header::CONTENT_TYPE, "application/x-www-form-urlencoded")
,并通过body(body)发送,避免对body内容自动URI编码,create_order_res
也修改为最新API
整体需要修改的部分已介绍,因为考虑到一些伸手党,所以没有直接放出修改后的版本,如果有问题欢迎讨论交流
再次感谢该项目的作者大大提供的代码~
:thumbsup:
厉害
写完代码突然发现我想抢的票好像只能在app上抢……还在预约抢票阶段的演唱会怎么判断能不能h5抢票呢
写完代码突然发现我想抢的票好像只能在app上抢……还在预约抢票阶段的演唱会怎么判断能不能h5抢票呢
获取商品详情的时候有个判断是否支持该渠道
@shiyutim 请问是哪个参数呢?直接全局搜索“渠道”没有找到,唯一相关的是detailViewComponentMap.item.item.buyBtnText
@shiyutim 请问是哪个参数呢?直接全局搜索“渠道”没有找到,唯一相关的是detailViewComponentMap.item.item.buyBtnText
"buyBtnStatus":"100","buyBtnText":"该渠道不支持购买" 我之前代码里就有,我是根据 buyBtnStatus 为 100 判断的
@shiyutim 请问是哪个参数呢?直接全局搜索“渠道”没有找到,唯一相关的是detailViewComponentMap.item.item.buyBtnText
"buyBtnStatus":"100","buyBtnText":"该渠道不支持购买" 我之前代码里就有,我是根据 buyBtnStatus 为 100 判断的
我现在没到预售的时候,显示的是 "buyBtnStatus":90,"buyBtnText":"预约抢票","buyBtnTip":"提前选票档 抢票更丝滑" 可能到能买的时候才知道了
@shiyutim 请问是哪个参数呢?直接全局搜索“渠道”没有找到,唯一相关的是detailViewComponentMap.item.item.buyBtnText
"buyBtnStatus":"100","buyBtnText":"该渠道不支持购买" 我之前代码里就有,我是根据 buyBtnStatus 为 100 判断的
我现在没到预售的时候,显示的是 "buyBtnStatus":90,"buyBtnText":"预约抢票","buyBtnTip":"提前选票档 抢票更丝滑" 可能到能买的时候才知道了
有些会根据火爆程度,临开售前几天关闭的
@shiyutim 请问是哪个参数呢?直接全局搜索“渠道”没有找到,唯一相关的是detailViewComponentMap.item.item.buyBtnText
"buyBtnStatus":"100","buyBtnText":"该渠道不支持购买" 我之前代码里就有,我是根据 buyBtnStatus 为 100 判断的
我现在没到预售的时候,显示的是 "buyBtnStatus":90,"buyBtnText":"预约抢票","buyBtnTip":"提前选票档 抢票更丝滑" 可能到能买的时候才知道了
有些会根据火爆程度,临开售前几天关闭的
好的 谢谢
求问修改为对应的新API是指哪个呢?
求问修改为对应的新API是指哪个呢? get_ticket_detail_res、get_info这两个新版的链接换了,主要是前面部分不一样了,具体可以在F12里搜这两个,现在是给API的URI部分加了XXX.damai.XXX了
佬,我纯小白只会加getUA方法和改String数据类型,能救救吗T T
大佬,signKey从上面修改的productInfo.value中获取,具体是获取的哪个数据名称呢
我感觉signKey 不是从form的token中获取吗
求问修改为对应的新API是指哪个呢? get_ticket_detail_res、get_info这两个新版的链接换了,主要是前面部分不一样了,具体可以在F12里搜这两个,现在是给API的URI部分加了XXX.damai.XXX了
大佬,我想问一下,signKey这个参数指的是什么,我在productinfo里面没有找到
求问修改为对应的新API是指哪个呢? get_ticket_detail_res、get_info这两个新版的链接换了,主要是前面部分不一样了,具体可以在F12里搜这两个,现在是给API的URI部分加了 XXX.damai.XXX 了
大佬,我想问一下,signKey这个参数指的是什么,我在productinfo里面没有找到
哥们,搞好了吗,能一起交流下不。
求问修改为对应的新API是指哪个呢? get_ticket_detail_res、get_info这两个新版的链接换了,主要是前面部分不一样了,具体可以在F12里搜这两个,现在是给API的URI部分加了 XXX.damai.XXX 了
大佬,我想问一下,signKey这个参数指的是什么,我在productinfo里面没有找到
哥们,搞好了吗,能一起交流下不。
放弃了,没系统学过,创建订单异常。signkey不知道指什么
我也是,前端这些啥也不懂,对着大佬的思路边查边改,代码还没改完,准备编译试试的时候发现yarn依赖里tauri拉取不到。实在是写不明白了。
大佬,signKey从上面修改的productInfo.value中获取,具体是获取的哪个数据名称呢
我感觉signKey 不是从form的token中获取吗
我是从productInfo
这里获取到的signkey这个参数的,上面对getproductInfo的方法更换了url了,换了api,用https://detail.damai.cn/item.htm?id={}
代替的,请求之后里面会有两个div,一个是staticDataDefault
,一个是dataDefault
,signKey
就是dataDefault.t
对应的值
大佬,signKey从上面修改的productInfo.value中获取,具体是获取的哪个数据名称呢
我感觉signKey 不是从form的token中获取吗
不管是哪个里面获取的,其实只要是signKey就行,具体的处理逻辑我也没有处理明白,只是因为在这个页面中发现了这个值,所以通过https://detail.damai.cn/item.htm?id={}
获取得到的
求问修改为对应的新API是指哪个呢? get_ticket_detail_res、get_info这两个新版的链接换了,主要是前面部分不一样了,具体可以在F12里搜这两个,现在是给API的URI部分加了 XXX.damai.XXX 了
大佬,我想问一下,signKey这个参数指的是什么,我在productinfo里面没有找到
哥们,搞好了吗,能一起交流下不。
放弃了,没系统学过,创建订单异常。signkey不知道指什么
我也是,前端这些啥也不懂,对着大佬的思路边查边改,代码还没改完,准备编译试试的时候发现yarn依赖里tauri拉取不到。实在是写不明白了。
拉取不到的话可以考虑换源
佬,我纯小白只会加getUA方法和改String数据类型,能救救吗T T
对代码的整体修改部分并不多,主要都是对接口的替换,以及ts中一些请求要替换不同的请求头,因为我也不怎么会ts,所以改动都是比较简单机械的
@thexiez @sasaafd 感觉大家也不用报什么希望,大麦现在基本上只要是个演唱会都只能app购买,能用h5抢的都是不怎么火爆的,反正我修改完以后要抢票时发现它变成仅app了🙂,但是自己动手可以涨涨代码经验,也还算有帮助
大佬,signKey从上面修改的productInfo.value中获取,具体是获取的哪个数据名称呢 我感觉signKey 不是从form的token中获取吗
我是从
productInfo
这里获取到的signkey这个参数的,上面对getproductInfo的方法更换了url了,换了api,用https://detail.damai.cn/item.htm?id={}
代替的,请求之后里面会有两个div,一个是staticDataDefault
,一个是dataDefault
,signKey
就是dataDefault.t
对应的值
我就发现这一个是请求后端数据的,不会是要修改这里面的api吧,再加上个id={},使得形参又多了一个。直接报错...
大佬,signKey从上面修改的productInfo.value中获取,具体是获取的哪个数据名称呢 我感觉signKey 不是从form的token中获取吗
我是从
productInfo
这里获取到的signkey这个参数的,上面对getproductInfo的方法更换了url了,换了api,用https://detail.damai.cn/item.htm?id={}
代替的,请求之后里面会有两个div,一个是staticDataDefault
,一个是dataDefault
,signKey
就是dataDefault.t
对应的值
我就发现这一个是请求后端数据的,不会是要修改这里面的api吧,再加上个id={},使得形参又多了一个。直接报错...
额,我不太了解,在我的认知里,返回来的数据应该是JSON格式的数据,,只找到了staticdata和item……
大佬,signKey从上面修改的productInfo.value中获取,具体是获取的哪个数据名称呢 我感觉signKey 不是从form的token中获取吗
我是从
productInfo
这里获取到的signkey这个参数的,上面对getproductInfo的方法更换了url了,换了api,用https://detail.damai.cn/item.htm?id={}
代替的,请求之后里面会有两个div,一个是staticDataDefault
,一个是dataDefault
,signKey
就是dataDefault.t
对应的值
我就发现这一个是请求后端数据的,不会是要修改这里面的api吧,再加上个id={},使得形参又多了一个。直接报错...
是的,就是这个api需要修改,返回的东西变成了一个html的格式,然后在对应的.vue文件里修改请求结果的处理方式,分别获取其中的dataDefault和staticDataDefault,在这里传入id就只需要传入对应的itemid就行
大佬,signKey从上面修改的productInfo.value中获取,具体是获取的哪个数据名称呢 我感觉signKey 不是从form的token中获取吗
我是从
productInfo
这里获取到的signkey这个参数的,上面对getproductInfo的方法更换了url了,换了api,用https://detail.damai.cn/item.htm?id={}
代替的,请求之后里面会有两个div,一个是staticDataDefault
,一个是dataDefault
,signKey
就是dataDefault.t
对应的值
我就发现这一个是请求后端数据的,不会是要修改这里面的api吧,再加上个id={},使得形参又多了一个。直接报错...
额,我不太了解,在我的认知里,返回来的数据应该是JSON格式的数据,,只找到了staticdata和item……
访问替换后的新api,获取到的其实就是我们在浏览器直接打开那个链接所对应的源代码,所以并不是JSON格式的,而且也是通过GET请求得到的
大佬,signKey从上面修改的productInfo.value中获取,具体是获取的哪个数据名称呢 我感觉signKey 不是从form的token中获取吗
我是从
productInfo
这里获取到的signkey这个参数的,上面对getproductInfo的方法更换了url了,换了api,用https://detail.damai.cn/item.htm?id={}
代替的,请求之后里面会有两个div,一个是staticDataDefault
,一个是dataDefault
,signKey
就是dataDefault.t
对应的值
我就发现这一个是请求后端数据的,不会是要修改这里面的api吧,再加上个id={},使得形参又多了一个。直接报错...
额,我不太了解,在我的认知里,返回来的数据应该是JSON格式的数据,,只找到了staticdata和item……
像这里,GET获取到这个item页面的源代码,里面有这么两个div,需要的值就在这里面了,然后在vue文件里这么写:
所以其实staticDataDefault就是原先代码中的staticData,dataDefault就是item。
之所以要这么修改,是因为damai换过接口以后,有些值在通过旧接口获取到的detail中已经没有相关key值了,所以只能重新更换接口
大佬,signKey从上面修改的productInfo.value中获取,具体是获取的哪个数据名称呢 我感觉signKey 不是从form的token中获取吗
我是从
productInfo
这里获取到的signkey这个参数的,上面对getproductInfo的方法更换了url了,换了api,用https://detail.damai.cn/item.htm?id={}
代替的,请求之后里面会有两个div,一个是staticDataDefault
,一个是dataDefault
,signKey
就是dataDefault.t
对应的值
我就发现这一个是请求后端数据的,不会是要修改这里面的api吧,再加上个id={},使得形参又多了一个。直接报错...
额,我不太了解,在我的认知里,返回来的数据应该是JSON格式的数据,,只找到了staticdata和item……
像这里,GET获取到这个item页面的源代码,里面有这么两个div,需要的值就在这里面了,然后在vue文件里这么写:
所以其实staticDataDefault就是原先代码中的staticData,dataDefault就是item。 之所以要这么修改,是因为damai换过接口以后,有些值在通过旧接口获取到的detail中已经没有相关key值了,所以只能重新更换接口
大哥,你是不是修改的大麦网页版官网的链接。。。那个基本都得app购买。你修改这个大麦链接的地址https://m.damai.cn/shows/home.html?from=def&spm=a2o71.project.bottom.dgotohome&sqm=dianying.h5.unknown.value
我觉得就是在创建订单的时候,url里面多了一个requeStart参数,需要拿到这个参数,然后放到store里面
好吧,虽然没显示接口异常,但一直弹阿里的验证码拦截。
我觉得就是在创建订单的时候,url里面多了一个requeStart参数,需要拿到这个参数,然后放到store里面
这个参数我直接调用的代码里的t,不过好像没影响,反正我后来就把这个参数去掉了 那个detail页面的我没注意,不过应该都是按照同一个接口调用的,最后测试过可以购票,应该都差不多吧,毕竟哪怕是https://m.damai.cn/shows/home.html?from=def&spm=a2o71.project.bottom.dgotohome&sqm=dianying.h5.unknown.value 这个链接,也同样是仅限APP购买。可能m.daimai.cn里头接口名字不一样,但是结果应该都是一样的,最后都是调用了https://mtop.damai.cn/h5/mtop.damai.trade.order.build.h5/1.0/ 来创建订单的,~但是m.damai.cn我没有找它在哪一步传入的这个signkey的值,可以抓包然后全局搜索一下看看~,我看了一下,调用的是https://mtop/damai.cn/h5/mtop.alibaba.detail.subpage.getdetail/2.0/ 这个接口,返回值中有一个itemBasicInfo .t参数,就是对应的signKey这个值,之后再把这个值传入data一起加密编码就行了
刚刚试了一下,记起来为什么不用这个接口了,因为返回值一直报:非法请求,没找到问题在哪,所以就放弃了,转而用那个detail.html了