参数名称 | 类型 | 必填 | 说明 |
---|---|---|---|
orderNo | string | 是 | 订单号 |
refundNo | string | 否 | 退票单号(机票、火车票的退票相关通知才有值,有值时表示退票单的通知。火车票的退票通知时该值是退票的票号,其他为退票单号) |
chaNo | string | 否 | 改签单号(机票、火车票的改签相关通知才有值,有值时表示改签单的通知) |
status | int | 是 | 订单状态(特殊情况:如果是机票的退票单/改签单回调 此值则为机票退票单/改签单的状态(非原订单状态)、 如果是火车票的改签单回调通知,此值就是火车票改签单的状态,火车票没有退票单,如果是火车票的退票结果回调此值就是乘客客票状态ticketStatus【退票成功=21,退票失败=22,已退票未退款 = 23】) |
failMsg | string | 否 | 预订|出票|退票|改签等操作结果失败时给出的失败原因(例如:火车票占位失败时给出的原因:乘客手机号未核验 ;机票出票失败时给出的原因:该舱位已售罄,请选择其他舱位重新预订) |
timestamp | string | 是 | 系统参数:时间戳。格式:yyyy-MM-dd HH:mm:ss |
sign | string | 是 | 系统参数:签名,用来防止请求被伪造或篡改。,签名校验值:MD5_UTF8(orderNo+status+timestamp+secretKey),secretKey为对应产品(机票、火车票、酒店等)请求密钥,开通账户时即可获得。加密结果转为32位小写(签名方法同各产品支付接口sign签名算法) |
订单类型 | 有回调的订单状态值(其他订单状态值要么不回调要么无需关注) | 回调推送数据示例(业务参数部分) | 其他说明 |
---|---|---|---|
机票主订单 | 已出票=4,不能出票待退款=5 ,不能出票已退款 = 7,已取消=99(仅限超时未支付系统自动取消的情况) | orderNo=FO2204268464655967&status=7&failMsg=旅客1为失信被执行人 | 当出票失败时,failMsg为失败原因 |
机票退票单 | 审核不通过交易结束 = 13,已退款交易结束 = 16 | orderNo=FO220524195&refundNo=FO220524195T7424&status=16&failMsg= | 因为是退票单的回调,这里status是机票退票单的状态(详见机票‘获取退票详情接口’refundOrderStatus字段值),不是主订单的状态哦,当退票失败时,failMsg为失败原因 |
机票改签单 | 审核不通过交易结束 = 22, 需补款待支付 = 23,无法改签已退款交易结束 = 26,改签成功交易结束 = 27,改签已取消交易结束 = 28, 改签处理中 = 29 | orderNo=FO220524195&chaNo=FO220524195C7424&status=16&failMsg=只能改同一航司,至少提前2小时的航班 | 因为是改签单的回调,这里status是机票改签单的状态(详见机票‘获取改签详情接口’refundOrderStatus字段值),不是主订单的状态哦,当改签失败时,failMsg为失败原因 |
火车票主订单 | 占位成功=2,占位失败=3,已取消=5 (仅限超时未支付系统自动取消的情况),出票成功=8,出票失败=9 | orderNo=TO22052519261262&status=3&failMsg=没有余票 | 当出票失败时,failMsg为失败原因 |
火车票改签单 | 改签占位成功=31,改签占位失败=32,改签确认出票成功=34,改签确认出票失败=35,改签已取消=37(仅限超时未支付系统自动取消的情况) | orderNo=TO22058456483434&chaNo=TO22058456483434C9110&status=34&failMsg= | 因为是改签单的回调,这里status是火车票改签单的状态(详见火车票‘获取订单详情接口’中trainChaOrder改签单数组中chaOrderStatus字段值),不是主订单的状态哦 |
火车票退票结果 | 退票成功=21,退票失败=22,已退票未退款 = 23 | orderNo=TO22058456483434&refundNo=E569329908103005B&status=22&failMsg=已进站/已出站 | 因为火车票申请退票时不会生成退票单(也就不存在退票单号),refundNo字段的值就是退票旅客的票号(如果是改签后新票的退票,则是改签后新票的票号),status为乘客客票状态(‘获取订单详情接口’响应参数中ticketStatus字段)的值,不是主订单的状态哦。当退票失败时,failMsg为失败原因 |
酒店订单 | 已确认=3,确认失败=4,已完成=5,取消失败=7,已取消=8(订单未支付时用户主动取消的没有回调,因为同步返回取消结果的;订单超时未支付系统自动取消的和预订成功后申请取消成功的都有回调) | orderNo=HO220525459875563&status=4&failMsg=该房型已售罄 | 当确认或退订失败时,failMsg为失败原因 |
门票订单 | 已出票 = 3 ,出票失败 = 4 ,退订失败 = 6 ,已退订 = 7 , 已取消 = 99(仅限超时未支付系统自动取消的情况) | orderNo=SO2205251484646&status=4&failMsg=证件有误 | 当出票或退订失败时,failMsg为失败原因 |
保险订单 | 已出保=3 ,出保失败=4 ,部分出保=5 | orderNo=PO22052320256459&status=3 | orderNo为保险订单号,status为保险订单状态 |
电影票订单 | 已出票=4,出票失败=5,已取消=6,已退票=8,退票失败=9 | orderNo=M23072122435365554&status=5&failMsg=您选择的座位已经被抢先购买 | status为电影票订单状态值,当出票或退票失败时,failMsg为失败原因 |
线下火车票主订单 | 出票成功 = 4 ,出票失败 = 5 ,已取消 = 9(仅限超时未支付系统自动取消的情况) | orderNo=TX25011116315444200&status=5&failMsg=余额不足 | 当出票失败时,failMsg为失败原因 |
线下火车票改签单 | 改签成功 = 3 , 改签失败 = 4 ,改签已取消 = 9(仅限超时未确认改签系统自动取消的情况) | orderNo=TX25011116315444200&chaNo=TX25011116315444200C5029&status=4&failMsg=余票不足 | 因为是改签单的回调,这里status是火车票改签单的状态(详见火车票‘获取订单详情接口’中trainChaOrder改签单数组中chaOrderStatus字段值),不是主订单的状态哦 |
火车票退票结果 | 已退票待退款 = 2 , 退票失败 = 9 | 示例1:orderNo=TO22058456483434&refundNo=170&status=9&failMsg=已进站/已出站 示例2:orderNo=TX25011116315444200&chaNo=TX25011116315444200C5029&refundNo=170&status=2 |
因为火车票申请退票时不会生成退票单(也就不存在退票单号),refundNo字段的值就是退票旅客的乘客ID(passengerID字段)(如果是改签后新票的退票,则是改签单号会有值),status为乘客客票退票单状态(‘获取订单详情接口’响应参数中ticketStatus字段)的值,不是主订单的状态哦。当退票失败时,failMsg为失败原因 |
SUCCESS
1、检查下单请求参数日志中是否传了回调地址(callBackUrl),回调地址漏传了,肯定不会有回调; 2、检查下传的回调地址callBackUrl,外网是否能正确访问,如果提供的是内网地址(如:localhost:或127.0.0.1等)或错误地址(地址不存在),肯定接收不到回调; 3、不是所有订单状态值都会推送回调的,(一般一些无关紧要的状态和商户无需关注的中间态是没有回调的)具体哪些订单状态会发送回调,上面【有回调的订单状态值】已经全部枚举出来了,如果你正在看的订单当前订单状态不在【有回调的订单状态值】中,肯定也不会有回调的; 4、如果以上3步都没有回调,此时大概率是你的回调接收方法报异常了。快速的测试方法就是按照上面请求示例截图方法用postman模拟推送下自己的回调地址,看能否接受到; (ps: 根据以往商户对接经验,99%商户收不到回调的问题都是以上4步骤的其中一步出了问题;如果以上4步排查完后问题仍然没有解决,请再联系平台技术协助解决;)