本文主要介绍了携程商旅城市匹配的业务逻辑,包括中国及非中国城市的匹配方法。中国城市关注cityId和cityName,匹配时需去掉后缀比对;国外城市还需关注cityEnName,去掉特殊符号后小写比对。存在老城市库与新城市库不一致导致城市显示错误,建议使用新城市库。同时,因系统差异,线上行政区划与国外城市可能存在匹配不上的问题,可手工维护。
商旅城市更新中现已支持滴滴,携程两个商旅平台的城市匹配,本文主要介绍携程商旅城市匹配的具体业务逻辑。
商旅城市更新页面路径:费用核算->商旅设置->商旅城市更新
携程商旅城市匹配逻辑(城市主要分为中国城市以及非中国(国外)城市):
中国城市匹配:
1.1 关注携程报文格式:
携程API接口字段描述:
对于中国我们只需关注图中红框截图的信息,也就是cityId,cityName两个字段,也就是说我们是只匹配到地级市的信息,就是prefectureLevelCityInfoList这个的下面一层,至于prefectureLevelCityInfoList这个里面的countyList(县级城市)、districtList(行政区)等信息我们是不做匹配的,也就可以解释了部分城市无法匹配上的原因,可以根据现场的具体情况,查看未匹配上的城市所在的层级
1.2 匹配逻辑:
若是城市以市、区、县、自治区、自治州结尾,则两边城市截掉对应的后缀后中文名称进行百分百匹配,若是完全相等,则就是匹配上了,则将对应的cityId设置到页面中的携程城市id(全量)
国外城市匹配
2.1 关注报文格式:
报文层级与上述的截图基本一致,需要关注以下接口字段:
国外城市除了关注cityI的,cityName,还需关注cityEnName,countyList(7.0版本新增的匹配字段)等字段
2.2 匹配逻辑:
将两边城市的英文名称,去掉特殊符号,比如空格,City,city,County,county,Area,area,District,district等字符,去掉后则将其转换成小写后进行比较,若是英文名称完全匹配且只匹配到了一个数据,则设置对应的全量城市ID字段,若是匹配到了多个英文城市(在国外,城市的名称并不是唯一的,所以会导致匹配上多条,此时匹配上多条后,系统无法确认哪一条是完全准确的)(7.0版本新增的匹配逻辑),因此则舍弃该条,该城市不做任何操作。若是现场使用的是低于7.0版本,之前的版本不关注countryList集合里面的数据,则几乎都是地级市数据,基本可以确保城市名称唯一,因此若是匹配上了则设置对应的值
携程商旅城市匹配主要问题:
出差申请单同步后城市显示错误:携程商旅那边分为老城市库以及新城市库,老城市库又区分成机场城市库,火车城市库,用车城市库,酒店城市库等,这四个城市库对于每个城市的城市ID 都不一致,申请单同步中,若是想预定机票,则需要对应的机场城市的城市ID,但结果却是在携程商旅那边城市显示为空或者NaN等,这是由于城市ID可能是酒店的城市ID,导致无法匹配,因此现场若是使用携程商旅,建议使用携程的新城市库,则可以保证所有的城市ID一致,同步申请单也可以保证只有一个城市ID。
若是想开启新城市库,商旅设置中的商旅集成设置参数:Ctrip_obtain_full_Interface 需改为true,且执行页面对应的操作按钮,进行城市匹配,同时需要知会携程商旅,让携程商旅开启新城市库。
线上行政区划的城市与商旅城市无法匹配上的问题:由于两边系统的差异,对于城市的叫法也不一致,特别是国外城市,两边系统的翻译存在部分差异,导致无法正常匹配,若是出现匹配不上的问题,可找到携程商旅,询问对应的城市ID后,可手工进行维护至页面中。
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *