H5子服务可调用能力
在H5的子服务的开发过程中,云城app也提供了一些可以方便使用的设备能力供子服务开发者调用。
1.1.调用三方微信支付宝支付
云城app中支持h5调用三方支付,完成h5支付功能。现已支持支付宝及微信支付,具体支付处理逻辑由h5子服务自身实现。
说明:
支付宝h5支付请按照支付宝官方开发文档进行接入即可。
微信h5支付请按照微信官方开发文档接入,并在h5子服务版本发布的入口地址填写时拼接上 referer="h5子服务于微信开放平台商户申请H5时提交的授权域名"
,云城app已按照微信官方开发文档介绍于webview中调用微信h5支付时,将会自动配置Referer请求头。微信h5支付后,iOS回调自动打开浏览器加载回调页面未跳回云城app,详细解决办法可参考F.A.Q。

1.2.拨打电话
云城app实现了标准的h5拨打电话功能,在h5页面中想要调用手机的拨号功能,只需按照h5标准书写即可。如:
<a href="tel:10086">致电中国移动</a>
2云城支付
调用方法名:payOrder
2.1 入参
{
"merchantNo": "商户号",商户号:指在云城注册颁发的商户号
"tradeOrderNo": "业务订单号",业务订单号,1-32位,只能为英文、数字、下划线
"amount": "交易金额",订单金额(0.01-20000),保留2位小数
"goodsDesc": "订单title",商品描述,最多20个字符
"expireTimeMinute": "支付超时时间",整数,订单过期时间,单位分钟,不低于5分钟,不高于1440分钟
"notifyUrl": "支付回调",支付回调的地址,支付完成后,会回调这个地址//不是必填
"orderRemark": "订单备注",订单备注,可以为null,最长50个字符//不是必填
"guaranteeType": "交易担保类型",交易担保类型
1、如果为空,则使用商户默认交易担保类型
2、如果不为空,则必须是‘PLATFORM_GUARANTEE’或者‘NON_GUARANTEE’二者中的一个。不区分大小写//不是必填
"orderSource": "订单来源"订单来源目前,【丰e足食】创建的订单需要传//不是必填
}
参数 |
类型 |
说明 |
merchantNo |
|
商户号 |
tradeOrderNo |
|
业务订单号,1-32位,只能为英文、数字、下划线 |
amount |
|
订单金额(0.01-20000),保留2位小数 |
goodsDesc |
|
商品描述,最多20个字符 |
expireTimeMinute |
整数 |
订单过期时间,单位分钟,不低于5分钟,不高于1440分钟 |
notifyUrl |
|
支付回调的地址,支付完成后,会回调这个地址//不是必填 |
orderRemark |
|
订单备注,可以为null,最长50个字符//不是必填 |
guaranteeType |
|
交易担保类型 1、如果为空,则使用商户默认交易担保类型2、如果不为空,则必须是‘PLATFORM_GUARANTEE’或者‘NON_GUARANTEE’二者中的一个。不区分大小写//不是必填 |
orderSource |
|
订单来源目前,【丰e足食】创建的订单需要传//不是必填 |
2.2 出参 方法名:payResult
{
"code": "0(发起支付),-1(参数验证失败)",
"msg": "支付提示(参数验证和支付完成都有)",
"data": {
"payStatus": "具体的支付状态:0(成功),-1(失败),-2(取消)",
"payMsg": "支付完成时的提示",
"requestParams": {
"merchantNo": "商户号",
"tradeOrderNo": "业务订单号",
"amount": "交易金额",
"goodsDesc": "订单title",
"expireTimeMinute": "支付超时时间",
"notifyUrl": "支付回调",
"orderRemark": "订单备注",
"guaranteeType": "交易担保类型",
" orderSource ": "订单来源"
}
}
}
参数 |
类型 |
说明 |
payStatus |
|
0(成功),-1(失败),-2(取消) |
payMsg |
|
支付完成时的提示 |
requestParams |
|
订单详情 |
merchantNo |
|
商户号 |
tradeOrderNo |
|
业务订单号 |
amount |
|
交易金额 |
goodsDesc |
|
订单title |
expireTimeMinute |
|
支付超时时间 |
notifyUrl |
|
支付回调 |
orderRemark |
|
订单备注 |
guaranteeType |
|
交易担保类型 |
orderSource |
|
订单来源 |
3.公共能力
云城app除了对应给子服务提供设备能力以外,还具有自身的平台能力,按照平台能力的调用规则,即可使用云城对应的平台能力。
3.1.卡片消息跳转对应子服务
此能力关联REST接口服务号向用户推送消息,按照接口描述调用,用户可以收到对应的卡片消息推送如下:

