VR前端房源信息对接
接口说明:
客户侧提供房源详情的接口:众趣的VR前端页面展示时,通过调用此接口,查询房源详情信息并展示。
实现原理:
1. 众趣VR展示前端的url中,携带该房源必要的请求参数【如模型id、房源id】。
众趣VR前端url请求模板:
https://beyond.3dnest.cn/lookhouse/index.html?m={}&houseinfo=common&house_id={}&houseinfo_custom={}
url请求参数字段及含义
参数名 | 是否必须 | 参数类型 | 参数描述 |
---|---|---|---|
m | 是 | string | 众趣模型id |
house_id | 是 | string | 众趣房源id |
houseinfo | 是 | string | 值为common |
houseinfo_custom | 否 | 转换后的string | 客户可传入自定义参数 |
houseinfo_custom
参数说明:
客户可自定义请求参数: houseinfo_custom
,将其拼接至众趣前端url中,众趣回调客户接口时会携带该参数。
自定义参数转换规则:
假设客户想自定义参数 param1=a, param2=b, param3=c,则需要按照以下规则进行参数处理
-
构建json对象,然后将其转换为json字符串
-
{"param1": "a", "param2": "b", "param3": "c"}
-
将步骤2的json字符串进行URL编码(encodeURIComponent)
-
%7B%22param1%22%3A%20%22a%22%2C%20%22param2%22%3A%20%22b%22%2C%20%22param3%22%3A%20%22c%22%7D
-
最终
houseinfo_custom
参数对应的值就是步骤4的结果 -
houseinfo_custom=%7B%22param1%22%3A%20%22a%22%2C%20%22param2%22%3A%20%22b%22%2C%20%22param3%22%3A%20%22c%22%7D
-
客户服务端在回调接口中会收到
houseinfo_custom
参数的结果, 先对其进行URL解码操作,然后解析json字符串获取json对象即可。
url示例:
https://beyond.3dnest.cn/lookhouse/?m=9db2d91a_ZWHV_b6f9&houseinfo=common&house_id=FY-23-120919&houseinfo_custom=%7B%22param1%22%3A%20%22a%22%2C%20%22param2%22%3A%20%22b%22%2C%20%22param3%22%3A%20%22c%22%7D
2. 众趣开放平台服务端携带请求参数,请求客户的回调接口。
{{ customer_host_addr }}/?m=9db2d91a_ZWHV_b6f9&houseinfo=common&house_id=FY-23-120919&houseinfo_custom=%7B%22param1%22%3A%20%22a%22%2C%20%22param2%22%3A%20%22b%22%2C%20%22param3%22%3A%20%22c%22%7D
请求方式:
- POST
Headers:
Content-Type : application/json;charset=UTF-8
回调接口的响应示例:
{
"code":1,
"detail_config":0,
"house_info":{
"address_x":"116.423011",
"address_y":"40.046476",
"jump_url":"http://www.baidu.com",
"hangpaiUrl":"http://www.baidu.com",
"hangpai_photo":"http://www.baidu.com",
"menu_info":[
{
"widthStyle":"1",
"name":"总价",
"value":"600"
},
{
"widthStyle":"1",
"name":"单价",
"value":"80000"
},
{
"widthStyle":"1",
"name":"挂牌时间",
"value":"3333333"
},
{
"widthStyle":"1",
"name":"朝向",
"value":"南"
},
{
"widthStyle":"1",
"name":"年代",
"value":"2005"
},
{
"widthStyle":"1",
"name":"楼型",
"value":"塔楼"
},
{
"widthStyle":"1",
"name":"楼层",
" value":"15"
},
{
"widthStyle":"1",
"name":"城市",
" value":"北京"
},
{
"widthStyle":"3",
" name":"贷款",
" value":"满五唯一"
},
{
"widthStyle":"3",
"name":"周边情况",
" value":"超市、健身房、游泳馆、菜市 场"
},
{
"widthStyle":"3",
" name":"装修",
"value":"精装"
},
{
"widthStyle":"2",
"name":"备注",
" value":"业主急售,满五唯一,户型方正, 价格美丽"
},
{
"widthStyle":"1",
"is_show":"1",
"name":"百度地址",
"value":"北苑家园"
}
],
"middleman":"",
"middleman_img":"",
"middleman_tel":"",
"share_desc":"",
"share_img":"",
"share_link":"",
"share_title":"",
"title":"安贞里三区 3 室 1 厅",
"images":[
"www.baidu.com/example.png",
"www.baidu.com/example.png"
]
},
"msg":"请求成功"
}
响应参数字段及含义:
字段名 | 类型 | 是否必传 | 含义 |
---|---|---|---|
msg | string | 是 | 响应状态描述 |
code | int | 是 | 响应状态码 |
house_info | object | 是 | 房源详情数据 |
house_info.address_x | string | 否 | 经度 |
house_info.address_y | string | 否 | 纬度 |
house_info.jump_url | string | 否 | 更多房源地址 |
house_info.hangpaiUrl | string | 否 | 航拍url |
house_info.hangpai_photo | string | 否 | 航拍封面图地址 |
house_info.menu_info | list | 否 | 房源详情展示的具体数据 |
house_info.middleman | string | 否 | 经纪人姓名 |
house_info.middleman_img | string | 否 | 经纪人头像,图片高宽比例 4:3 或者 1:1 |
house_info.middleman_tel | string | 否 | 经纪人电话 |
house_info.share_desc | string | 否 | 微信分享时的描述 |
house_info.share_img | string | 否 | 微信分享时的头像 |
house_info.share_link | string | 否 | 微信分享时的链接地址 |
house_info.share_title | string | 否 | 微信分享时的标题 |
house_info.title | string | 否 | 链接标题 |
house_info.images | list | 否 | 实勘图链接地址 |
消息码code取值及说明:
code值 | 说明 |
---|---|
1 | 成功 |
0 | 失败 |
注意:
1.menu_info 中的 widthStyle 取值表示各个类目不同的宽度样式:
1):表示占据半行
2):表示占据 1 行
3):表示自适应 1 行,短的话占据半行,长的占据 1 行
4):表示最多展示两行
5):表示最多展示三行
2.menu 各元素中的 is_show==1 时表示不显示(没有特殊需求,可以不添加)。
3.menu_info 中的 name 表示各项的标题,value 表示各项要显示的数据。
如下图所示房源信息中的 “居室:5 室 2 厅”中,name 值为’居室’,value 的
值为’5室2 厅’ 。
3. 获取模型详情信息的响应数据,并展示在前端页面。
示例:在页面展示对应的接口各字段