引言
马蜂窝旅行商城主要包括:自由行(机票+酒店)、当地游、签证、邮轮、跟团游、门票、定制等七大业务线。
本文档主要对门票业务提供支持,包括当前门票业务下的“景区/场馆”、“节庆/嘉年华”、“游乐园”、“温泉票”、“滑雪票”、“通票/年票”、“游船票”、“观光巴士票”八个二级品类;
文档描述了马蜂窝开放平台对于门票业务订单提供的对接解决方案,帮助马蜂窝平台商家快速完成对接,包括用户下单和退款以及日录库存同步。
(注:此文档适用于马蜂窝平台商家业务,不支持马蜂窝自营业务)
1、 以平台商家身份入驻马蜂窝旅行商城;
2、 完成马蜂窝开放平台接入申请,获取parter_id、client_secret、ase_key等接入参数;
3、 参照本文档完成接口开发;
4、 与马蜂窝在线上环境进行接口联调、测试和接口校验工作;
5、 将完成接入系统的信息,添加至马蜂窝开放平台业务;
6、 以商家身份选择已接入系统,正式启用接口对接;
商家:泛指已经入驻马蜂窝旅行商城的平台商家;
接入系统:平台商家使用的ERP系统,可能是商家自行研发系统或者是市面常见三方系统;如若是三方系统想直接接入,可以找寻平台商家提供支持或者联系马蜂窝门票业务申请测试商家账号;
马蜂窝开放平台(MFWOpenDeals)API是基于HTTPs协议来调用的接口。开发者可以通过封装相应的请求以调用对应的API。具体加密的方法和解密的方法可以通过马蜂窝提供的SDK进行加工。以下是对封装请求的详细描述。
根据马蜂窝定义的协议:
1. 加密请求数据(data)
2. 拼接请求基本字段内容
3. 生成签名
4. 发送HTTP请求
5. 得到HTTP相应
6. 解密数据
7. 解析JSON结果
调入接口
环境名称 | 请求地址(HTTPs) | 请求方法 |
正式环境 | https://openapi.mafengwo.cn/deals/rest | “POST (是用 multipart/form-data 编码方式,请求参数包含在请求体(Body)中)” |
调用任何马蜂窝开放平台API的时候均需要携带基础参数,目前支持的公共参数为:
参数名 | 参数类型 | 必填 | 参数描述 |
partnerId | int | 是 | 合作商家ID |
action | string | 是 | API接口的动作名称 |
timestamp | string | 是 | 请求发起的时间戳 |
nonce | string | 是 | 随机串。具体如何产生随机串,请看“产生随机串”小节 |
data | string | 是 | 业务接口请求数据(需要加密),具体如何加密请求数据,请看“加密请求数据”小节 |
sign | string | 是 | 根据基础参数生成的数据签名。具体如何产生签名,请看“生成签名”小节 |
access_token | string | 是 | OAuth token。具体如何获取 Access Token 请看“获取Access Token”小节 |
file_data | file | 否 | 此参数在涉及到文件上传的接口时为必填参数 ,其他接口不用传该参数 |
马蜂窝的所有API请求最开始都需要经过OAuth的认证方式检验请求是否合法。所以所有的合作商家在请求接口之前需要持有在有效期内的 Access Token。
授权URL :https://openapi.mafengwo.cn/oauth2/token
HTTP请求方法: GET
请求参数:
参数名 | 参数类型 | 必填 | 参数值 | 参数描述 |
grant_type | string | 是 | client_credentials | 固定值 |
client_id | string | 是 | 分配给合作商户的ID | |
client_secret | string | 是 | 分配给合作商户的Secret |
正常返回数据:
返回格式:
参数名 | 类型 | 示例 | 描述 |
access_token | string | 3a6312c6713bf06284f561240813b8a3 | AccessToken |
token_type | string | GET | 请求的HTTP方法类型 |
expires_in | string | 7200 | Token 的有效期,单位为秒 |
{"access_token":"3a6312c6713bf06284f561240813b8a3","tokent_ype":"GET","expire_in":7200}
异常返回数据:
返回格式
参数名 | 类型 | 示例 | 描述 |
error | string | invalid_request | 请求认证的异常原因 |
异常列表
异常码 | 描述 |
invalid_request | grant_type 参数异常 |
invalid_client | client_id 参数异常 |
unauthorized_client | 授权失败 |
注:默认 Token 有效期为120分钟(7200秒)
加密请求数据
请求数据加密的原因是因为在合作供应商调用马蜂窝开放平台接口的时候,传递的数据均为敏感数据,如果是以不加密的方式传输的话,很容易被查看到。所以为了数据保密性,我们要求传输的数据也必须为密文传输。
具体的加密规则如下:
1、AES256/CBC/PKCS7Padding 加密;
2、对AES加密数据进行一次base64编码;
生成签名
在数据已经加密完成之后,我们需要对 partnerId、action、timestamp、key、nonce 和 data 字段进行合并,并对汇总后的字符串进行 MD5 加密。加密后的结果为本次请求的签名。
sign = MD5(partnerId + action + timestamp + key + nonce + data) |
注: key值为马蜂窝为合作商户分配的私钥,不做明文传输,请合作商户保管好此私钥。若开发人员不知道此私钥,请联系与马蜂窝开放平台的对接人员。此key可以参看马蜂窝后台“开放平台API”-“开发者配置”-“开发者参数” 中的 ase_key 一项。
经过 md5 加密后的英文字符均应为小写字符,否则验证会不通过。示例:"PHP"字符加密后的结果为 2fec392304a5c23ac138da22847f9b7c
随机串的生成规则为:
1、 长度为16为字符串
2、 字符串仅能包括 大小写英文字符、数字
具体 PHP 的示例如下:
/** * 随机生成字符串 * @param int $iMaxLength * @return string 生成的字符串 */ public function sGetRandomStr($iMaxLength = 16) { $sRandom = ''; $sPol = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; for ($i = 0; $i < $iMaxLength; $i++) { $sRandom .= $sPol[mt_rand(0, 61)]; } return $sRandom; } |
在请求马蜂窝开放平台的接口时,接口请求成功则会返回1000,并返回相应的数据。示例结构如下:
{ "data":[], "errno" : 1000, "message" : "成功" } |
! 返回的数据也会经过加密,加密的方式与请求数据的 data 字段的加密方式相同,具体请看“加密请求数据”小节;
异常列表
但出现异常时,接口会返回异常码。若异常码为5位则为系统错误,其他情况为业务错误,系统错误列表如下:
错误码 | 描述 |
10001 | 签名验证失败 |
10002 | 时间戳异常或缺少时间戳参数 |
10003 | 缺少partnerId |
10004 | partnerId内容异常 |
10005 | 缺少签名参数 |
10006 | 异常签名参数 |
xwxw10007 | 缺少方法名参数 |
10008 | 异常方法名参数 |
10009 | 缺少Access Token参数 |
10010 | 异常Access Token参数 |
10013 | 缺少随机串 |
10014 | 随机串参数异常 |
10015 | 缺少数据字段 |
10016 | 无效数据格式 |
10020 | 未知商户 |
1、 马蜂窝在用户提交订单前会对订单状态进行预校验工作,通过接口进行可订性检查,对于未通过可订性检查的请求,不会完成订单的创建操作;
2、 用户在马蜂窝下单分为创建订单和支付订单两个部分,完成订单创建之后,用户可在1小时内完成订单支付,超时未支付的订单会自动变更为“已关闭”状态;用户也可以选择主动关闭未支付订单;
3、 商家回传的凭证信息(包括凭证码、二维码图片),马蜂窝会在用户端<订单详情>页面对凭证信息进行展示,商家需要按要求回传真实可用的凭证信息;
4、 对于马蜂窝景点门票业务订单,用户选择购买门票出行日期的第二天,订单会变更为“已完成”的状态;
1、支付完成后的马蜂窝订单,目前有两个入口可发起退款,包括:用户在前端详情页提交退款申请和商家在商家后台主动发起退款请求;
2、商家在确认用户退款后,确认的退款单会进入马蜂窝财务退款流程,在完成给用户实际退款后,退款单状态会变更为“已完成”;
注:马蜂窝不会主动操作改变平台商家的订单或者退款单状态,对于通过接口调用完成的操作,会统一标记操作人为“open_system”;
门票订单信息预校验接口
sales.ticket.order.pre.check
门票订单预校验
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
order_info | 订单详情 | |||
travel_people | 出行人信息 |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
data | array | |||
errno | int | 1000 | 异常码 | 请参考那本节异常信息 |
message | string | 订单检验成功 | 异常信息 |
异常码 | 异常描述 | 说明 |
1000 | 订单校验成功 | |
10060030 | 虚拟账户余额不足 | |
10060031 | 账户过期 | |
10060032 | 规则校验失败 | |
10060033 | 库存不足 | |
10060034 | 产品已下线 | |
10060035 | 当前日期没有价格日历 | |
10060036 | 无此产品编码或产品编码错误 | |
10060037 | 该手机号购买数量超过购买限制 | |
10060038 | 该身份证购买数量超过购买限制 | |
10060039 | 该身份证号不可购买此产品 | |
10060043 | 出行人手机号不正确 | |
10060046 | 预订人手机号不正确 |
{ "order_info": { "go_date": "2018-12-01", "sales_id": 2255710, "sales_name": "门票详情页测试02", "ota_sales_name": "", "sales_type": 91, "mdd": "北京", "from": "", "total_price": 0.02, "sku_id": 9685742, "ota_sku_id": "WBSJBM01", "booking_people": { "uid": 37037629, "name": "王小雨", "email": "", "phone_area": "0086", "phone": "12345678912", "wechat": "" }, "skus": [{ "sku_id": 9685742, "stock_name": "成人票", "ota_sku_id": "WBSJBM01" }], "items": [{ "id": "S9685742D15", "sku_id": 9685742, "name": "成人票", "num": 1, "price": 0.02, "total_price": 0.02, "payment_fee": 0.02, "price_type": 5 }] }, "travel_people": [{ "name": "王小雨", "cellphone": "12345678912", "wechat": " wechat ", "time": "2018/11/29", "tourists_number": "1", "luggage": "1", "estimated_travel_date": "2018-11-30" }] } |
{ "errno": 1000, "data": [], "message": "订单检测成功" } |
门票订单信息预校验接口
sales.ticket.order.create
门票订单创建通知接口。马蜂窝创建订单后会为合作商户推送订单创建信息。合作商户可以根据马蜂窝提供的信息生成订单。若订单创建成功后需要返回合作商户的订单唯一标示,后续订单相关操作都会携带此唯一标示。
接口质量要求:连接时长 10S以内,请求处理时长20S以内。若超过此时长则算作订单创建未成功。
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
order_info | 订单详情 | |||
travel_people | Travel People Detail对象 | 出行人信息 |
参数名称 | 二级参数 | 参数类型 | 示例 | 描述 | 备注 |
data | array | ||||
partner_order_id | string | XXX-XXX | 合作商户订单ID | ||
errno | int | 1000 | 异常码 | 请参考那本节异常信息 | |
message | string | 订单检验成功 | 异常信息 |
异常码 | 异常描述 | 说明 |
1000 | 订单校验成功 | |
10060030 | 虚拟账户余额不足 | |
10060031 | 账户过期 | |
10060032 | 规则校验失败 | |
10060033 | 库存不足 | |
10060034 | 产品已下线 | |
10060035 | 当前日期没有价格日历 | |
10060036 | 无此产品编码或产品编码错误 | |
10060037 | 该手机号购买数量超过购买限制 | |
10060038 | 该身份证购买数量超过购买限制 | |
10060039 | 该身份证号不可购买此产品 | |
10060043 | 出行人手机号不正确 | |
10060046 | 预订人手机号不正确 |
{ "order_info": { "order_id": "27430552018120411821900", "go_date": "2018-12-04", "booking_people": { "uid": 65159770, "name": "孙腾达", "email": "", "phone": "13501059879", "phone_area": 86, "wechat": "" }, "sales_id": 2743055, "sales_name": "lxx-公园嘉年华yu", "ota_sales_name": "0", "sales_type": 90, "mdd": "北京", "from": null, "skus": [ { "stock_name": "游乐园 成人票 四日票", "ota_sku_id": "TEST_001", "sku_id": 11405970 }], "total_price": "0.05", "items": [ { "id": "S11405970D15", "name": "门票", "num": 1, "price": 0.05, "total_price": 0.05, "payment_fee": 0.05, "sku_id": 11405970, "price_type": 5 }], "promotion_detail": { "reduce_mfw": 0, "reduce_ota": 0 } }, "travel_people": { "order_id": "27430552018120411821900", "travel_people": { "traveler": [ { "name": "孙腾达", "id_card": "370123198802276210", "id_type": "身份证", "passport": "", "cellphone": "13501059879", "traveler_id": 2557825 }], "trip": {}, "ts_address": {}, "address": {} } } } |
{ "errno": 1000, "data": { "partner_order_id": 12323123 }, "message": "订单创建成功" } |
订单支付通知接口
sales.ticket.order.pay.notice
用户在支付完成后会为合作商户推送用户已支付信息。
合作商户可以采取两种出单的方式:
- 同步出单:通过请求返回值的形式返回出单信息。(本请求的超时时间为30秒,若超时则判断为异步出单。请合作商户控制出单时间。)
- 异步出单:当前请求返回对应的异常信息,并在出单完成后调用异步出单接口进行出单
补偿机制:若推送完订单支付通知后(响应返回“出票中”【10060041】的异常),若10分钟内还没有出单,马蜂窝会主动拉取一次订单出单信息,以完成订单的出单操作。合作商户不得完全依靠此机制处理出单,此补偿机制仅仅为避免小概率网络问题而设定。
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
order_id | string | 2124976201711275278834 | 马蜂窝订单ID | |
partner_order_id | string | XXX-XXX | 合作商户订单ID |
参数名称 | 二级参数名称 | 参数类型 | 示例 | 描述 | 备注 |
data | |||||
partner_order_id | |||||
order_id | |||||
ticket_vouchers | |||||
errno | int | 1000 | 异常码 | 请参考那本节异常信息 | |
message | string | 订单检验成功 | 异常信息 |
异常码 | 异常描述 | 说明 |
1000 | 订单出票成功 | |
10060041 | 出票中 |
{ "order_id": "2124976201711275278834", "partner_order_id": "XXX-XXX", } |
{ "errno": 1000, "data": { "order_id": "2124976201711275278834", "partner_order_id": "XXX-XXX", "ticket_vouchers": [ { "ota_sku_id": 19994060, "sku_id": 19994060, "type": 2, "quantity": 1, "vouchers": [ { "voucher": 92852665, "voucher_pic": "", "status": 1 }] }] }, "message": "出单成功" } |
拉取订单出票信息
sales.ticket.order.voucher.get
订单出票的补偿机制。具体描述请看订单支付通知接口
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
order_id | string | 2124976201711275278834 | 马蜂窝订单ID | |
partner_order_id | string | XXX-XXX | 合作商户订单ID |
参数名称 | 二级参数名称 | 参数类型 | 示例 | 描述 | 备注 |
data | |||||
partner_order_id | |||||
order_id | |||||
ticket_vouchers | |||||
errno | int | 1000 | 异常码 | 请参考那本节异常信息 | |
message | string | 订单检验成功 | 异常信息 |
异常码 | 异常描述 | 说明 |
1000 | 订单出票成功 | |
10060041 | 出票中 |
{ "order_id": "2124976201711275278834", "partner_order_id": "XXX-XXX", } |
{ "errno": 1000, "data": { "order_id": "2124976201711275278834", "partner_order_id": "XXX-XXX", "ticket_vouchers": [ { "ota_sku_id": 19994060, "sku_id": 19994060, "type": 2, "quantity": 1, "vouchers": [ { "voucher": 92852665, "voucher_pic": "", "status": "" }] }] }, "message": "出单成功" } |
订单出票接口
sales.ticket.order.status.update
此接口主要完成两步操作:
1)将订单从“已支付”或“已确认”状态变更为“已出单”状态;
2)回传用于核销的凭证码信息;
注意:
- 调用此接口会直接将订单变更为出单状态,即同时完成“已联系用户并确认库存(12)”,“已发确认单(13)”两步状态变更;若商家需要完成“已联系用户并确认库存(12)”状态的单独变更,请调用已有的接口action:sales.order.status.update
- 现有接口action:sales.order.status.update 仍然支持对景点门票订单更新状态态,但是调用此接口修改订单状态为“已发确认单(13)”时,将无法完成后续的核销流程;
- 请商家传递真实有效的凭证码信息,此凭证码将在前台页向客人进行展示,若商家没有真实有效的凭证码,需按照vouchers的结构回传空字符串;马蜂窝将根据voucher_type的取值向商家返回马蜂窝生成的凭证码,供商家核销使用;
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
order_id | string | 2124976201711275278834 | 马蜂窝订单ID | |
memo | string | 出单备注 | ||
ticket_vouchers | Voucher 对象数组 | 票务信息 |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
data | array | |||
errno | int | 1000 | 异常码 | 请参考那本节异常信息 |
message | string | 订单检验成功 | 异常信息 |
异常码 | 异常描述 | 说明 |
1000 | 订单校验成功 | |
10060001 | 当前订单不是门票订单 | |
10060002 | 参数格式错误 | |
10060003 | 添加核销信息失败 | |
10060004 | 没有操作权限 | |
10060005 | 超过单次更新最大数量限制(30) | |
10060006 | 更新检查失败 | |
10060007 | 更新失败 | |
10060009 | 凭证码类型不正确 | |
10060010 | 凭证码数量有误 | |
10060011 | 凭证码状态有误 | |
10060012 | 订单号与SKU_ID不匹配 | |
10060013 | 传入数量与用户购买数量不匹配 | |
10060014 | SKU_ID重复添加 | |
10060015 | 订单号异常 | |
10060016 | 订单出行日期有误 | |
10060017 | 订单状态异常 | |
10060018 | 没有操作权限 | |
10060019 | 订单账号异常 | |
10060020 | 订单信息有误 | |
10060021 | 核销参数结构错误 | |
10060022 | 核销码长度不能超过20 | |
10060023 | 出单失败(出行人信息待补充) | |
10060024 | 操作频繁,稍后再试 | |
10060025 | quantity数量与购买数量不匹配 | |
10060029 | 核销图片数量异常 |
{ "order_id": "27430552018120411828102", "memo": "邮件已发送", "ticket_vouchers": [ { "sku_id": "11405970", "ota_sku_id": "TEST_001", "type": 1, "vouchers": [ { "status": 1 }, { "status": 1 }] }] } |
{ "errno": 1000, "data": [], "message": "成功" } |
订单完成通知接口
sales.ticket.order.finish.notice
订单完成时会为合作商户推送订单完成通知。此通知与核销状态无关,仅表示马蜂窝订单的关闭状态。
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
order_id | string | 2124976201711275278834 | 马蜂窝订单ID | |
partner_order_id | string | XXX-XXX | 合作商户订单ID |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
data | array | |||
errno | int | 1000 | 异常码 | 请参考那本节异常信息 |
message | string | 订单检验成功 | 异常信息 |
异常码 | 异常描述 | 说明 |
1000 | 订单校验成功 |
{ "order_id": "2124976201711275278834", "partner_order_id": "XXX-XXX" } |
{ "errno": 1000, "data": [], "message": "成功" } |
订单关闭通知接口
sales.ticket.order.close.notice
订单超时未支付时马蜂窝订单会变为“订单关闭”状态,此时会为合作商户推送相关信息
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
order_id | string | 2124976201711275278834 | 马蜂窝订单ID | |
partner_order_id | string | XXX-XXX | 合作商户订单ID |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
data | array | |||
errno | int | 1000 | 异常码 | 请参考那本节异常信息 |
message | string | 订单检验成功 | 异常信息 |
异常码 | 异常描述 | 说明 |
1000 | 订单校验成功 |
{ "order_id": "2124976201711275278834", "partner_order_id": "XXX-XXX" } |
{ "errno": 1000, "data": [], "message": "成功" } |
马蜂窝订单核销通知接口
sales.ticket.consume.notice
此接口用于商家更新订单下凭证码的状态,商家可在门票已使用、订单已完成退款时通过此接口修改凭证码状态。马蜂窝订单将根据凭证码的状态来控制客人在前台的退款单申请;
1) 一码一验订单,用户在提交退款申请时系统将校验每个码的核销状态,SKU可申请退款数量 <= SKU总数量-已使用或已退款的SKU数量;
2) 一码多验订单,直接根据SKU关联的唯一验证码进行识别,如果SKU对应的凭证码状态为 已退款或者已使用,则用户端不可申请退款;
具体请求参数与响应格式请参看:http://open.mafengwo.cn/docs/api/174.html
马蜂窝订单核销一码多验数量状态更新接口
sales.ticket.quantity.update
此接口用于商家更新一码多验门票订单下凭证码的各状态数量,商家可在门票发生次数使用、完成次数退订时通过此接口修改凭证码不同状态的数量;
1) 调用此接口需要回传全量的数量状态,如一个订单5张票,其中4张未使用,1张已使用,则需回传:not_used_quantity: 4, used_quantity: 1, refunded_quantity: 0;
2) 数量状态包括:“未使用”、“已使用”、“已退款”三个状态,状态变更不可逆,如不能将“已退款”变更为“已使用”或“未使用”;
具体请求参数与响应格式请参看:http://open.mafengwo.cn/docs/api/226.html
退款通知接口
sales.ticket.refund.apply
退款的发起时会为合作商户推送申请退款的通知。
推送时机:
- 用户发起退款申请
- 合作商户或订单管理员在后台发起退款申请
!!注意:当前接口并不支持同步退款。若同意或拒绝退款则需要通过调用异步接口。后续会开放同步退款和自动退款的功能。
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
order_id | string | 2124976201711275278834 | 马蜂窝订单ID | |
partner_order_id | string | XXX-XXX | 合作商户订单ID | |
reason | int | 退款原因。 | 商家提交的退款信息客人可见。 20:其他原因 21:行程有变 22:供应商无货了 23:数量排错了 | |
refund_id | int | 123456 | 退款单ID | |
refund_remark | Remark 对象数组 | 退款备注 | ||
total_price | float | 订单总金额 | ||
payment_fee | float | 订单支付金额 | ||
refund_fee | float | 订单退款金额 | ||
refunded_items | Item 对象数组 | 已退购买项数组 | ||
refunding_items | Item 对象数组 | 正在退款购买项数组 | ||
refunded_travelers | Object数组 | 已退出行人数组 | ||
refunding_travelers | Object数组 | 正在退款出行人数组 | ||
items | Item 对象数组 | 购买项数组 | ||
travelers | Traveler People 对象数组 | 出行人数组 |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
data | array | |||
errno | int | 1000 | 异常码 | 请参考那本节异常信息 |
message | string | 订单检验成功 | 异常信息 |
异常码 | 异常描述 | 说明 |
1000 | 订单校验成功 |
{ "order_id": "2255723201811193953448", "partner_order_id": "123456789", "reason": 21, "refund_id": 12315, "refund_remark": [ { "uid": 111, "remark": "申请退款", "ctime": "2017-12-15 12:00:00" }, { "uid": 111, "remark": "申请退款", "ctime": "2017-12-15 12:00:00" }], "total_price": "123.00", "payment_fee": "111", "refund_fee": "222", "refunded_items": [ { "id": 1, "name": "儿童", "num": 1, "refund_sold": 1, "refund_fee ": 1, }], "refunding_items": [ { "id": 1, "name": "儿童", "num": 1, "refund_sold": 1, "refund_fee ": 1, }], "refunded_travelers": [ { "traveler_id": 11489 }], "refunding_travelers": [ { "traveler_id": 11489 }], "items": [ { "id": 1, "name": "儿童", "num": 1, "price": 1, "total_price": 1, "type": 1 }], "travelers": [ { "name": "孙腾达", "id_card": "370123198802276210", "passport": "", "cellphone": "13501059879", "traveler_id": 2557825 }] } |
{ "errno": 1000, "data": [], "message": "成功" } |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
sales_id | int | 2255710 | 马蜂窝产品ID | |
sales_name | string | 门票详情页测试02 | 马蜂窝产品名称 | |
ota_sales_name | string | 大门票+钟表馆+珍宝馆 | 外部产品名称 | |
sales_type | int | 11 | 马蜂窝产品品类 ID | |
mdd | string | 北京 | 目的地名称 | |
from | string | 出发地 | 此字段默认为空 | |
total_price | float | 100 | 订单总金额 | |
sku_id | int | 9685742 | 主库存ID | |
ota_sku_id | string | WBSJBM01 | 主库存外部商家编码 | |
booking_people | 预订人信息 | |||
go_date | string | 2020-10-10 | 使用日期 | |
skus | 全部库存信息 | |||
items | 全部购买项信息 |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
order_id | string | 2124976201711275278834 | 马蜂窝订单ID | |
sales_id | int | 2255710 | 马蜂窝产品ID | |
sales_name | string | 门票详情页测试02 | 马蜂窝产品名称 | |
ota_sales_name | string | 大门票+钟表馆+珍宝馆 | 外部产品名称 | |
sales_type | int | 11 | 马蜂窝产品品类 ID | |
mdd | string | 北京 | 目的地名称 | |
from | string | 出发地 | 此字段默认为空 | |
booking_people | 预订人信息 | |||
skus | 全部库存信息 | |||
items | 全部购买项信息 | |||
total_price | float | 200.0 | 订单总金额 | |
promotion_detail | 订单优惠信息 |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
name | string | 羊儿 | 姓名 | |
cellphone | string | 15811795997 | 手机号 | |
id_card | string | 证件编码 | ||
id_type | string | 身份证 | 证件类型 | 身份证, |
date_of_expiry | string | 2020-04-20 | 证件有效期 | |
gender | string | 男(male) | 性别 |
参数名称 | 子参数名称 | 参数类型 | 示例 | 描述 | 备注 |
order_id | string | 2124976201711275278834 | 订单ID | ||
travel_people | object | ||||
traveler | 出行人信息 | ||||
trip | 行程信息 | ||||
ts_address | 送达地址信息 | ||||
address | 地址信息 |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
uid | int | 37037629 | 马蜂窝用户ID | |
name | string | 王小雨 | 预订人名称 | |
string | 预订人邮箱 | |||
phone | string | 12345678912 | 预订人手机号 | |
string | 12345678912 | 预订人微信 | ||
phone_area | string | 0086 | 预订人手机号区号 |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
sku_id | int | 9685742 | 马蜂窝库存ID | |
ota_sku_id | string | WBSJBM01 | 外部商家编码 | |
stock_name | string | 大门票 | 马蜂窝库存名称 |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
id | string | S9685742D15 | 购买项ID | |
sku_id | int | 9685742 | 马蜂窝库存ID | |
name | string | 门票 | 购买项名称 | |
num | int | 2 | 本项购买项购买个数 | |
price | float | 100 | 本项购买项单价 | |
total_price | float | 200 | 本相购买项总金额 | 未减去优惠的金额 |
payment_fee | float | 200 | 本相购买项总需支付金额 | 减去优惠后的金额 |
type | int | 5 | 购买项类型 |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
reduce_mfw | float | 10.0 | 马蜂窝补贴金额 | 单位:元 |
reduce_ota | float | 5.0 | 商家补贴金额 | 单位:元 |
参数名称 | 二级参数名称 | 参数类型 | 示例 | 描述 | 备注 |
sku_id | int | 4158741254 | 库存ID | ||
ota_sku_id | string | XXX-XXX | 外部商家编码 | ||
type | int | 1 | 票务类型 | 1-一码一验,一个库存对应一个凭证码; 2-一码多验,多个库存对应一个凭证码; | |
quantity | int | 1 | 数量 | 一码多验必须传数量,一码一验可不传 | |
vouchers | array | ||||
status | int | 凭证状态 | 1-未使用 2-已使用 3-已退款 4-已废弃(对应的门票还未消费,但是此凭证码作废了); | ||
voucher | string | 凭证码 | 凭证码长度需不能大于22个字符 | ||
voucher_pic | string | 图片码凭证 | 传图片链接地址, 有多个时,顺序必须与vouchers的顺序一致,马蜂窝将以此顺序与voucher顺序进行一一对应; |
参数名称 | 参数类型 | 示例 | 描述 | 备注 |
remark | string | 备注信息 | ||
uid | int | 马蜂窝用户UID | ||
ctime | string | 添加时间 |