云服务器内容精选

  • 开具发票流程 当前可支持开票的业务范围: A、机票、酒店的因私订单费用 B、火车票套餐费用及因公场景下酒店混合支付的个人费用部分 C、用车因私开票需在订单详情页跳转供应商界面操作申请 第一步:点击“我的”-“开具发票”。 第二步:选择对应的机票、酒店等需要开具电子发票的订单。 第三步:选择发票抬头,输入邮箱,提交确认。 注:也可在订单详情中选择“报销凭证”,按提示完成发票开具。 父主题: 如何开具发票
  • 预算管理 用于企业差旅预算方案的管理,管理员可以对预算方案进行查询、新增、修改、重置等操作。 【新增预算方案】 注:新增预算前需提前将成本中心和受益项目配置完成。 第一步:点击“新增预算方案”按钮。 第二步:输入“预算方案名称”及选择“预算有效期”,点击“确定”按钮。 第三步:返回“预算管理”页面即可看到新增的方案。 【预算方案查询】 选择相应条件值,即可查询对应的预算方案。 【批量导入】管理员可以批量操作整个管理平台的预算方案。 第一步:点击“批量导入”按钮。 第二步:选择对应的信息并上传表格,点击“完成”按钮。
  • 订单管理 对企业已产生的差旅订单进行管理,包括国内机票、国内酒店、火车票、国际机票、国际酒店、用车等业务。以 “国内机票”为例: 路径:平台首页——订单管理——国内机票 【查询】管理员可以通过以下条件,进行订单的查询、重置等操作。 查询可选条件值:“订单编号”、“航班号”、“订单状态”、“起飞机场”、“到达机场”、“乘机人姓名”、“PNR”、“订单日期”、“航空公司”、“是否改期”、“票号”、“起飞日期”、“舱位”、“是否有退票”、“是否关联TR”等。 注:PNR即旅客在航信系统的订座单号,即Passenger Name Record的缩写,它反映了旅客的航程,航班座位占用的数量,及旅客信息。 搜索结果可展示:“订单号”、“订单状态”、“是否退票”、“是否改期”、“订票用户”、“乘机人姓名”、“总航段数”、“起飞机场”、“到达机场”、“PNR”、“航班号”、“舱位”、“起飞时间”、“总价”、“订单时间”、“登录员工工号”、“旅客工号”等。 【导出订单】管理员可对已产生的差旅订单进行导出操作。 第一步:点击右侧的“导出订单”滑动条。 第二步:输入时间值,点击“导出”按钮即可完成订单导出。
  • 通讯录 用于对企业内部差旅人员/部门/组织的信息分组、增减、同步查询等管理操作,管理员可以通过指定条件,对全公司/部门/子部门的人员进行管理及权限设定。 【检索】可以通过“姓名”、“手机”、“工号”、“部门”等条件,对全公司/部门/子部门的人员进行检索及信息维护。 【批量导入/导出】用于批量管理人员清单。 第一步:点击“批量导入/导出”按钮。 第二步:按需选择“批量新增部门”或“批量导出部门”,按照指引完成相关信息填写。 第三步:返回即可看到新增的部门信息,管理员可以对信息进行“维护”、“启用”、“删除”。 【批量新增员工】用于批量快速的完成人员管理,具体步骤请参考→【批量导入/导出】。 【新增员工】用于平台新增员工的管理。 第一步:点击“新增员工”按钮。 第二步:按照提示完成信息填写并保存。
  • 产品优势 源自华为 经验即服务 ● 源自华为,拥有15年+大型企业、全球化、复杂差旅管理成功实践,沉淀出从战略规划到平台建设的完整方法论体系 ● 全球170+国家和地区法律法规、政策遵从、多币种差标管控与结算,沉淀为平台能力,确保企业全球业务合规 AI使能 极致效率 ● 近200个AI场景应用,从审批到预订流程由3天缩短为3分钟 ● 从被动响应向主动采购转变,资源采购效率提升2周 ● 数智化运营,自定义分析维度 ,决策效率提升70% 强大云底座 安全可信 ● 基于华为云构建极致平台安全与隐私保护,遵循可追溯、可恢复、攻不进、看不见、看不懂、拿不走、毁不掉 原则,确保业务零安全风险
  • 方案介绍 华为云数字化差旅,基于华为差旅管理经验总结,定位于企业差旅管理(TMC)市场,拥有15年+大型企业差旅管理经验,致力于把数字化差旅带入每个企业、每个员工。基于华为云云原生基础设施,应用强大的AI+大数据能力,通过构建“全流程、全场景、全数据”的数字化、一体化的数字化差旅管理平台,为客户提供从差旅申请、审批、预订、行中保障、报销及差旅分析的一站式出行服务,助力其实现精益管理、提质增效、安全合规,不断提升员工出行体验,最终使能企业数字化转型成功。
  • 差旅预订及退改 1、为什么不能一次性预订所有行程的机票? 答:公务出差关联一次TR可以预订往返两段行程,预订其它行程,需有对应的TR。 2、可以为同事或领导预订吗? 答:可以,“出差申请”通过审批后,即可开始预订。 3、如何预订“公务出行-机票”? 答:进入慧通差旅APP—公务出行—国内机票,点击出差申请位置,系统自动匹配填写相关信息,进入机票预订页面,选择相应的航班,提交订单,等待出票。 4、预订时,系统找不到相应的城市怎么办? 答:在添加行程信息时,出发城市、目的地城市应填写到地级市,如目的地无机场,则需规划行程,确定中转机场,并依次申请多段行程。 示例:北京到海盐(属于嘉兴市),乘飞机在杭州中转,那么添加行程时应为北京-杭州,杭州-嘉兴。 5、一般机票提前多少天预订折扣会比较低? 答:机票折扣是航空公司随订随售的,无法保证何时价格最低,建议提前1~2周关注航空公司票价动态。 6、行程变动怎么预订? 答:请及时修改申请单,待通过审批后即可进行行程预订。 7、紧急提交“出差申请”没有审批完是否可以进行差旅预订? 答:根据公司差旅规定,员工出差申请需要得到上级审批同意后才可预订;如您接到紧急出差任务,流程未审批通过,可先联系审批人尽快完成审批;来不及的情况下,请及时联系差旅平台相关负责人,暂时开放无出差申请预订权限,后续补交申请单。 8、为什么在平台上,找不到要预订的酒店? 答:可能是以下几种情况: ①在进行酒店搜索时有条件限制(如:差标、公司支付等); ②酒店信息不一致(酒店名称不一致或酒店在平台的所属城市不一致等); ③平台暂未与该酒店合作、该酒店已停业或因其他原因被征用; ④由于该酒店销售渠道特殊性,未在平台开放售卖。 9、酒店取消预订,退款需要多长时间到账? 答:退款将在3-5个工作日返回原支付账号,但受个别银行退款流程影响,请以具体到账时间为准。 10、机票什么情况下不能退票? 答:① 航司的特价机票不可以退票; ② 超过1年有效期的机票不可以退票。 11、机票如何改期? 答:进入慧通差旅-我的-待出行,选择需要改期的机票订单,进入订单详情页,点击“改期”进入页面,选择填写相应的改期信息, 提交改期申请,改期成功后,可在订单详情页查看改期记录。 12、航班被取消,应该怎么办? 答:可在机票订单详情页,进行“改期”或者“退票”操作。 13、在慧通差旅平台预订了带有航司官网logo标签的机票,如何进行退改? 答:需乘机人联系对应的航空公司进行机票退改。
  • 管理员视角 1、临时TR预订是什么意思? 答:“临时TR预订”用于管理员工的预订动作是否需要等待出差申请单审批通过;当允许临时TR预订打开后,员工提交的出差申请单无需审批通过即可预订差旅资源。 2、出差申请有效期浮动范围是做什么的?在哪配置? 答:用于管理员工出差日期前后可浮动天数; 配置路径:登录差旅管理平台-差旅管控-预订管控,找到【出差申请有效期浮动范围】,浮动天数管理员可结合企业情况进行具体配置。 3、如何修改差标? 答:登录差旅管理平台-差旅管控-差标设置选项下进行修改。 4、员工离职后通讯录如何处理? 答:结合企业情况,可以直接删除,也可以保留一定时间再进行删除操作。 5、如何查看实际订单? 答:登录差旅管理平台-订单管理,可以进行“国内酒店”、“国内机票”、“国际机票”、“国际酒店”、“火车票”、“用车”等订单的查看管理,也可以按需导出订单。 6、如何开启短信审批? 答:在“审批管理”-“差旅审批设置”页面找到“审批流程”,在短信审批栏点击“开启”按钮。 7、为部门出差,费用怎么算? 答:“为部门出差”,出差费用归属部门;“为项目出差”,出差费用归属项目。 8、差旅日期重叠校验是做什么的? 答:用来检查员工提交的申请单在相同日期内是否有行程重叠的情况;弱校验只提示不阻拦,强校验则强制校验,满足条件方可进行下一步操作,否则无法操作。 9、如何配置审批流? 答: 第一步:点击“新增”按钮,输入“流程名称”及“适用业务”,保存后即可在“搜索结果”看到新增的审批流程; 第二步:点击 “审批流程”,点击“+”,添加相应的环节(目前可添加:审批人、抄送人、条件分支、任务); 第三步:按需完成“审批人”、“抄送人”、“条件分支”、“任务”配置,保存或发布,此时整个审批流程就配置完成了。 10、怎么增加预算方案? 答:登录差旅管理平台-预算管理模块下,可以新增单个预算方案,也可以批量导入预算方案; 新增预算方案: 第一步:点击“新增预算方案”按钮; 第二步:输入“预算方案名称”及选择“预算有效期”,点击“确定”按钮; 第三步:返回“预算管理”页面即可看到新增的方案。 批量导入预算方案: 第一步:点击“批量导入”按钮; 第二步:选择对应的信息并上传表格,点击“完成”按钮,即可完成批量导入预算方案。 11、数据服务驾驶舱能否导出excel表格? 答:数据服务驾驶舱暂时不支持导出excel表格,差旅管理平台-数据服务模块下提供了基于订单的明细数据表,可作为管理员进一步分析差旅业务情况的基础数据源。 12、如何导出员工的明细报表? 答:登录差旅管理平台-数据服务-明细报表,自定义导出相应的明细报表。 13、如何查看已消费金额? 答:登录差旅管理平台-企业钱包,可以查看企业具体的消费金额及剩余额度。 14、如何配置管理员权限? 答:登录差旅管理平台,通讯录-角色-差旅经理(又叫管理员)-添加成员-搜索成员-保存人员,即可完成管理员权限配置。
  • 其他热门问题 1、为什么公司只能报销房费不能报销杂费? 答:公司承担员工因公出行的标准差旅费用,如:住宿费、早餐费等,对于非住宿费用,如:电话费、上网费、洗衣费等,均由员工自行承担,其中因公发生的合理费用,可根据公司相关规定凭票报销。 2、机票行程单丢失了,急需报销怎么办? 答:纸质行程单只可打印一次,若已遗失无法补打,请及时联系公司差旅负责人咨询报销相关政策。 3、在平台上预订需要获取发票吗? 答:月结不需要获取发票,目前平台机票、火车票、打车已实现月结。 酒店情况略有不同,因部分酒店是到店现付的形式,需要在酒店前台支付房费,再回公司报销。 关于发票获取,请遵循以下原则: ① 如果自己付费了, 需要获取发票报销。 ② 如果在酒店前台付费,需在酒店前台获取发票报销。 4、酒店的差标是按天计算吗? 答:是按天计算。 5、遗失身份证,如何登机? 答:四选其一即可: ● 携带由本人户口所在地公安机关开具身份遗失证明,贴本人近期免冠照片并加盖公章; ● 携带由身份证签发地公安机关出具报失证明,贴本人近期免冠照片并加盖公章; ● 携带本人户口簿或由部队或公安机关所开的工作证、介绍信及派出所的户籍证明; 若上述证件都没有携带,可向就近民航公安机关咨询解决。 ● 在机场遗失证件的旅客,可与机场派出所等有关部门联系查找或办理临时身份证明。 6、差旅标准怎么管控? 答:差标已预设在系统内,系统会根据已通过的申请单管控该目的地相应的差旅标准。 温馨提示:超标预订需发起超标申请,通过后可预订;未发起超标申请,超标不可预订。 7、两地或多地来回出差的情况,能否房间都不退? 答:不能。根据公司差旅文件规定,员工应及时办理退房手续。若因员工未及时办理退房手续,造成同一天内重复的酒店住宿费用,需员工自行承担,公司不予报销。
  • openssl证书生成和使用 以OpenSSL 1.0.2k-fips版本说明,按以下三个步骤: 生成私钥文件rsaprivatekey_pass.pem 生成4096位RSA私匙文件rsaprivatekey_pass.pem,用aes256加密,口令为123456: openssl genrsa -out rsaprivatekey_pass.pem -passout pass:123456 -aes256 4096 注: 私钥文件及其口令企业自己负责保管。 企业用私钥文件进行数据签名。 企业可自行修改口令值123456为其它值,企业侧本地代码读取aes256加密后的本地私钥文件时需要使用此口令解密私钥文件。 如果企业用JAVA语言开发,JAVA语言无法直接读取不了以上命令生成的私钥文件,需将以上命令生成的私钥文件(pem文件名后缀,rsaprivatekey_pass.pem)转换成pkcs8格式(der文件名后缀,rsaprivatekey_pass.der),JAVA代码才能读取私钥文件,格式转换命令如下: openssl pkcs8 -topk8 -inform PEM -outform DER -in rsaprivatekey_pass.pem -out rsaprivatekey_pass.der -nocrypt 生成公钥证书rsapublic_cert.cert 生成公钥证书文件到rsapublic_cert.cert文件,days参数为证书有效天数,可以不加: openssl req -new -x509 -key rsaprivatekey_pass.pem -out rsapublic_cert.cert -days 1095 -passin pass:123456 企业需将公钥证书文件rsapublic_cert.cert证书文件提供给平台服务商。 验证证书有效性(私钥签名,公钥验签) 步骤1:使用私钥对test.txt文本内容进行数字签名,签名输出到test.sig: openssl rsautl -sign -in test.txt -out test.sig -inkey rsaprivatekey_pass.pem -passin pass:123456 步骤2:使用公钥证书对数字签名进行验证,输出到test.vfy: openssl rsautl -verify -in test.sig -out test.vfy -inkey rsapublic_cert.cert -certin 步骤3:检查以上2步输出的test.vfy和test.txt的内容,必须完全一致。
  • 实现RSA签名 Java Java语言实现PSS填充模式,需要依赖第三方开源组件Bouncy Castle,要求JDK 1.8及以上版本。 // 从文件、数据库或自己的密钥管理器中间加载公私钥、证书KeyPairEntry keyPairEntry = KeyStorage.getInstance().getKeyPair("trip");KeyPair keyPair = keyPairEntry.getKeyPair(0);String content = "这是原始数据";// RSA的PSS填充模式,可以使用Bouncy Castle的实现,建议全局只加载一次Security.addProvider(new BouncyCastleProvider());// 使用私钥签名Signature cipher = Signature.getInstance("SHA256withRSA/PSS");cipher.initSign(keyPair.getPrivate());cipher.update(content.getBytes(StandardCharsets.UTF_8));String sign = Hex.toHexString(cipher.sign());// 使用公钥验证签名cipher = Signature.getInstance("SHA256withRSA/PSS");cipher.initVerify(keyPair.getPublic());cipher.update(content.getBytes(StandardCharsets.UTF_8));boolean result = cipher.verify(Hex.decode(sign));System.out.println(result); C# 需要.net framework 4.7及以上版本。 using System;using System.Linq;using System.Diagnostics;using System.Security.Cryptography;using System.Security.Cryptography.X509Certificates;class Hello{ static void Main() { string message = "这是原始数据"; byte[] data = System.Text.Encoding.UTF8.GetBytes(message); // 可以从文件等读取证书公私钥 string privateKey = @"..."; string publicKey = @"..."; string sign; // 使用私钥签名 using (CngKey cngKey = CngKey.Import(Convert.FromBase64String(privateKey), CngKeyBlobFormat.Pkcs8PrivateBlob)) using (RSACng rsa = new RSACng(cngKey)) { sign = Convert.ToHexString(rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pss)); } Console.WriteLine(sign); // 使用公钥验签 X509Certificate2 x509 = new X509Certificate2(Convert.FromBase64String(publicKey)); using (RSA rsa = x509.GetRSAPublicKey()) { bool result = rsa.VerifyData(data, Convert.FromHexString(sign), HashAlgorithmName.SHA256, RSASignaturePadding.Pss); Console.WriteLine(result); } }} 公钥证书 公钥证书.rar
  • 实现AES加密 Java import org.apache.commons.ssl.util.Hex;import java.nio.charset.StandardCharsets;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.spec.GCMParameterSpec;import javax.crypto.spec.SecretKeySpec;public class AES { private static final String AES_GCM_NO_PADDING = "AES/GCM/NoPadding"; private static final int GCM_TAG_LENGTH = 16; private static final int GCM_IV_LENGTH = 12;private static final String AES_KEY = "a5lDXRV5D8hTcDAh";//该字段为平台分配的AESKEY private static final char IV_SEP = ':'; /** * 加密 * * @param plaintext 明文 * @return 密文 */ public static String encrypt(String data, String secret) throws AuthException { byte[] vector = new byte[GCM_IV_LENGTH]; (new SecureRandom()).nextBytes(vector); SecretKey secretKey = new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "AES"); GCMParameterSpec spec = new GCMParameterSpec(GCM_TAG_LENGTH * Byte.SIZE, vector); try { Cipher cipher = Cipher.getInstance(AES_GCM_NO_PADDING); cipher.init(Cipher.ENCRYPT_MODE, secretKey, spec); byte[] encrypted = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8)); // 将随机IV和密文拼接起来 return HexUtils.toHexString(vector) + IV_SEP + HexUtils.toHexString(encrypted); } catch (Exception e) { log.error("encrypt fail", e); throw new AuthException("encrypt fail"); } } /** * 解密 * * @param cipherText 密文 * @return 明文 */ public static String decrypt(String data, String secret) throws AuthException { int idx = data.indexOf(IV_SEP); byte[] vector = HexUtils.fromHexString(data.substring(0, idx)); byte[] encrypt = HexUtils.fromHexString(data.substring(idx + 1)); SecretKey secretKey = new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "AES"); GCMParameterSpec spec = new GCMParameterSpec(GCM_TAG_LENGTH * Byte.SIZE, vector); try { Cipher cipher = Cipher.getInstance(AES_GCM_NO_PADDING); cipher.init(Cipher.DECRYPT_MODE, secretKey, spec); return new String(cipher.doFinal(encrypt, 0, encrypt.length), StandardCharsets.UTF_8); } catch (Exception e) { log.error("decrypt fail", e); throw new AuthException("decrypt body fail"); } }}
  • 出差申请及审批 1、出差需要提前多久填写申请单? 答:在实际出行前都可以填写,通常建议提前1-2天填写并提交,为审批预留一定时间。 2、为什么我账号里看到的“出差申请”无法修改? 答:请确认“出差申请”是否自己账号提交,若是则可以进行修改、删除等操作;若是别人代提交的,则只能查看和预订,若需修改可联系提交人。 3、如工作需要为其他部门出差,申请单怎么填写?费用怎么挂靠过去? 答:请在提交申请单时,费用归属部门选择其他部门,申请单会自动匹配执行该费用归属部门的流程。 4、填写申请单的时候选错了部门/项目怎么办? 答: 请第一时间修改申请单并及时联系公司差旅相关负责人报备。 温馨提示:行程结束后,不可修改。 5、如果出差申请的时间、地点有变化怎么办? 答:请在行程结束前,及时按照实际行程修改申请单。 温馨提示:行程结束后,不可修改。 6、由于工作原因,需要多呆几天,如何处理“出差申请”的日期问题? 答:需要结合企业的配置情况来看: ①若企业浮动天数为1天的:员工可以在国内酒店的搜索页面,选择日期进行酒店续订,支持1天的续住; ②若企业浮动天数大于1天:可以进入“出差申请”列表页面,点击“修改”进入申请之后,再增加目的城市,并选择停留日期即可。 7、申请单提交后由谁审批? 答:由申请单上选择的费用归属部门领导进行审批,后台系统已设定好每位员工对应的审批流程,如遇异常情况请及时联系公司差旅相关负责人。 8、申请单内多个出行人由谁审批? 答:申请单支持多人合并提交,多人申请按照发起人的审批流程执行。 9、审批人为什么看不到我的“出差申请”? 答:请确认是否已经撤回“出差申请”;若撤回,审批人将无法看到。
  • 样例 请求 { "CorpCode":"0008", "Timestamp":"20220517170545", "Version":"3", "DepartureCityInfo":{ "CountryID":"156", "CityID":"156110100", "CityChineseName":"北京" }, "DestinationList":[ { "CountryID":"156", "CityID":"156320100", "CityChineseName":"南京" }, { "CountryID":"156", "CityID":"156440300", "CityChineseName":"深圳" } ]} 响应 { "ResultCode": "0", "Description": "Success", "TravelCostPredictList": [ { "DepartureCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156110100", "CityEnglishName": null, "CityChineseName": "北京" }, "ArrivalCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156320100", "CityEnglishName": null, "CityChineseName": "南京" }, "AirCostPredict": "840.00", "TrainCostPredict": "840.00" }, { "DepartureCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156110100", "CityEnglishName": null, "CityChineseName": "北京" }, "ArrivalCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156440300", "CityEnglishName": null, "CityChineseName": "深圳" }, "AirCostPredict": "488.00", "TrainCostPredict": "488.00" }, { "DepartureCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156320100", "CityEnglishName": null, "CityChineseName": "南京" }, "ArrivalCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156110100", "CityEnglishName": null, "CityChineseName": "北京" }, "AirCostPredict": "584.00", "TrainCostPredict": "200" }, { "DepartureCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156320100", "CityEnglishName": null, "CityChineseName": "南京" }, "ArrivalCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156440300", "CityEnglishName": null, "CityChineseName": "深圳" }, "AirCostPredict": "1099.00", "TrainCostPredict": "1099.00" }, { "DepartureCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156440300", "CityEnglishName": null, "CityChineseName": "深圳" }, "ArrivalCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156110100", "CityEnglishName": null, "CityChineseName": "北京" }, "AirCostPredict": "959.00", "TrainCostPredict": "959.00" }, { "DepartureCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156440300", "CityEnglishName": null, "CityChineseName": "深圳" }, "ArrivalCityInfo": { "CountryID": "156", "CountryEnglishName": null, "CountryChineseName": null, "CityID": "156320100", "CityEnglishName": null, "CityChineseName": "南京" }, "AirCostPredict": "907.00", "TrainCostPredict": "907.00" } ]}
  • 样例 请求 {"CorpCode": "5980","Timestamp": "20220829105534","Version": "3.0","PageIndex": "1","Size": "1","ServiceType": "1"} 响应 { "ResultCode": "0", "Description": "success", "PageIndex": "1", "Size": "1", "Total": "2218", "CityList": [ { "CityId": "156110100", "CityName": "北京", "CityNameEn": "Beijing", "City3Code": "BJS", "Country2Code": "CN", "CountryId": "156", "CountryName": "中国", "CountryNameEn": "China", "CityLevel": "city", "BelongCityId": "156110100", "ProvinceId": "156110000", "ProvinceName": "北京", "ProvinceNameEn": "Beijing" } ], "DataVersion": "20230302"}