调用Sabre Order Management API创建订单时遇JSON解析错误求助
Sabre Order Management API v1.6 CERT环境调用报错排查
我正在CERT环境测试版本1.6的Order Management API,严格遵循API文档及示例请求发送数据,已解决若干必填字段相关问题。调用端点:https://api.cert.platform.sabre.com/v1/orders/create,目前收到错误响应,请求内容如下,请问是否需要修正请求?
请求内容
{ "party": { "sender": { "travelAgency": { "iataNumber": "12345678", "pseudoCityCode": "F4X0", "agencyId": "CTXX", "name": "McQueen Travel", "typeCode": "OnlineTravelAgency", "agencyContact": { "id": "CI-1", "contactRefusedIndicator": false, "givenName": "Martin", "surname": "Doe", "contactType": "Notification", "phones": [ { "id": "4d6a453d", "number": "1123456789", "countryCode": "44", "cityCode": "DFW", "label": "Agency, Business, Home, Mobile, Cell, Fax, Hotel", "areaCode": "813" } ], "emailAddresses": [ { "id": "4d546b3d", "label": "Payments", "address": "sabre@sabre.com" } ], "postalAddresses": [ { "street": [ "Sample Street" ], "buildingRoom": "19A", "postOfficeBoxCode": "US, MX, EN, AU, CN, ZA", "cityName": "New York City, London, Sydney, Cairo, Rio de Janeiro", "stateProvinceCode": "TX (Texas), JK (England), BJ (Beijing), NSW (New South Wales)", "postalCode": "12345", "countryCode": "US, MX, EN, AU, CN, ZA", "label": "AddressAtOrigin" } ] } } } }, "createOrders": [ { "offerId": "ce79b9bcf4fdmnx6cmqirhdwf0-1", "selectedOfferItems": [ { "id": "ce79b9bcf4fdmnx6cmqirhdwf0-1-1", "passengerRefIds": [ "T1, T2" ], "row": "30", "column": "A" } ] } ], "contactInfos": [ { "id": "CI-1", "contactRefusedIndicator": false, "givenName": "Martin", "surname": "Doe", "contactType": "Notification", "phones": [ { "id": "4d6a453d", "number": "1123456789", "countryCode": "44", "cityCode": "DFW", "label": "Agency, Business, Home, Mobile, Cell, Fax, Hotel", "areaCode": "813" } ], "emailAddresses": [ { "id": "4d546b3d", "label": "Payments", "address": "sabre@sabre.com" } ] } ], "passengers": [ { "citizenshipCountryCode": "US", "contactInfoRefIds": [ "CI-1" ], "age": 30, "ageUnitCode": "Years", "birthdate": "1980-01-20", "titleName": "Mr", "givenName": "MARTIN", "middleName": "GEORGE", "surname": "SMITH", "suffixName": "III", "genderCode": "M", "isAnonymized": false, "additionalAttributes": { "municipalityCode": "321321", "communityCode": "480232" } } ], "createPriceQuote": true, "displayPaymentCardNumbers": false }
响应内容
{ "errors": [ { "code": "020004", "message": "Offer store returned not parsable response. Reason: JSON parsing error" } ] }
问题分析及修正建议
错误码020004指向JSON解析错误,请求中存在多处不符合API规范的内容,必须修正:
- 乘客引用ID格式错误:
createOrders[0].selectedOfferItems[0].passengerRefIds中使用了逗号分隔的字符串"T1, T2",但该字段要求是单个ID的数组;同时请求中仅包含1位乘客,且未指定乘客ID(默认第一位乘客ID为P1),应改为["P1"]。 - 电话标签字段错误:
phones[0].label填写了所有可选枚举值的集合,API要求该字段为单个枚举值(如"Mobile"、"Business"等),需选择符合实际的单个值。 - 地址字段值不合法:
postalAddresses[0]中的postOfficeBoxCode、cityName、stateProvinceCode、countryCode均填写了多个示例值的组合,每个字段应填入单个有效值(如countryCode设为"US",cityName设为"New York City")。 - 重复的联系人ID:
party.sender.travelAgency.agencyContact与contactInfos中的联系人ID均为CI-1,可能导致解析冲突,建议移除其中一处重复的联系人信息,或确保引用逻辑符合API要求。
内容的提问来源于stack exchange,提问作者agyHiguera
相关产品推荐
相关产品推荐

