1. 配置推送地址
订单同步服务需要先在马蜂窝后台配置推送地址才可以进行使用。
开通马蜂窝“开放平台”权限后可以通过马蜂窝 Seller 后台的 “开放平台API”-“开发者配置”
(页面位置:https://b.mafengwo.cn/#/business/openplatform/ota/detail)
当配置成功后订单和退款的状态会自动同步到此地址中,数据推送的结构与马蜂窝开放平台API请求的方式相同,具体请参看 http://open.mafengwo.cn/support/1202.html。
2. 订单同步时机
2.1 订单同步时机说明
马蜂窝将在以下主要订单状态(非订单所有状态)变更时,同步订单信息:
1-创建订单
2-支付成功(待出单)
6-供应商已确认
3-供应商已出单
4-订单已完成
5-订单已关闭
注:上述数字为推送时机标识,非订单状态对应取值;
订单状态流转如下:
注意:
1)“创建订单”变更位“订单已关闭”主要包含两种情况,客人前台主动关闭未支付订单;订单超时(60分钟)支付自动关闭订单;
2.2 订单状态同步数据结构
订单状态同步报文中会包含订单的三个元素:马蜂窝订单ID、马蜂窝消息推送标识(非订单状态)和马蜂窝订单详情。同步请求data字段解密后具体结构如下:
(请求的各个字段含义可以查看 http://open.mafengwo.cn/support/1202.html)
{
"order_id": "2253945201804263941056",
"status": "1",
"info": {
"orderId": "2253945201804263941056",
"bookingPeople": {
"uid": 85398599,
"name": "郗小雨",
"email": "402104156@qq.com",
"phone_area": "0086",
"phone": "18511756138",
"wechat": "xixiaoyuken",
"remark": ""
},
"ctime": "2018-04-26 15:18:28",
"totalPrice": 129,
"paytime": "2018-04-26 15:19:32",
"paymentFee": 129,
"salesId": 2253945,
"salesName": "泰国电子签证",
"otaSalesName": "",
"salesType": 4,
"skuId": 253040,
"otaSkuId": "",
"skuName": "加急+简化资料+拒签部分退套餐",
"skus": [
{
"skuId": 253040,
"otaSkuId": "",
"stockName": "加急+简化资料+拒签部分退套餐"
}
],
"goDate": "0000-00-00",
"endDate": "0000-00-00",
"mdd": "泰国",
"from": "",
"status": {
"orderStatus": 1,
"allRefundFlag": 0,
"refundStatus": 0
},
"items": [
{
"name": "签证费",
"price": 43,
"skuId": 253040,
"id": 255686,
"num": 3,
"total_price": 129,
"payment_fee": 129,
"price_type": 16
}
],
"promotionDetail": {
"reduce_mfw": 0,
"reduce_ota": 0
},
"travel_people": {
"traveler": [
{
"name": "郗小雨",
"family_name": "XI",
"first_name": "XIAOYU",
"gender": "男(male)",
"cellphone": "13238353558",
"traveler_id": "132"
},
{
"name": "高小崇",
"family_name": "GAO",
"first_name": "XIAOCHONG",
"gender": "女(female)",
"cellphone": "13108158023",
"traveler_id": "133"
},
{
"name": "孟小花",
"family_name": "MENG",
"first_name": "XIAOHUA",
"gender": "女(female)",
"cellphone": "18511756138",
"traveler_id": "134"
}
],
"trip": {
"pick_up_place_en": "Beijing chaoyang distirct",
"send_to": " Beijing chaoyang distirct "
},
"ts_address": {
"pick_up_address": "北京市朝阳区恒通创新园",
"return_address": "北京市朝阳区恒通创新园"
},
"address": {
"receiver_name": "高小崇",
"receiver_phone": "13108158023",
"adress": "北京市朝阳区望京SOHO"
}
}
}
}
其中各字段分别表示:
1)order_id: 马蜂窝订单ID
2)status:马蜂窝消息推送标识(非订单状态)
3)info: 订单详情信息(如果需要查询订单的详细信息各字段内容可以通过 http://open.mafengwo.cn/docs/api/130.html 页面查询)
注:订单详情信息添加出行人信息(travel_people)推送,若商家选择产品出行人信息在订单支付后进行填写,则订单支付时无出行人信息,此时travel_people内容包括:
"travel_people": {
"traveler": [],
"trip":{},
"ts_address":{},
"address": {}
}
2.3 订单退款状态介绍
马蜂窝将在以下主要退款单状态变更时,同步退款单信息:
11-已申请退款
12-已确认退款
13-已完成退款
14-已拒绝退款
注:上述数字为推送时机标识,非退款单状态对应取值;
退款状态的变化流程图如下:
注:现在马蜂窝每个订单同一时间只能发起一条退款申请,因此在推送时都是推最新的退款记录,而非所有的退款记录。
2.4 退款状态同步数据结构
退款状态同步信息 data 字段解密后结构为:
{
"order_id": "239086620454575657",
"status": 13,
"info": {
"data": {
"refund_id": 3547,
"order_id": "239086620454575657",
"apply_ctime": "2018-02-28 10:18:55",
"update_time": "2018-02-28 14: 02: 55",
"apply_reason ":21,
"refund_flag": 1,
"refund_remark": [{
"remark": "",
"uid": 3374,
"ctime": "2018-02-28 10:18:56"
}],
"total_price": 169,
"payment_fee": 169,
"refund_fee": 169
"refunded_items": [{
"id": 234456749,
"name": null,
"num": "1",
"refund_sold": 169,
"refund_fee": 169
}],
"refunding_items": [{
"id": 273745749,
"name": null,
"num": 1,
"refund_sold": 169,
"refund_fee": 169
}],
"items": [{
"name": "门票",
"price": 169,
"type": 15,
"id": 234634649,
"num": 1,
"total_price": 169,
"payment_fee": 169,
"remain_num": -1,
"remain_payment_fee": -169
}],
"travelers":[{ "traveler_id":"123123", "name":"小蜂", "cellphone":"13300000001", "id_card":"1101012002301019736", "passport":"11233232", "laissez_passer_tw":"123123123",
"laissez_passer":"123123123" }], "refunded_travelers":[{ "traveler_id":"123123" }], "refunding_travelers":[{ "traveler_id":"123132" }]
},"
}
}
其中各字段分别表示:
order_id: 马蜂窝订单ID
status: 马蜂窝消息推送标识(非退款单状态)
info: 退款信息。各字段含义可以参看 http://open.mafengwo.cn/docs/api/33.html
2.5 出行人信息数据同步结构
马蜂窝订单出行人同步状态包含以下几种状态:
20-用户填写出行人信息
21-商家seller后台更新
反馈消息data 字段结构如下:
{
"order_id": "2201683201804277366854",
"status": 20,
"info": {
"order_id": "2201683201804277366854",
"travel_people": {
"traveler": [{
"name": "马蜂窝",
"family_name": "ma",
"first_name": "feng wo",
"cellphone": "13866971356"
}],
"trip": {
"departure_hotel_name": "RairnJINDA",
"departure_hotel_adress": "Rarin",
"departure_hotel_number": "053303030",
"return_hotel": "RarinJinda",
"hotel_adress": "Rairnairn",
"return_hotel_phone": "053303030"
},
"ts_address": {},
"address": {}
}
}
}
其中各字段分别表示:
order_id:马蜂窝订单ID
status:马蜂窝消息推送标识(非出行人信息状态)
info:出行人信息。各字段含义请参考:http://open.mafengwo.cn/docs/api/122.html
2.6 订单附属状态变更消息同步
状态值:
30-订单颜色变更消息
32-订单补款单(新增、变更)消息
33-订单备注消息
34-订单联系人变更消息
数据格式
{
'order_id' : "订单ID",
'status' : "状态值",
'info' : "附属信息"
}
2.7 消息同步的反馈
供应商在接到同步消息时需要为马蜂窝同步服务反馈同步
为判定供应商是否收到或是否正常处理消息,供应商需要为马蜂窝订单状态同步服务反馈相应的信息以表示供应商处理消息的状态。
加密示例如下:
未加密数据(字符串类型的 JSON 数据):
{"code": 1000}
加密后返回的数据示例(每个供应商加密后的结果不一样):
sgrPsiLCeXGn4QFb7mxWfasBP5BWG7KpjQ5X7/+YNJw=
加密后的数据直接通过 HTTP response 的方式返回给马蜂窝。
具体加密方式参考:http://open.mafengwo.cn/support/1202.html
马蜂窝会接受一下三种情况的反馈:
1. “已收到”反馈(1000)。 马蜂窝同步服务会认为供应商已经成功收到并已处理本条消息,后续不会再重发此消息;
2. “处理异常”反馈(2000)。马蜂窝同步服务会认为消息发送失败,后续会再重发此消息;
3. 网络异常。若网络请求的状态码部位2000则会判定为消息发送失败,后续会再重发此消息;
2.8 消息重发机制
同步服务在获取到消息反馈后,会启动重发机制。重发规则如下:
1)15分钟内失败的订单会每3分钟重推一次。
2)15分钟 - 1天内失败的订单会每小时推送一次。
3)1天以外的订单不会再进行推送。
3. 订单服务注意事项
1) 在使用此服务期间,允许1个月的测试期。测试期期间可以容许同步地址无效或其他测试的情况。超过1个月之后若同步地址无效或多次无法处理同步数据时将会自动停止同步服务。后续若需要再次使用同步服务时需要提交申请。
2) 订单同步服务仅会同步订单同步服务开通后的订单,历史订单暂不支持同步功能。
3) 订单同步服务仅同步“新库存”产生的订单,“旧库存”产生的订单信息和退款信息不会进行同步。
4) 订单同步服务现阶段无法自定义状态推送,如果有需求的话可以提交申请。
4. 常见问题
订单同步延迟
请检查同步地址是否正确,并确定同步处理服务是否正常。如果已经排查没有问题可以联系马蜂窝开放平台同事进行排查。