点击卡片消息可以跳转到对应的子服务入口页(参考:服务创建&发布下的版本发布)中,如按照推送消息示例中参数进行接口调用,现关注route字段中的value值,由path开始为向子服务中传递的三个参数:path, mobilePhone, name
"route": {
"value": "iCloudCity://weex/dae4245d-3/path=index.js&mobilePhone=13530986300&name=zs"
}
可以看到如下图在子服务中可以通过解析url值获取到通过卡片消息传递进来的参数及服务自带的环境变量参数,由此子服务开发者可以通过获取到的不同参数来做对应的处理,如跳转进入次级页面,调用子服务中的其他功能等。

4.获取子服务的token、openid、refreshToken
调用方法名:getServiceTokenInfo
4.1 入参
json
{"appkey":"appkey"}
4.2 出参 方法名:serviceTokenInfoResult
json
{
"access_token":"fdfsfs3242"
"refresh_token":"fdsfsdfsdfs"
"openid":"fdsfsdfsdfsdfs"
}
5 开始定位,持续定位
调用方法名:startLocation
5.1 入参
无
5.2 出参
方法名(注意:这里回调方法名Android和iOS不一致)
平台 |
方法名 |
Android |
locationResult |
iOS |
getLocationS |
{
"latitude":"324434.22"
"longitude":"123132.33"
"altitude":"高度"
"address":"位置"
"country":"国家"
"province":"省"
"city":"城市"
"district":"城区-南山区"
"street":"街道-高新南十道"
"number":"街道门牌号"
"POIName":"当前位置的POI名称"
"AOIName":"当前位置所处AOI名称"
"citycode" :"城市编码"
}
参数 |
类型 |
说明 |
latitude |
|
纬度 |
longitude |
|
经度 |
address |
|
目标地址名称 |
country |
|
国家 |
province |
|
省 |
city |
|
城市 |
district |
|
城区-南山区 |
street |
|
街道-高新南十道 |
number |
|
街道门牌号 |
POIName |
|
当前位置的POI名称 |
AOIName |
|
当前位置所处AOI名称 |
citycode |
|
城市编码 |
6.结束定位
调用方法名:stopLocation
6.1 入参
无
6.2 出参 方法名:serviceTokenInfoResult
无
7.获取一次定位,返回立即关闭定位
调用方法名:getLocation
7.1 入参
无
7.2 出参
方法名(注意:这里回调方法名Android和iOS不一致)
平台 |
方法名 |
Android |
locationResult |
iOS |
getLocationS |
{
"latitude":"324434.22"
"longitude":"123132.33"
"altitude":"高度"
"address":"位置"
"country":"国家"
"province":"省"
"city":"城市"
"district":"城区-南山区"
"street":"街道-高新南十道"
"number":"街道门牌号"
"POIName":"当前位置的POI名称"
"AOIName":"当前位置所处AOI名称"
"citycode" :"城市编码"
}
参数 |
类型 |
说明 |
latitude |
|
纬度 |
longitude |
|
经度 |
address |
|
目标地址名称 |
country |
|
国家 |
province |
|
省 |
city |
|
城市 |
district |
|
城区-南山区 |
street |
|
街道-高新南十道 |
number |
|
街道门牌号 |
POIName |
|
当前位置的POI名称 |
AOIName |
|
当前位置所处AOI名称 |
citycode |
|
城市编码 |
查询支付结果
调用方法名:queryPayResult
8.1 入参
{
"merchantNo": "商户号:指在云城注册颁发的商户号",
"tradeOrderNo": "业务订单号"
}
参数 |
类型 |
说明 |
merchantNo |
|
商户号:指在云城注册颁发的商户号 |
tradeOrderNo |
|
业务订单号 |
8.2 出参 方法名:queryPayCallback
{
"msg": "查询支付结果成功",
"code": "0",
"data": {
"res": 0,
"requestParams": {
"tradeOrderNo": "TMarvin302",
"merchantNo": "MCH100001"
},
"payInfo": {
"merchantNo": "MCH100001",
"orderAmount": "0.01",
"orderNo": "TMarvin302",
"orderSubject": "参加万科乐泡活动",
"payMethod": "ALIPAY",
"paymentAmount": "0.01",
"paymentNo": "104608452226191360",
"paymentTime": "20191016141230",
"res": 0,
"status": 1
}
}
}
参数 |
类型 |
说明 |
merchantNo |
|
商户号:指在云城注册颁发的商户号 |
tradeOrderNo |
|
业务订单号 |
payInfo |
|
支付详情 |
orderAmount |
|
金额 |
orderNo |
|
订单编号 |
orderSubject |
|
订单名称 |
payMethod |
|
调用银行卡支付,需配置此参数,参与签名, 固定值 (需要签约《无线银行卡快捷支付》才能使用) |
paymentAmount |
|
支付金额 |
paymentNo |
|
支付号 |
paymentTime |
|
支付时间 |
9.扫码和识别本地二维码
调用方法名:.scanQRCode
9.1 入参
无
9.2 出参 方法名:onScanCallback
{
res = 1;
result = "http://icloudcityuat.vanke.com/gardener-test-server/platformservice/qrCodeInfo/v2/qrcode?codeType=icloudcityApi&code=d5024d79689840fbadc239fa9ffddbb0";
}
{
"msg": "扫码成功、扫码失败、扫码取消",
"code": "0、1、-1",
"data": {
"result": "扫码结果内容",
}
}
10.地图导航
调用方法名:gotoMap
10.1 入参
{"latitude":"12313.44"
"longitude":"34234.33"
"address":"长江"}
参数 |
类型 |
说明 |
latitude |
|
纬度 |
longitude |
|
经度 |
address |
|
目标地址名称 |
10.2 出参
无
11.获取园区信息接口
调用方法名:getParkInfo
11.1 入参
无
11.2 出参 方法名:ycAppClickBack
{"parkCode":"园区id"}
12云城分享
调用方法名:ycMiniProgramShare
12.1 入参
{
shareContent:
[{
"type":"1" 3 为微信好友,4 为微信朋友圈,1 为IM好友,2 为园圈
"title": "标题"
"desc":"描述"
"thumbPicUrl":"缩略图(http开头的图片地址)"
"webPageUrl":"跳转地址"
"shareType":"trade"目前支持的类型trade(商圈), active(活动),service(子服务),shop_web(商家拼团),common_web(跳到普通网页),indoor_nav(室内导航)
"serviceType":"标签名称"
}]
}
参数 |
类型 |
说明 |
type |
|
3 为微信好友,4 为微信朋友圈,1 为IM好友,2 为园圈 |
title |
|
标题 |
desc |
|
描述 |
thumbPicUrl |
|
缩略图(http开头的图片地址) |
webPageUrl |
|
跳转地址 |
shareType |
|
trade"目前支持的类型trade(商圈), active(活动),service(子服务),shop_web(商家拼团),common_web(跳到普通网页),indoor_nav(室内导航) |
serviceType |
|
标签名称 |
12.2 出参
无
13.获取当前园区的经纬度
调用方法名:getParkLocation
13.1 入参
无
13.2 出参 方法名: ycAppClickBack
{"code" : "0" , "msg" : "请求成功", "data" : {"latitude":"12313.44"
"longitude":"34234.33"}}
14设置当前页面是否可以截屏
调用方法名:setScreenShotAction
14.1 入参
{"isBanScreenshot":"1/0"}
参数 |
类型 |
说明 |
isBanScreenshot |
|
1截屏0不截屏 |
14.2 出参 方法名: setScreenShotActionResult
{"code" : "0" , "msg" : "请求成功", "data" : {}}
15.发送邮件
调用方法名:sendToEmail
15.1 入参
{"mailAddress":"3242424323@qq.com",
"subject":"标题",
"content":"内容"}
参数 |
类型 |
说明 |
mailAddress |
|
目的邮件地址 |
subject |
|
标题 |
content |
|
内容 |
15.2 出参 方法名: sendToEmailResult
返回是否成功